● 概要 ●
構文 expression.OpenForm(FormName, View, FilterName, WhereCondition,
DataMode, WindowMode, OpenArgs)
設定項目 内容
expression DoCmdオブジェクト[省略不可]
FormName フォームの名前を文字列式で指定[省略不可]
View ビュー形式をAcFormViewクラスの定数で指定[省略可能]
FilterName データを抽出するためのクエリ名を指定[省略可能]
WhereCondition データを抽出するためのSQL文のWHERE句を文字列式で指定
(「WHERE」は不要)[省略可能]
DataMode 入力モードをAcFormOpenDataModeクラスの定数で指定[省略可能]
WindowMode ウィンドウ形式をAcWindowModeクラスの定数で指定[省略可能]
OpenArgs 開くフォームのOpenArgsプロパティに設定する値を文字列式で指定
[省略可能]
引数で指定した名前のフォームを開きます。
引数、、に指定する定数は次の表を参照してください。
・引数に指定する定数(acFormViewクラス)
定数 説明
acDesign デザインビュー
acFormDS データシートビュー
acFormPivotChart ピボットグラフビュー
acFormPivotTable ピボットテーブルビュー
acNormal フォームビュー(既定値)
acPreview 印刷プレビュー
・引数に指定する定数(acFormOpenDataModeクラス)
定数 説明
acFormAdd 追加
acFormEdit 編集
acFormPropertySettings フォームのプロパティで設定されたモード(既定値)
acFormReadOnly 参照専用
・引数に指定する定数(acWindowModeクラス)
定数 説明
acDialog ダイアログ形式
acHidden 非表示
acIcon 最小化
acWindowNormal 通常のウィンドウ(既定値)
次のコードは、メニュー画面上の[顧客入力フォームへ]ボタンをクリックしたときに「顧客入力フォーム」を開くためのイベントプロシージャです。cbo顧客NOコンボボックスに入力があれば、その入力値を抽出条件とします。入力がなければすべてのデータを表示します。
● サンプル ●
'抽出条件を設定して別フォームを開く
Private Sub cmd顧客入力_Click()
Dim myCriteria As String
'コンボボックス入力の有無を調べる
If IsNull(cbo顧客NO) Then
'入力がなければ抽出条件なし
myCriteria = ""
'入力があれば抽出条件を設定する
Else
myCriteria = "[顧客NO]=" & cbo顧客NO.Value
End If
DoCmd.OpenForm "顧客入力フォーム", , , myCriteria
End Sub
● 実行結果 ●
メニュー画面に、顧客名を入力しないで実行した場合は全レコードが表示され、顧客名を入力して実行した場合は入力した顧客のデータのみが表示される。