次の方法で共有

Access 2007 で作ったMDBファイルに対してクエリのCREATE文やINSERT文がVisualStadio(C#)側から実行できません。

Anonymous
2012-08-28T09:34:52+00:00

Access 2007 で作ったMDBファイルに対してクエリのCREATE文やINSERT文がVisualStadio(C#)側から実行できません、

なぜかクエリに問題があるようなエラーが帰ってきます。(SELECT文は実行可能) 

問題のクエリはMDBファイル上では実行することが可能です。

コードには問題が無いと思われますが念のため、貼り付けておきます。

セキュリティーも全てのクエリが実行可能なようにAccess本体から設定してあります。

エラー内容 「フィールド定義の構文エラーです。」

回避できる方法を何卒ご回答ください。よろしくお願いします。

OleDbCommand com;

string cnst = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=WiTiTa.mdb";

string Query;

OleDbConnection cn = new OleDbConnection(cnst);

Query = "CREATE TABLE TiTa (";

Query = Query + "ID CURRENCY,";

Query = Query + "TITLE TEXT,";

Query = Query + "HOUR TEXT,";

Query = Query + "LOOP_S TEXT,";

Query = Query + "LOOP_E TEXT,";

Query = Query + "LOOP_C TEXT,";

Query = Query + "LOOP_SLEEP TEXT,";

Query = Query + "SLEEP_H TEXT,";

Query = Query + "SLEEP_M TEXT,";

Query = Query + "SLEEP_B TEXT,";

Query = Query + "WAKEUP_H TEXT,";

Query = Query + "WAKEUP_M TEXT,";

Query = Query + "WAKEUP_B TEXT ";

Query = Query + ")";

cn.Open();

com = new OleDbCommand(Query, cn);

com.ExecuteNonQuery(); //エラー発生

cn.Close();

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

2 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-08-30T09:12:35+00:00

    こんにちは。

    MukkuMuku さん、いつもアドバイスありがとうございます。

    Hiro-wgq さん、Microsoft Answers への投稿ありがとうございます。

    Access 上で正常に動作するクエリの内容を C# で記述したプログラムから実行できない場合には、MSDN の C# に関連したフォーラムで情報を集めてみてください。

    Visual Studio デベロッパー センター > Visual Studio フォーラム> Visual C#

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2012-08-28T14:42:16+00:00

    MukkuMukuです。

    Query = Query + "[HOUR] TEXT,";

    というより、Hour関数があるので、使用を控えるべきフィールド名でしょうね。

    PowerShellv3(x86)で試してみました

    $connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\hoge\WiTiTa.mdb;"

    $cn = New-Object System.Data.OleDb.OleDbConnection $connectionString

    $Query = "CREATE TABLE TiTa (ID CURRENCY,TITLE TEXT, `

                [HOUR] TEXT,LOOP_S TEXT,LOOP_E TEXT,LOOP_C TEXT, `

                LOOP_SLEEP TEXT,SLEEP_H TEXT,SLEEP_M TEXT, `

                SLEEP_B TEXT,WAKEUP_H TEXT,WAKEUP_M TEXT, `

                WAKEUP_B TEXT)"

    $command = New-Object System.Data.OleDb.OleDbCommand $Query,$cn

    $cn.open()

    $command.ExecuteNonQuery()

    $cn.Close()

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません