Freigeben über


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