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