Access VBA の DoCmd.OpenForm
メソッドは、指定したフォームを開くための基本的な命令です。フォームは、データの表示・入力・編集を行う中心的なUI要素であり、このメソッドはフォームの表示方法やフィルター、編集モードなどを細かく制御できます。
目次
🔹 基本構文
DoCmd.OpenForm(FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs)
🔸 引数の解説
引数名 | 型 | 説明 |
---|
FormName | String | 開くフォームの名前(必須) |
View | AcFormView | フォームの表示方法(省略可能、既定は acNormal ) |
FilterName | String | 事前に保存されたフィルタークエリの名前(省略可) |
WhereCondition | String | SQL の WHERE 句のような条件式(省略可) |
DataMode | AcFormOpenDataMode | フォームの編集モード(省略可) |
WindowMode | AcWindowMode | フォームの表示形式(省略可) |
OpenArgs | Variant | フォームに渡す引数(Form_Open イベントで取得可) |
🔹 主な列挙型の値
▶ AcFormView
(表示方法)
値 | 説明 |
---|
acNormal | 通常ビュー(既定) |
acDesign | デザインビュー |
acPreview | 印刷プレビュー |
▶ AcFormOpenDataMode
(データモード)
値 | 説明 |
---|
acEdit | 編集モード(既定) |
acReadOnly | 読み取り専用 |
acAdd | 新規レコード追加専用 |
▶ AcWindowMode
(ウィンドウモード)
値 | 説明 |
---|
acWindowNormal | 通常のウィンドウ(既定) |
acDialog | モーダル表示(閉じるまで他の操作不可) |
acHidden | 非表示で開く |
🔸 使用例
✅ 基本的なフォーム表示
DoCmd.OpenForm "frmCustomers"
✅ 読み取り専用で開く
DoCmd.OpenForm "frmOrders", , , , acReadOnly
✅ WHERE 条件を使って特定レコードのみ表示
DoCmd.OpenForm "frmCustomers", , , "CustomerID = 123"
✅ モーダルダイアログとしてフォームを開く(閉じるまで他の操作不可)
DoCmd.OpenForm "frmSearchDialog", , , , , acDialog
✅ 引数を渡して開く(OpenArgsを使用)
DoCmd.OpenForm "frmEditItem", , , , , , "ItemID=456"
フォーム側の Form_Open
イベントで取得:
Private Sub Form_Open(Cancel As Integer)
MsgBox "受け取った引数: " & Me.OpenArgs
End Sub