次の方法で共有


Form.OpenArgs プロパティ (Access)

フォームを開いた OpenForm メソッドの OpenArgs 引数で指定された文字列式を決定します。 値の取得と設定が可能なバリアント型 (Variant) の値です。

構文

OpenArgs

expressionForm オブジェクトを表す変数です。

注釈

このプロパティは、マクロを使用するか、DoCmd オブジェクトの OpenForm メソッドで Visual Basic を使用する場合にのみ使用できます。 このプロパティの設定は、すべてのビューで値の取得のみ可能です。

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

次の例は、OpenArgs プロパティを使用して、ナビゲーション ウィンドウからフォームが開かれないようにする方法を示します。

Private Sub Form_Open(Cancel As Integer)

If Me.OpenArgs() <> "Valid User" Then
    MsgBox "You are not authorized to use this form!", _
        vbExclamation + vbOKOnly, "Invalid Access"
    Cancel = True
End If
End Sub

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

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