OpenArgs プロパティ

適用対象

Form オブジェクト

Report オブジェクト

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

expression.OpenArgs

expression 必須。[適用対象] の一覧のオブジェクトのうちの 1 つを返す式です。

解説

このプロパティは、マクロ または 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
Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×