In Access-Desktopdatenbanken können Sie die DLookup -Funktion verwenden, um den Wert eines bestimmten Felds aus einem angegebenen Satz von Datensätzen (einer Domäne) abzurufen. Sie können in einem VBA-Modul (Visual Basic for Applications), einem Makro, einem Abfrageausdruck oder einem berechneten Steuerelement in einem Formular oder Bericht verwendenDLookup.
Sie können die DLookup -Funktion verwenden, um den Wert eines Felds anzuzeigen, das sich nicht in der Datensatzquelle für Ihr Formular oder Ihren Bericht befindet. Angenommen, Sie verfügen über ein Formular, das auf einer Tabelle "Bestelldetails" basiert. Das Formular zeigt die OrderIDFelder , ProductID, UnitPrice, Quantityund Discount an. Das Feld befindet sich jedoch ProductName in einer anderen Tabelle, der Products Tabelle. Sie können die DLookup Funktion in einem berechneten Steuerelement verwenden, um auf demselben Formular anzuzeigen ProductName .
Syntax
DLookup(expr, domain [, criteria])
Die DLookup Funktion weist die folgenden Argumente auf:
| Argument | Beschreibung |
|---|---|
expr |
Erforderlich. Ein Ausdruck, der das Feld angibt, dessen Wert zurückgegeben werden soll. Es kann sich um einen Zeichenfolgenausdruck handeln, der ein Feld in einer Tabelle oder Abfrage identifiziert, oder es kann sich um einen Ausdruck handeln, der eine Berechnung für Daten in diesem Feld ausführt. In exprkönnen Sie den Namen eines Felds in einer Tabelle, ein Steuerelement in einem Formular, eine Konstante oder eine Funktion einschließen. Wenn expr eine Funktion enthält, kann sie integriert oder benutzerdefinierte sein, aber keine andere Domänenaggregat- oder SQL Aggregatfunktion. |
domain |
Erforderlich. Ein Zeichenfolgenausdruck, der den Satz von Datensätzen identifiziert, aus denen die Domäne besteht. Dies kann ein Tabellenname oder ein Abfragename für eine Abfrage sein, die keinen Parameter erfordert. |
criteria |
Optional. Ein Zeichenfolgenausdruck, der verwendet wird, um den Datenbereich einzuschränken, für den die DLookup Funktion ausgeführt wird. Beispielsweise criteria entspricht häufig der WHERE -Klausel in einem SQL Ausdruck ohne das Wort WHERE. Wenn Sie weglassen criteria, wird die DLookup Funktion für die gesamte Domäne ausgewertet expr . Jedes in criteria enthaltene Feld muss auch ein Feld in domainsein. Andernfalls gibt die DLookup Funktion zurück Null. |
Hinweise
Die DLookup Funktion gibt einen einzelnen Feldwert basierend auf den in criteriaangegebenen Informationen zurück. Obwohl criteria optional ist, gibt die Funktion einen zufälligen Wert in der Domäne zurück, DLookup wenn Sie dafür keinen Wert angeben.
Wenn kein Datensatz erfüllt criteriaoder domain keine Datensätze enthält, gibt die DLookup Funktion zurück Null.
Wenn mehr als ein Feld entspricht criteria, gibt die DLookup Funktion das erste Vorkommen zurück. Sie sollten Kriterien angeben, die sicherstellen, dass der von DLookup zurückgegebene Feldwert eindeutig ist. Sie können einen Primärschlüsselwert für Ihre Kriterien verwenden, z [EmployeeID] . B. im folgenden Beispiel, um sicherzustellen, dass DLookup einen eindeutigen Wert zurückgibt:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Unabhängig davon, ob Sie die DLookup Funktion in einem Makro oder Modul, einem Abfrageausdruck oder einem berechneten Steuerelement verwenden, erstellen Sie das criteria Argument sorgfältig, damit es von Access richtig ausgewertet wird.
Sie können die DLookup -Funktion verwenden, um Kriterien in der Zeile Kriterien einer Abfrage, in einem berechneten Feldausdruck in einer Abfrage oder in der Zeile Aktualisieren auf in einer Updateabfrage anzugeben.
Sie können die DLookup Funktion auch in einem Ausdruck in einem berechneten Steuerelement auf einem Formular oder Bericht verwenden, wenn sich das anzuzeigende Feld nicht in der Datensatzquelle befindet, auf der ihr Formular oder Bericht basiert. Angenommen, Sie verfügen über ein Bestelldetails-Formular, das auf einer Tabelle mit Bestelldetails basiert und ein Textfeld namens ProductID enthält, in dem das ProductID Feld angezeigt wird. Um aus einer Products Tabelle basierend auf dem Wert im Textfeld nachzuschlagenProductName, erstellen Sie ein weiteres Textfeld, und legen Sie dessen ControlSource-Eigenschaft auf den folgenden Ausdruck fest:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Tipps
- Obwohl Sie die DLookup-Funktion verwenden können, um einen Wert aus einem Feld in einer Fremdtabelle anzuzeigen, kann es effizienter sein, eine Abfrage zu erstellen, die die Felder enthält, die Sie aus beiden Tabellen benötigen, und dann ihr Formular oder Ihren Bericht auf dieser Abfrage zu basieren.
- Sie können auch den Nachschlage-Assistenten verwenden, um nach Werten in einer Fremdtabelle zu suchen.
Hinweis
Nicht gespeicherte Änderungen an Datensätzen in domain sind nicht enthalten, wenn Sie diese Funktion verwenden. Wenn Sie die geänderten Werte verwenden möchtenDLookup, speichern Sie zuerst die Änderungen, indem Sie auf der Registerkarte Daten unter Datensätze auf Datensatz speichern klicken, den Fokus auf einen anderen Datensatz verschieben oder die Update -Methode verwenden.
Beispiel
Hinweis
Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Weitere Informationen zum Arbeiten mit VBA finden Sie unter Zugreifen auf VBA-Referenz.
Im folgenden Beispiel werden Namensinformationen aus dem CompanyName Feld des Datensatzes zurückgegeben, der erfüllt criteria. Die Domäne ist eine Shippers Tabelle. Das criteria Argument schränkt den resultierenden Satz von Datensätzen auf diejenigen ein, für die ShipperID gleich ist 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
Im nächsten Beispiel aus der Shippers Tabelle wird das Formularsteuerelement ShipperID verwendet, um Kriterien für die DLookup Funktion bereitzustellen. Der Verweis auf das Steuerelement ist in den Anführungszeichen, die die Zeichenfolgen kennzeichnen, nicht enthalten. Dadurch wird sichergestellt, dass Access bei jeder DLookup Ausführung den aktuellen Wert aus dem Steuerelement abruft.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
Im nächsten Beispiel wird die Variable verwendet, intSearchum den Wert abzurufen.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)