SSブログ

ADO Connection Executeメソッド [ADO]

 UPDATE、INSERT、DELETEのSQLを実行する場合は、ConnectionオブジェクトのExecuteメソッドを使用します。

例)
CurrentProject.Connection.Execute "~SQL文~", lngRC

 第1パラメタにSQL文を指定します。
 第2パラメタは指定しなくてもかまいませんが、Long型の変数を指定します。
SQL文が正しく実行された場合、処理されたレコード件数が返されます。
 SELECT文を実行した場合に、SELECTされたレコード件数が返ってくる場合もあるのですが、状況によって正しい値がセットされないことがあります。(接続DBの種類や、接続の方法でサポートされない)
 SELECTされた件数を得るために、この方法を使うのはお薦めしません。
 UPDATEとかの場合はOKです。

例)
CurrentProject.Connection.Execute "DELETE FROM TDATA", lngRC

 この場合とかは、削除された件数がlngRCに返されます。
(私の経験上、UPDATE、INSERT、DELETEで正しくない件数が返ってきたことはありません。いちおう。)

 第1パラメタには、クエリ名を指定してもかまいません。

例)CurrentProject.Connection.Execute "QUPDATE", lngRC

 あ、私はクエリの名前は頭に「Q」、テーブルの名前には頭に「T」をつけるのが好きです。

 ADOを使わないSQLの実行方法として、
DoCmd.RunSQL "~~~~~"  や、
DoCmd.OpenQuery "~~~~~" も、ありますが、
 確認メッセージが表示されるので、面倒です。

 ちなみに、SELECTしたい場合は、RecordSetを使用します。

備考)
 CurrentProject.Connectionは、ACCESSのVBAでは、何もしなくても常に使用することができます。Closeも必要ありません(できない)。
 現在のACCESSデータベースファイル以外の外部データベースに対してSQLを実行する場合や、その他のプログラムから実行する場合は、自分でConnectionオブジェクトを作成して、openで接続します。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。
※URL(リンク)は記述できません。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。