LookupRecord-Makroaktion
Gilt für: Access 2013, Office 2013
Mit einem NachschlagenDatensatz -Datenblock wird eine Reihe von Aktionen für einen bestimmten Datensatz ausgeführt.
Hinweis
Der NachschlagenDatensatz-Datenblock ist nur in Datenmakros verfügbar.
Einstellung
Die NachschlagenDatensatz-Aktion kann mit den folgenden Argumenten verwendet werden.
Argument |
Erforderlich |
Beschreibung |
---|---|---|
In |
Ja |
Eine Zeichenfolge, die den Datensatz bezeichnet, für den eine Aktion ausgeführt werden soll. Das Argument In kann den Namen der Tabelle, eine Auswahlabfrage oder eine SQL-Anweisung enthalten. HINWEIS: Der angegebene Datensatz darf keine Daten enthalten, die in einer verknüpften Tabelle oder ODBC-Datenquelle gespeichert sind. |
Bedingung |
Nein |
Ein Zeichenfolgenausdruck, der verwendet wird, um den Datenbereich einzuschränken, für den der Datenblock LookupRecord ausgeführt wird. Kriterien entsprechen beispielsweise häufig der WHERE-Klausel in einem SQL-Ausdruck ohne das Wort WHERE. Wenn Kriterien nicht angegeben werden, wird der Datenblock LookupRecord für die gesamte Domäne ausgeführt, die durch das Argument In angegeben wird. Jedes Feld, das in Kriterien enthalten ist, muss auch ein Feld in In sein. |
Alias |
Nein |
Eine Zeichenfolge, die einen alternativen Namen für den durch das In-Argument angegebenen Datensatz bereitstellt. Wird häufig als Abkürzung des Tabellennamens in späteren Verweisen verwendet, um mögliche Mehrdeutigkeiten zu vermeiden. Wenn Alias nicht angegeben ist, wird der Tabellen- oder Abfragename als Alias verwendet. |
Hinweise
Wenn die durch die Argumente In und Where Condition angegebenen Kriterien mehr als einen Datensatz zurückgeben, wird der Datenblock LookupRecord nur für den ersten Datensatz verwendet. Wenn keine Datensätze den angegebenen Kriterien entsprechen, überspringt Access den Satz von Aktionen, die im LookupRecord-Block enthalten sind, als wäre es ein If-Makroblockausdruck gewesen, der als false ausgewertet wurde.
Beispiel
Im folgenden Beispiel wird gezeigt, wie die SetReturnVar-Aktion verwendet wird, um einen Wert aus einem benannten Datenmakro zurückzugeben. Ein ReturnVar mit dem Namen CurrentServiceRequest wird an die Makro- oder Visual Basic for Applications-Unterroutine (VBA) zurückgegeben, die das benannte Datenmakro aufgerufen hat.
Der Beispielcode stammt von:Microsoft Access 2010 Programmer's Reference.
RunDataMacro
Macro Name tblServiceRequests.dmGetCurrentServiceRequest
Parameters
prmAssignedTo =[ID]
SetProperty
Control Name txtCurrentSR
Property Value
Value =[ReturnVars]![CurrentServiceRequest]
Das folgende Beispiel zeigt, wie Sie die Aktion RaiseError verwenden, um das Datenmakroereignis "Before Change" abzubrechen. Wenn das Feld AssignedTo aktualisiert wird, wird ein LookupRecord-Datenblock verwendet, um zu bestimmen, ob der zugewiesene Techniker derzeit einer offenen Serviceanfrage zugewiesen ist. Wenn dies zutrifft, wird das Ereignis Before Change abgebrochen, und der Datensatz wird nicht aktualisiert.
/* Get the name of the technician */
Look Up A Record In tblTechnicians
Where Condition =[tblTechnicians].[ID]=[tblServiceRequests].[AssignedTo]
SetLocalVar
Name TechName
Expression [tblTechnicians].[FirstName] & " " & [tblTechnicians].[LastName]
/* End LookUpRecord */
If Updated("AssignedTo") Then
Look Up A Record In tblServiceRequests
Where Condition SR.[AssignedTo]=tblServiceRequests[AssignedTo] And
SR.[ID]<>tblServiceRequests.[ID] And IsNull(SR.[ActualCompletionDate])
Alias SR
RaiseError
Error Number 1234
Error Description ="Cannot assign a request to the specified technician: " & [TechName]
End If