In Access Desktopdatenbanken können Sie die DLookup-Funktion verwenden, um den Wert eines bestimmten Felds aus einer angegebenen Gruppe von Datensätzen abzurufen (ein Domäne ). Verwenden Sie die DLookup-Funktion in einem VBA-Modul (Visual Basic for Applications), einem Makro, einem Abfrageausdruck oder einem Berechnetes 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
DomWert( Ausdruck; Domäne ; [Kriterien] )
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. Es kann sich um einen Zeichenfolgenausdruck handeln, der ein Feld in einer Tabelle oder Abfrage angibt, oder um einen Ausdruck, der für Daten in diesem Feld eine Berechnung durchführt. Sie können in Ausdruck den Namen eines Felds in einer Tabelle, ein Steuerelement in einem Formular, eine Konstante oder eine Funktion einfügen. Wenn Ausdruck eine Funktion enthält, kann es sich um eine integrierte oder um eine benutzerdefinierte Funktion handeln, aber nicht um ein anderes Domänenaggregat oder eine 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 DomWert-Funktion gibt einen einzelnen Feldwert zurück, der auf den in Kriterien angegebenen Informationen basiert. Obwohl das Argument Kriterien optional ist, gibt die DomWert-Funktion einen zufällig abgerufenen Wert in der Domäne zurück, wenn Sie keinen Wert für Kriterien angeben.
Wenn kein Datensatz die Bedingungen in Kriterien erfüllt oder wenn Domäne keine Datensätze enthält, gibt die DomWert-Funktion Null zurück.
Wenn die Bedingungen in Kriterien von mehreren Feldern erfüllt werden, gibt die DomWert-Funktion das erste Vorkommen zurück. Beim Angeben der Kriterien sollte sichergestellt werden, dass der von der DomWert-Funktion zurückgegebene Feldwert eindeutig ist. Es kann sinnvoll sein, einen Primärschlüsselwert für die Kriterien zu verwenden (wie z. B. [EmployeeID] im folgenden Beispiel), um sicherzustellen, dass die DomWert-Funktion einen eindeutigen Wert zurückgibt:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _ "[EmployeeID] = 1")
Unabhängig davon, ob Sie die DomWert-Funktion in einem Makro oder Modul, einem Abfrageausdruck oder einem berechneten Steuerelement verwenden, müssen Sie das Argument Kriterien sorgfältig erstellen, damit es korrekt ausgewertet wird.
Sie können die DomWert-Funktion verwenden, um Kriterien in der Zeile "Kriterien" einer Abfrage, in einem berechneten Feldausdruck einer Abfrage oder in der Zeile "Aktualisieren" einer Aktualisierungsabfrage 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
-
Sie können zwar die DomWert-Funktion verwenden, um einen Wert aus einem Feld in einer Fremdtabelle anzuzeigen, aber es kann effizienter sein, eine Abfrage mit allen aus beiden Tabellen benötigten Feldern zu erstellen und das Formular oder den Bericht auf dieser Abfrage zu basieren.
-
Sie können auch den Nachschlage-Assistenten verwenden, um nach Werten in einer Fremdtabelle zu suchen.
Hinweis: Bei Verwendung dieser Funktion werden nicht gespeicherte Änderungen an Datensätzen in Domäne nicht berücksichtigt. 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.
Das folgende Beispiel gibt Namensinformationen aus dem Feld "Firma" zurück, das in dem Datensatz enthalten ist, der die Bedingungen in Kriterien erfüllt. Als Domäne wird die Tabelle "Versandfirmen" verwendet. Das Argument Kriterien beschränkt die resultierenden Datensätze auf solche, bei denen für "VersandfirmenNr" der Wert "1" angegeben 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 Aufruf der DLookup-Funktion den aktuellen Wert aus dem Steuerelement abrufen.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & Forms!Shippers!ShipperID)
Im nächsten Beispiel wird die Variable intSearch verwendet, um den Wert abzurufen.
Dim intSearch As Integer
Dim varX As Variant intSearch = 1 varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch)