OpenArgs プロパティ

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

適用対象

Form オブジェクト
Report オブジェクト

フォームを開いた OpenForm メソッドの OpenArgs 引数で指定された文字列式を決定します。 読み取り/書き込み可能なバリアント型です。

expression.OpenArgs

必須。 [適用先] リスト内のいずれかのオブジェクトを返す式。

解説

このプロパティは、マクロを使用するか、DoCmd オブジェクトの OpenForm メソッドでVisual Basic for Applications (VBA) コードを使用する場合にのみ使用できます。 このプロパティの設定は、すべてのビューで読み取り専用です。

OpenArgs プロパティを使用するには、DoCmd オブジェクトの OpenForm メソッドを使用してフォームを開き、OpenArgs 引数を目的の文字列式に設定します。 OpenArgs プロパティ設定は、Open イベント プロシージャなど、フォームのコードで使用できます。 また、Open マクロや、フォーム上の コントロールの ControlSource プロパティを設定する式などの式など、マクロ内のプロパティ設定を参照することもできます。

たとえば、開くフォームが、クライアントの連続フォームの一覧だとします。 フォームが開いたときにフォーカスを特定のクライアント レコードに移動する場合は、 OpenArgs プロパティをクライアントの名前に設定し、Open マクロの FindRecord アクションを使用して、指定した名前のクライアントのレコードにフォーカスを移動できます。

使用例

次の例では、OpenArgs プロパティを使用して特定の従業員レコードに対して Employees フォームを開き、OpenForm メソッドで OpenArgs プロパティを設定する方法を示します。 次のプロシージャは、必要に応じて (たとえば、従業員の新しい情報を入力するために使用するカスタム ダイアログ ボックスに対して AfterUpdate イベントが発生する場合など) 実行することができます。

Sub OpenToCallahan()
    DoCmd.OpenForm "Employees", acNormal, , , _
        acReadOnly, , "Callahan"
End Sub
Sub Form_Open(Cancel As Integer)
    Dim strEmployeeName As String
    ' If OpenArgs property contains employee name, find
    ' corresponding employee record and display it on 
    ' form. For example,if the OpenArgs property 
    ' contains "Callahan", move to first "Callahan" 
    ' record.
    strEmployeeName = Forms!Employees.OpenArgs
    If Len(strEmployeeName) > 0 Then
        DoCmd.GoToControl "LastName"
        DoCmd.FindRecord strEmployeeName, , True, , _
           True, , True
    End If
End Sub

次の例では、FindFirst メソッドを使用して、OpenArgs プロパティで指定された従業員を検索します。

Private Sub Form_Open(Cancel As Integer)
    If Not IsNull(Me.OpenArgs) Then
        Dim strEmployeeName As String
        strEmployeeName = Me.OpenArgs
        Dim RS As DAO.Recordset
        Set RS = Me.RecordsetClone
        RS.FindFirst "LastName = '" & _
            strEmployeeName & "'"
        If Not RS.NoMatch Then
            Me.Bookmark = RS.Bookmark
        End If
    End If
End Sub