Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Schnell Werte abfragen mit DLookup

Mal eben schnell einen Wert aus einer Tabelle abzufragen ist eine oft bentigte Funktion. Access bietet dazu die DLookup-Funktion an. Wenn man deren Anwendung einmal verinnerlicht hat, ist sie blitzschnell eingetippt, aber aller Anfang ist schwer...

DLookup ohne Angst

Die DLookup-Anweisung ist eigentlich sehr leicht zu handhaben. Trotzdem treten immer wieder Probleme bei deren Einsatz auf. Daher stellt Access im Unternehmen diese Funktion hier einmal im Detail vor.

DLookup und eine herkmmliche SQL-Anweisung sind prinzipiell gleich aufgebaut. Sie bestehen aus den folgenden Elementen:

Name des Feldes, dessen Inhalt gesucht wird
Name der Tabelle oder Abfrage, in der das Feld enthalten ist
Bedingung fr den Datensatz, fr den der Wert ermittelt werden soll

Nun wird vermutlich keiner, der die entsprechende SQL-Anweisung beherrscht, Probleme mit der DLookup-Anweisung haben, daher finden Sie nun Details zur dieser praktischen Anweisung.

DLookup easy

Die folgende Anweisung liefert den Vornamen fr einen Datensatz der Tabelle tblPersonen, dessen Feld PersonID den Wert 1 hat.

Debug.Print DLookup("Vorname", "tblPersonen", "PersonID = 1")

Die Anweisung schnappt sich also die Tabelle tblPersonen, sucht den Datensatz mit der Nummer 1 und schaut dann nach, welchen Wert das zu diesem Datensatz gehrende Feld namens Vorname hat.

Bevor es unter den Tisch fllt: Es gibt sogar noch eine einfachere Variante der DLookup-Anweisung. Bei dieser fllt der letzte Parameter weg - die Funktion liefert dann einfach den Wert fr das Feld Vorname zurck, der zum ersten gefundenen Datensatz gehrt.

Wer zuerst kommt, mahlt zuerst

Letzteres macht schon eines deutlich: Wenn die 'Abfrage', die aus der Angabe der Tabelle und des Kriteriums besteht, mehr als einen Datensatz zurckliefert, bezieht sich die DLookup-Funktion immer auf den ersten in der Ergebnismenge enthaltenen Datensatz.

Dlookup mit Abfragen

Auer Tabellen knnen Sie als zweiten Parameter auch einfach eine Abfrage angeben. Das ist sinnvoll, wenn ein Wert aus verknpften Tabellen ermittelt werden soll, bei dem das Kriterium in einer anderen Tabelle befindet.

Wenn Sie also etwa in einer Abfrage namens qryPersonenAbteilungen die beiden miteinander verknpften Tabellen tblPersonen und tblAbteilungen vereinen und den ersten Mitarbeiter anzeigen mchten, der zur Abteilung 'EDV' gehrt, verwenden Sie folgende Anweisung:

Debug.Print DLookup("Nachname", "qryPersonenAbteilungen", "Abteilung LIKE 'EDV'")

Zahlen und Strings als Kriterium

Haben Sie es bemerkt? Im letzten Beispiel wurde eine Zeichenkette als Kriterium verwendet. In dem Fall mssen Sie das Kriterium immer in Hochkommata einschlieen, da Sie anderenfalls eine Fehlermeldung erhalten, die Ihnen Probleme bei der Ursachenfindung bereiten wird (siehe Abbildung 1).

Diese Fehlermeldung erhalten Sie beispielsweise, wenn Sie statt der obigen Anweisung diese hier verwenden:

Debug.Print DLookup("Nachname", "qryPersonenAbteilungen", "Abteilung LIKE EDV")

Abbildung 1: Universalmeldung bei DLookup-Fehlern

DLookup mit Variablen

Sie knnen smtliche Parameter der Dlookup-Anweisung mit Variablen fllen. Bei den ersten beiden wird das in der Regel nicht vorkommen, aber der letzte Parameter zum Angeben der Bedingung verwendet recht oft Variablen - aber nur fr den Vergleichswert. Beispiel:

Public Function FirmenIDErmitteln(strFirma As String) As Long

    FirmenIDErmitteln = DLookup("FirmaID", "tblFirmen", "Firma LIKE '" & strFirma & "'")

End Function

Die Funktion erwartet einen Firmennamen als Parameter. Die DLookup-Anweisung setzt das Kriterium aus dem Feldnamen Firma, dem Vergleichsoperator LIKE und dem Vergleichsstring zusammen. Dieser wird allerdings noch in Hochkommata eingeschlossen.

Es ist wichtig, dass Sie dieser Vergleichsstring durch das Kaufmanns-Und (&) mit dem Rest des Kriteriums verbinden und dass Sie die umschlieenden Teile durch Anfhrungszeichen als eigene Zeichenketten kennzeichnen - also "Firma LIKE '" und den Teil mit dem schlieenden Hochkomma: "'".

© 2003-2015 André Minhorst Alle Rechte vorbehalten.