AccessVBAで更新クエリを実行する方法

どうも、えいじまんです。今回はVBAで更新クエリを実行する方法をご紹介します。

テーブルを更新する方法は以下の2通りあります。

  • VBAでSQL文を発行して更新
  • 更新クエリで更新

この2つの方法をうまく使い分けると効率が良くシンプルな実装が行えます。具体的には、更新クエリで実現可能なシンプルなものは更新クエリで実装し、更新クエリでは実装できないものは、VBAでSQL文を発行するコードを実装します。

こうすることで、シンプルかつわかりやすい構造になり、実装効率もよくなります。ということで、今回はVBAで更新クエリを実行する方法をご紹介します。

VBAで更新クエリを実行

更新クエリを実行したいタイミングで、以下のコードを記述します。

    ' 更新時の確認メッセージ非表示
    DoCmd.SetWarnings False
    
    ' 更新クエリ実行
    DoCmd.OpenQuery "作成した更新クエリ名", acNormal, acEdit

たったこれだけの記述でVBAで更新クエリを実行することができます。ただ初心者の方は、このコードをどこに書けばよいの?と悩まれる方もいると思いますので、Accessを起動するだけで自動でVBAを実行する方法もご紹介します。

自動でVBAを実行する方法

フォームのオープンイベントを利用してVBAを実行します。

フォームを作成

作成 ⇒ フォームデザイン をクリックします。

左上のフロッピーマークをクリックし、フォームに名前を付けて保存します。

フォームオープンイベント作成

デザイン ⇒ プロパティシート ⇒ イベント ⇒ 開く時 の下矢印をクリックし、イベントプロシージャをクリックした後、「・・・」をクリックします。

下図の画面が開きますので、Private Sub ~ End Subの間にクエリを実行するコードを記述します。

VBA実装

下図のようなにコードを記述します。

Private Sub Form_Open(Cancel As Integer)

    ' 確認メッセージ非表示
    DoCmd.SetWarnings False
    
    ' クエリ実行
    DoCmd.OpenQuery "クエリ名", acViewNormal, acEdit

    ' Access終了
    Application.Quit

End Sub

簡単に説明すると、確認メッセージを非表示にしたあと、クエリを実行して、最後にAccessファイルを閉じる処理を実行します。

つまり、Accessファイルを起動すると自動でクエリを実行して自動で閉じます。

まとめ

今回はVBAで更新クエリを実行する方法をご紹介しました。AccessはVBAとクエリをうまく活用すると効率よくやりたいことが実現できますね。

例えば、VBAでSQL文を発行しなければ実現できないような更新と、更新クエリで簡単に実現できるような更新を続けて実行したい場合には、VBAでSQL文を発行した後に、VBAで更新クエリを実行すれば、シンプルな構造で実装できますね。これはマクロでは実現できないことです。

また、更新による確認メッセージを非表示にしたい場合も、VBAだと簡単に実装可能です。マクロで実装する場合でも、Accessの環境設定である程度の確認メッセージは表示にできますが、非表示にできない確認メッセージもありますし、パソコンごとにAccessの環境設定を行う必要がありますのでとても面倒です。

この記事が皆様のお役に立ちましたら幸いです!

その他のAccess関連記事

AccessVBAでクエリ実行時の確認メッセージを完全に非表示にする方法

AccessVBAで選択クエリを実行する方法

AccessVBAでテーブルをCSVファイルにエクスポートする方法

AccessVBAのモジュールにパスワードを設定する方法

シェアする

  • このエントリーをはてなブックマークに追加

フォローする