HOME > 即効テクニック > AccessVBA > フォーム・レポート > 抽出条件を設定して別フォームを開く

即効テクニック

フォーム・レポート

抽出条件を設定して別フォームを開く

(Access 2000/2002/2003)
● 概要 ●
構文  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


● 実行結果 ●
メニュー画面に、顧客名を入力しないで実行した場合は全レコードが表示され、顧客名を入力して実行した場合は入力した顧客のデータのみが表示される。