▶ Windows 11情報をお求めの方はこちらをクリック

AccessVBAでフォームを開く7つの方法!通常・デザインビュー・印刷プレビュー!

2 min
accessvbaフォーム

今回は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でフォームを閉じる方法をご紹介します。 保存しない、保存確認メッセージ表示、自動保存で3つの閉じ方があります。 保存せずにフォームを閉じる

 

まとめ

今回はAccessVBAでフォームを開く方法を「表示形式」と「データモード」のオプション指定も踏まえてご紹介しました。

ユーザーにフォーム操作をさせるときにレコードの参照だけをさせたい場合は「acFormReadOnly」、更新はさせたくないが追加をさせたい場合は「acFormAdd」、更新も追加もさせたい場合は「acFormEdit」をデータモードに設定します。

また抽出条件を指定することもできますので、オプションをうまく活用することで柔軟な仕組みが構築できますね。

 

Access使い方・便利技・トラブル対処まとめはこちら↓

今回はAccessのクエリ・フォーム・レポート、VBAの使い方や便利技とトラブル対処法まとめです。 よく使うものだけを厳選してご紹介します。 Access全般の

 

SEパパ

SEパパ

外資系IT企業SE職で2児の父ちゃん!職業柄かリサーチ&問題解決が好き。

幅広いジャンルで「お悩み解決」記事を執筆中。月間最高24万PV。雑誌掲載。

読者様に役立つ情報提供を心がけています。

カテゴリー:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA