即効テクニック |
● 概要 ● 構文 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 ● 実行結果 ● メニュー画面に、顧客名を入力しないで実行した場合は全レコードが表示され、顧客名を入力して実行した場合は入力した顧客のデータのみが表示される。