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で接続します。
コメント 0