ACCESS VBAでフォームを開く方法

VBAでフォームを開く方法

ACCESS VBAで最もよく使う機能の一つが、フォームを開く機能です。

ACCESSにはDoCmd.OpenFormという命令文が用意されていますので、こちらを使ってフォームを開く機能を作成します。

その際、単純にフォームを開くだけでなく、特定のレコードを指定して開くことも可能です。

今回は、ACCESS VBAでフォームを開く方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。

VBAでフォームを開く方法

まずは、VBAでフォームを開くための記述方法についてです。

サンプルとして以下のメニュー画面を用意しました。

ボタンが複数並んでいます。

まずは売上検索ボタンを押すと、売上検索フォームが開くように設定してみましょう。

フォームをデザインビューで開きます。

売上検索ボタンのプロパティシートで、クリック時イベントを設定します。

クリック時の行の一番右にある「・・・」ボタンを押してみましょう。

ビルダーの選択が表示されます。

ビルダーの選択

ここではコードビルダーを選択しましょう。

すると、Visual Vasic Editor(VBE)が起動します。

Private Sub 売上検索ボタン_Click()

と表示されていると思いますので、その下にフォームを開く命令文を記載していきます。


   DoCmd.OpenForm "売上検索"

これだけです。

DoCmd.OpenFormとは、その次に指定したフォームを開くコマンドです。

これで、メインメニューの売上検索ボタンを押すと、売上検索フォームが開くようになりました。

新規追加の状態でフォームを開く

先ほどは単純にフォームを開いただけでした。

次は、新規追加の状態でフォームを開いてみましょう。

今度は、売上伝票入力ボタンにクリック時イベントを登録します。

このボタンに設定するプロシージャは以下の通りです。


Private Sub 売上伝票入力ボタン_Click()

    DoCmd.OpenForm "売上伝票入力", , , , acFormAdd

End Sub

先ほどと同じくDoCmd.OpenFormを使用して「売上伝票入力」フォームを指定しています。

異なるのは、最後の引数にacFormAddを指定していることです。

この指定を行うことで、フォームを新規レコード追加状態で開くことが可能です。

実際に、ボタンを押下するとフォームがこの状態で開きます。

主キーである売上IDが「新規」となっていて、新規レコードであることが分かりますね。

acFormAddは、このように入力用フォームを新規追加で開く際に利用します。

特定のレコードを指定してフォームを開く

最後に、特定のレコードを指定してフォームを開く方法をご紹介します。

下記のフォームをご覧ください。

レコードが一覧表示された検索フォームです。

このフォームから、特定のレコードを選択して詳細情報を表示させる機能を作ります。

フォームをデザインビューで開いてみましょう。

今回は主キーである売上IDにダブルクリック時イベントを設定します。

必ずしもダブルクリック時イベントである必要ななく、別途詳細表示ボタンなどを設置しても良いでしょう。

設定するプロシージャは以下の通りです。


Private Sub 売上ID_DblClick(Cancel As Integer)


    DoCmd.OpenForm "売上伝票入力", , , "売上ID = " & Me!売上ID

End Sub

こちらもDoCmd.OpenFormメソッドですが、最後の引数にWhere条件を設定しています。

“売上ID = ” & Me!売上ID

ですね。

ここでは、開くフォームの売上IDは、Me(操作した売上検索フォーム)の売上IDと同じもの、という指定をしています。

“売上ID = ” と”で囲っているのは、抽出条件をテキストデータとして扱うためで、最後のMe!売上IDだけは変数のために”の外に置いてあります。

このあたり、抽出条件の書き方は最初は慣れないと思いますが、他の方が書いたコードをコピーして少しずつ直して使うことで、徐々に自分でも理解できるようになると思いますので試してみてください。

このコードを書けば、ダブルクリックした売上IDのレコードを指定して売上伝票入力フォームを開くことができます。

例えば売上ID:13をダブルクリックすれば、

売上ID:13のフォームが開きます。

この機能は非常によく使うのでマスターすると便利でしょう。

以上、VBAでフォームを開く方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。