DLookup (Funktion)

Gilt für
Access für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

In Access-Desktopdatenbanken können Sie die DLookup-Funktion verwenden, um den Wert eines bestimmten Felds aus einer angegebenen Gruppe von Datensätzen (einer Domäne) abzurufen. Verwenden Sie die DLookup-Funktion in einem vba-Modul (Visual Basic for Applications), einem Makro, einem Abfrageausdruck oder einem berechneten Steuerelement in einem Formular oder Bericht.

Sie können die DomWert-Funktion verwenden, um den Wert eines Felds anzuzeigen, das nicht in der Datensatzquelle für das Formular oder den Bericht enthalten ist. Angenommen, Sie verfügen über ein Formular, das auf einer Tabelle "Bestelldetails" basiert. In dem Formular werden die Felder "BestellNr", "ArtikelNr", "Einzelpreis", "Menge" und "Rabatt" angezeigt. Das Feld "Artikelname" befindet sich jedoch in einer anderen Tabelle, nämlich der Tabelle "Artikel". Sie können die DomWert-Funktion in einem berechneten Steuerelement verwenden, um den Wert für "Artikelname" in demselben Formular anzuzeigen.

Syntax

DLookup(expr, domain [, criteria] )

Die Syntax der DomWert-Funktion weist die folgenden Argumente auf:

Argument Beschreibung
Ausdruck Erforderlich. Ein Ausdruck, der das Feld angibt, dessen Wert zurückgegeben werden soll. Dabei kann es 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 Expr kö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 entweder integriert oder benutzerdefinierte sein, aber keine andere Domänenaggregat- oder SQL-Aggregatfunktion.
Domäne Erforderlich. Ein Zeichenfolgenausdruck, der die Gruppe von Datensätzen angibt, die die Domäne bilden. Es kann sich um einen Tabellennamen oder um einen Abfragenamen für eine Abfrage handeln, die keinen Parameter erfordert.
Kriterien Optional. Ein Zeichenfolgenausdruck, der verwendet wird, um den Datenbereich einzuschränken, für den die DLookup-Funktion ausgeführt wird. Kriterien entsprechen z . B. häufig der WHERE-Klausel in einem SQL-Ausdruck ohne das Wort WHERE. Wenn Kriterien nicht angegeben werden, wertet die DLookup-Funktionexpr für die gesamte Domäne aus. Jedes Feld, das in Kriterien enthalten ist, muss ebenfalls ein Feld in der Domäne sein; Andernfalls gibt die DLookup-Funktion einen Null-Wert zurück.

Hinweise

Die DLookup-Funktion gibt einen einzelnen Feldwert zurück, der auf den in Kriterien angegebenen Informationen basiert. Obwohl criteria ein optionales Argument ist, gibt die DLookup-Funktion einen zufälligen Wert in der Domäne zurück, wenn Sie keinen Wert für Kriterien angeben.

Wenn kein Datensatz die Kriterien erfüllt oder die Domäne keine Datensätze enthält, gibt die DLookup-Funktioneinen Null-Wert zurück.

Wenn mehrere Felder kriterien erfüllen, gibt die DLookup-Funktion das erste Vorkommen zurück. Beim Angeben der Kriterien sollte sichergestellt werden, dass der von der DomWert-Funktion 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 die DLookup-Funktion 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, müssen Sie das Argument criteria sorgfältig erstellen, um sicherzustellen, dass es ordnungsgemäß 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 DomWert-Funktion auch in einem Ausdruck für ein berechnetes Steuerelement in einem Formular oder Bericht verwenden, wenn sich das anzuzeigende Feld nicht in der Datensatzquelle befindet, auf der das Formular oder der Bericht basiert. Angenommen, Sie verfügen über ein Formular "Bestelldetails", das auf der Tabelle "Bestelldetails" basiert und das zum Anzeigen des Felds "ArtikelNr" das Textfeld "ArtikelNr" enthält. Sie können ein weiteres Textfeld erstellen und dessen Eigenschaft Steuerelementinhalt auf den folgenden Ausdruck festlegen, um "Artikelname" basierend auf dem Wert im Textfeld in einer Tabelle "Artikel" zu finden:

=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 der Domäne sind nicht enthalten, wenn Sie diese Funktion verwenden. Wenn die DomWert-Funktion auf den geänderten Werten basieren soll, müssen Sie die Änderungen zunächst speichern, indem Sie auf der Registerkarte Daten unter Datensätze auf Datensatz speichern klicken, damit der Fokus zu einem anderen Datensatz wechselt, oder indem Sie die Methode Aktualisieren 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 Feld CompanyName des Datensatzes zurückgegeben, der die Kriterien erfüllt. Als Domäne wird die Tabelle "Versandfirmen" verwendet. Das Argument criteria schränkt den resultierenden Satz von Datensätzen auf diejenigen ein, für die ShipperID gleich 1 ist.

Dim varX As Variant
varX = DLookup("[CompanyName]", _
    "Shippers", "[ShipperID] = 1")

Im nächsten Beispiel für die Tabelle "Versandfirmen" wird das Formularsteuerelement "VersandfirmenNr" verwendet, um Kriterien für die DomWert-Funktion bereitzustellen. Beachten Sie, dass der Verweis auf das Steuerelement außerhalb der Anführungszeichen für die Zeichenfolgen steht. Dadurch wird sichergestellt, dass Access bei jedem Aufrufen der DomWert-Funktion 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)