AccessのVBAでアクションクエリーを使用するには


アクションクエリーの実行は、以下のようにDoCmdメゾットでもできるが、DoCmdは非同期実行のため、連続してアクションクエリーを実行すると、場合によっては実行結果のテーブルをレコードソースとしたフォームやレポートの表示に実行結果が反映されないことがある。

DoCmd.OpenQuery アクションクエリー名

VBAでアクションクエリーを使用する場合は、BeginTrans, CommitTransで明示的にコミットするのがよい。また、アクションクエリーの実行にはDoCmdメゾットではなく、Executeメゾットを使用する。

【例】

Dim wk As Workspace
Dim MyDb As Database

Set wk = DBEngine.Workspaces(0)
Set MyDb = CurrentDb

wk.BeginTrans
MyDb.Execute "アクションクエリー名" ←SQL文でもOK
wk.CommitTrans
     ・
     ・
     ・
MyDb.Close
Set MyDb = Nothing
Set wk = Nothing


  • お小遣いあげるからメールしておいで(*´ω`)♂ http://ylm.me/ -- ぷぅにゃん (2011-12-09 21:04:57)
お名前
コメント
最終更新:2011年12月09日 21:04