Dotyczy
Obiekt Form |
Obiekt Report |
Ustala wyrażenie tekstowe określone przez argument właściwości OpenArgs metody OpenForm, która otworzyła formularz. Właściwość od odczytu i zapisu typu Variant (wariant).
wyrażenie.OpenArgs
wyrażenie Argument wymagany. 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 makro lub przy użyciu 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 procedura zdarzenia Open . Można również odwoływać się do ustawienia właściwości w makrze, na przykład do makra Otwórz lub do wyrażenia, na przykład do wyrażenia ustanawiającego właściwość ControlSource (ŹródłoKontrolki ) dla kontrolka 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 FindRecord w makrze zdarzenia Open w celu przenoszenia fokusu 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