適用対象
Form オブジェクト |
Report オブジェクト |
フォームを開いた OpenForm メソッドの OpenArgs 引数で指定された文字列式を決定します。 読み取り/書き込み可能なバリアント型です。
expression.OpenArgs
expression 必ず指定します。 [適用先] リスト内のいずれかのオブジェクトを返す式。
解説
このプロパティは、マクロ または Visual Basic for Applications (VBA) コードで DoCmd オブジェクトの OpenForm メソッドを使用する場合にのみ使用できます。 このプロパティの設定は、すべてのビューで読み取り専用です。
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