DoCmd.OpenForm メソッド (Access)

OpenForm メソッドは、Visual Basic で "OpenForm/フォームを開く" アクションを実行します。

構文

expression.OpenForm (FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs)

expression: DoCmd オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
FormName 必須 バリアント型 カレント データベースのフォームの有効な名前を文字列式で指定します。 OpenForm メソッドを含む Visual Basic コードをライブラリ データベースで実行すると、この名前のフォームが、最初にライブラリ データベースで、次にカレント データベースで検索されます。
View 省略可能 AcFormView フォームを開くビューを指定する AcFormView 定数。 既定値は acNormal です。
FilterName 省略可能 バリアント型 (Variant) カレント データベースのクエリの有効な名前を文字列式で指定します。
WhereCondition 省略可能 バリアント型 (Variant) 有効な SQL WHERE 句を文字列式で指定します。ただし、WHERE という語を指定する必要はありません。
DataMode Optional AcFormOpenDataMode フォームのデータ入力モードを指定する AcFormOpenDataMode 定数。 この設定は、フォーム ビューまたはデータシート ビューで開いたフォームにのみ適用されます。 既定値は acFormPropertySettings です。
WindowMode 省略可能 AcWindowMode フォームを開くウィンドウ モードを指定する AcWindowMode 定数。 既定値は acWindowNormal です。
OpenArgs 省略可能 バリアント型 文字列式。 この式は、フォームの OpenArgs プロパティを設定するために使用されます。 この設定は、Open イベント プロシージャなどのフォーム モジュールのコードで使用可能です。 OpenArgs プロパティは、マクロや式でも参照できます。

たとえば、帳票フォームのクライアント一覧を開くとします。 フォームが開くときに特定のクライアントのレコードにフォーカスを移動するには、そのクライアントの名前を OpenArgs 引数で指定し、FindRecord メソッドを使って、指定した名前のクライアントのレコードにフォーカスを移動できます。

注釈

OpenForm メソッドを使用して、フォーム ビュー、フォーム デザイン ビュー、印刷プレビュー、またはデータシート ビューでフォームを開くことができます。 フォームのデータ入力モードとウィンドウ モードを選択し、フォームに表示されるレコードを制限することができます。

引数 WhereCondition の最大長は 32,768 文字です (マクロ ウィンドウの WhereCondition アクション引数の最大長は 256 文字です)。

次の例では、フォーム ビューで [社員] フォームを開き、[LastName] フィールドが "山田 一郎" のレコードのみを表示します。 表示されたレコードは編集可能で、新しいレコードの追加もできます。

DoCmd.OpenForm "Employees", , ,"LastName = 'King'"

以下の例では、フォーム ビューで frmMainEmployees フォームを開き、cboDept コンボ ボックスで選択された部署に該当するレコードだけを表示します。 表示されたレコードは編集でき、新しいレコードの追加もできます。

Private Sub cmdFilter_Click()
    DoCmd.OpenForm "frmMainEmployees", , , "DepartmentID=" & cboDept.Value
End Sub

次の例では、OpenForm メソッドの WhereCondition 引数を使用して、フォームを開くときにフォームに表示されるレコードをフィルター処理する方法を示します。

Private Sub cmdShowOrders_Click()
If Not Me.NewRecord Then
    DoCmd.OpenForm "frmOrder", _
        WhereCondition:="CustomerID=" & Me.txtCustomerID
End If
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。