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