今回は1つ目に「更新クエリをVBAで実行するためのコード記述方法」について、2つ目に「作成したVBA(更新クエリ)を自動実行する方法」をご紹介します。
2つ目は、簡単に言えば、ボタンクリック時に更新クエリを実行したければ、ボタンクリックイベントプロシージャの中にVBAコードを記述します。
いや、フォームオープン時に更新クエリを実行したい!ということであれば、フォームオープンイベントプロシージャの中にVBAコードを記述します。
次の説明にしたがって作成してみてください!
クリックできる目次
更新クエリをVBAで実行するコードの記述方法
更新クエリを実行したいタイミングで、以下のコードを記述します。
' 更新時の確認メッセージ非表示 DoCmd.SetWarnings False ' 更新クエリ実行 DoCmd.OpenQuery "作成した更新クエリ名", acNormal, acEdit
たったこれだけの記述でVBAで更新クエリを実行することができます。
と悩まれる方もいると思いますので、Accessを起動するだけで自動でVBAを実行する方法もご紹介します。
更新クエリを実行する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の環境設定を行う必要がありますのでとても面倒です。
この記事が皆様のお役に立ちましたら幸いです!