ACCESS VBA DoCmd.OpenFormの使い方

DoCmd.OpenFormの使い方

ACCESS VBAでフォームを開く先に利用するのがDoCmd.OpenFormメソッドです。

これは非常によく使う構文です。

今回はDoCmd.OpenFormの使い方をご紹介します。


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

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

DoCmd.OpenFormの構文

DoCmd.OpenFormはフォームを開くVBAのメソッドです。

以下の構文で利用します。

DoCmd.OpenForm フォーム名 , フォームを開いた際のビュー , フィルターの名前 , 抽出条件 , データ入力モード , ウィンドウモード

引数が多くて複雑に見えますが、非常に単純に利用する場合は最初の引数である「フォーム名」だけを指定して開くことができます。

それ以外でよく利用する引数は、4つ目の抽出条件でしょうか。

DoCmd.OpenFormの利用例

では、DoCmd.OpenFormの利用例を示します。

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

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

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

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

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

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

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

ビルダーの選択

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

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

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

 
 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のフォームが開きます。

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

以上、DoCmd.OpenFormの使い方をご紹介しました。


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

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

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

サービス一覧

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