So-net無料ブログ作成
検索選択

VBA クエリを実行する DoCmd.RunSQL [VBA]

 VBAからクエリを実行する方法のひとつとして、DoCmd.RunSQLがあります。
 他に、クエリを実行する方法として、DoCmd.OpenQueryがありますが、下記のような違いがあります。

DoCmd.OpenQueryは、あらかじめ作成されたクエリを指定して実行します。
DoCmd.RunSQLは、作成されたクエリを指定して実行することはできません。

DoCmd.RunSQLは、パラメタに指定されたSQL文を実行します。
DoCmd.OpenQueryは、実行するSQL文をクエリとして登録しておく必要があります。

DoCmd.OpenQueryは、選択クエリ(SELECT)、アクションクエリ(UPDATEなど)を実行できます。
DoCmd.RunSQLは、アクションクエリ(UPDATEなど)のみ実行できます。

DoCmd.OpenQueryで選択クエリ(SELECT)を指定した場合、結果がデータシートで表示されます。
DoCmd.RunSQLは、選択クエリ(SELECT)を実行できません。

 上記のことから、DoCmd.RunSQLの使いどころは、VBAでアクションクエリのSQLを作成し、それを実行する場合になるかと思います。

・構文
DoCmd.RunSQL SQLStatement , UseTransaction

・引数
SQLStatement ・ SQL文を文字列で指定します。
 実行可能なSQLは、INSERT INTO、DELETE、SELECT...INTO、UPDATE、CREATE TABLE、ALTER TABLE、DROP TABLE、CREATE INDEX、DROP INDEXです。

UseTransaction ・ トランザクションに含める場合、Trueを指定します。デフォルトFalse
 DoCmdでトランザクションを行う方法はわかりません…。

続きを読む


VBA クエリを実行する DoCmd.OpenQuery [VBA]

 VBAからクエリを実行する方法は、いくつかありますが、ここではDoCmd.OpenQueryを説明します。

 ナビゲーションウィンドウ(2003以前はデータベースウィンドウ)から、クエリをダブルクリックしたときと同じ動作をさせる場合は、DoCmd.OpenQueryを使用します。

・構文
DoCmd.OpenQuery QueryName , View , DataMode

・引数
QueryName ・ 開く(実行する)クエリの名前を文字列で指定します。必須。

View ・ クエリをどのビューで開くか、下記のAcViewクラス定数で指定します。省略可。

名前 説明
acViewDesign 1 デザイン ビュー
acViewLayout 6 レイアウト ビュー
acViewNormal 0 (既定値) 標準表示
acViewPivotChart 4 ピボットグラフ ビュー
acViewPivotTable 3 ピボットテーブル ビュー
acViewPreview 2 印刷プレビュー
acViewReport 5 レポート ビュー

 普通にクエリを開く場合は、acViewNormalです。

DataMode ・ クエリを開いて表示されたデータシートに対する入力モードを、下記のAcOpenDataModeクラス定数で指定します。省略可。

名前 説明
acAdd 0 新規レコードの追加のみ。
データシートにクエリの結果が表示されず、新規追加の行のみ表示されます。
クエリの結果を参照したり、編集したりはできません。
acEdit 1 クエリの結果の参照、および編集(追加)ができます。(既定値)
普通にクエリを開いたときの状態です。
acReadOnly 2 クエリの結果の参照のみ可能です。
編集や追加はできません。

続きを読む


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