• 締切済み

ADOでパラメタクエリを実行する方法で混乱してます。

VBからACCESSのクエリを実行したいのですが、 うまくいきません。 1:cmd.Properties("Jet OLEDB:Stored Query") = True←?? 2:cmd.CommandText = "qryKokyaku_UPD"←クエリをセット 3:cmd.Parameters(0).Value = txt.Text←パラメタセット 4:cmd.Execute (cmdはADODB.COMMANDオブジェクトです) 上記のコードでクエリを実行できますが、1行目の 意味が全然分かりません。1行目を除くと、パラメタをセットする(2行目)でエラーがでます。(SQLステートメントが正しくありません)なぜか分かるかた居られましたら、アドバイスお願いします! 分からないまま使用するのはいやなので現在は 1:cmd.CommandText = "qryKokyaku_UPD"←クエリをセット 2:cmd.Execute ,Array(パラメタ1,パラメタ2) という感じで作っています。 しかし、この方法では更新クエリを実行しても、更新したり、しなかったり、(ほとんど更新してくれない)です。 ですが、Executeはエラーなく通ります。 ADD、デリート等のクエリは問題ないのですが。 現在の状況はこんな感じです。 『cmd.Properties("Jet OLEDB:Stored Query") = True』 が何を意味しているのか理解できれば、無事解決です! アドバイスよろしくお願いします。 かなり低レベルな質問かもしれませんが。

みんなの回答

回答No.1

MSDN のサイトには >コマンド テキストを、SQL コマンドではなく、 >ストアド クエリと解釈するかどうかを示します。 と書かれてますね。 つまり、"SELECT ~ FROM ~" とかの SQL をセットしたい場合には、このプロパティを False にし、DB 上にあるクエリ(Accessの場合)とかビュー(SQL Serverの場合)の名称を指定したい場合には True にするということなんじゃないかと推測します。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdrefjetprovspec.asp の辺りにいろいろ書いてあるようなので参考にされてはどうでしょうか。

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdrefjetprovspec.asp