今回はAccessVBAでフォームを開く方法をご紹介します。
ただフォームを開くといっても「表示形式」と「データモード」のオプション指定で、複数の開き方があります。
またデータの抽出条件を指定して、必要なデータだけを抽出表示することも可能です。
テーブルの表示形式(ビューの種類)は7種類ありますが、今回はよく使う3種類だけご紹介します。
- 通常のフォームビュー
- デザインビュー
- 印刷プレビュー
また読み取り専用などを指定するデータモードは3種類あります。
- 編集モード
- 追加モード
- 読み取り専用モード
これに加えて必要なデータだけを抽出表示する方法もご紹介しますね。全部で7通りの方法です。
クリックできる目次
通常のフォームビューでフォームを開く
ただフォームを開くだけなら次のシンプルなコードでOKです。
DoCmd.OpenForm "フォーム名"
この場合は、フォームのプロパティで設定されている値に従って、データモードが設定されます。つまり更新、追加、読み取り専用のどのモードでフォームを開くかはプロパティの設定値によります。
このデータモード設定はVBAでフォームを開く際に明示的に指定することも可能です。
更新、追加、読み取り専用それぞれを明示的に指定してフォームを開く方法については次項でご紹介します。
更新(編集)モードでフォームを開く
OpenFormの第5引数に、acFormEditを指定します。
既存のレコード更新と新しいレコード追加が可能です。
DoCmd.OpenForm "フォーム名", acNormal, , , acFormEdit, acWindowNormal
追加モードでフォームを開く
OpenFormの第5引数に、acFormAddを指定します。
既存のレコード更新はできません。新しいレコードの追加は可能です。
DoCmd.OpenForm "フォーム名", acNormal, , , acFormAdd, acWindowNormal
読み取り専用モードでフォームを開く
OpenFormの第5引数に、acFormReadOnlyを指定します。
既存のレコード更新も新しいレコード追加もできません。既存レコードの参照のみが可能です。
DoCmd.OpenForm "フォーム名", acNormal, , , acFormReadOnly, acWindowNormal
デザインビューでフォームを開く
OpenFormの第2引数に、acDesignを指定します。
DoCmd.OpenForm "フォーム名", acDesign
印刷プレビューでフォームを開く
OpenFormの第2引数に、acPreviewを指定します。
DoCmd.OpenForm "フォーム名", acPreview
抽出条件を指定してフォームを開く
OpenFormの第4引数に、抽出条件を指定します。
DoCmd.OpenForm "フォーム名", , ,"フィールド名 = '抽出条件'"
その他のVBAフォーム操作
まとめ
今回はAccessVBAでフォームを開く方法を「表示形式」と「データモード」のオプション指定も踏まえてご紹介しました。
ユーザーにフォーム操作をさせるときにレコードの参照だけをさせたい場合は「acFormReadOnly」、更新はさせたくないが追加をさせたい場合は「acFormAdd」、更新も追加もさせたい場合は「acFormEdit」をデータモードに設定します。
また抽出条件を指定することもできますので、オプションをうまく活用することで柔軟な仕組みが構築できますね。
Access使い方・便利技・トラブル対処まとめはこちら↓