Właściwość OpenArgs

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Dotyczy

Obiekt Form
Obiekt Report

Określa wyrażenie ciągu określone przez argument OpenArgs metody OpenForm , która otworzyła formularz. Właściwość od odczytu i zapisu typu Variant (wariant).

wyrażenie.OpenArgs

Wyrażenie Wymagane. Wyrażenie zwracające jeden z obiektów na liście Dotyczy.

Spostrzeżenia

Ta właściwość jest dostępna tylko przy użyciu makra lub kodu Visual Basic for Applications (VBA) z metodą OpenForm obiektu DoCmd. To ustawienie właściwości jest tylko do odczytu we wszystkich widokach.

Aby użyć właściwości OpenArgs , otwórz formularz przy użyciu metody OpenForm obiektu DoCmd i ustaw dla argumentu OpenArgs żądane wyrażenie ciągu. Ustawienie właściwości OpenArgs może być następnie używane w kodzie formularza, na przykład w procedurze zdarzenia Open. Można również odwoływać się do ustawienia właściwości makra, takiego jak makro Otwórz, lub wyrażenia, na przykład do wyrażenia ustanawiającego właściwość ControlSource (ŹródłoKontrolki ) kontrolki w formularzu.

Załóżmy na przykład, że otwarty przez Ciebie formularz to lista klientów w postaci formularza ciągłego. Jeśli chcesz, aby podczas otwierania formularza fokus był przenoszony do określonego rekordu klienta, możesz ustawić dla właściwości OpenArgs nazwę klienta, a następnie użyć akcji ZnajdźRekord w makrze Otwórz, aby przenieść fokus do rekordu klienta o określonej nazwie.

Przykład

W poniższym przykładzie użyto właściwości OpenArgs do otwierania formularza Pracownicy na określonym rekordzie pracownika oraz przedstawiono, jak metoda OpenForm ustawia właściwość OpenArgs. Możesz uruchamiać tę procedurę stosownie do potrzeb — na przykład, gdy występuje zdarzenie AfterUpdate dla niestandardowego okna dialogowego służącego do wprowadzania nowych informacji o pracowniku.

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

W następnym przykładzie użyto metody FindFirst do znajdowania pracownika, którego nazwisko określono we właściwości 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