DLookup, functie

In Access-bureaubladdatabases kunt u de functie DLookup gebruiken om de waarde op te vragen van een bepaald veld in een set opgegeven records (een domein). Gebruik de functie DLookup in een Visual Basic for Applications-module (VBA), een macro, een query-expressie of een berekend besturingselement in een formulier of rapport.

Opmerking: Dit artikel is niet van toepassing op Access-web-apps.

U kunt de functie DLookup gebruiken om de waarde van een veld weer te geven dat niet is opgenomen in de recordbron van het formulier of rapport. Stel dat u een formulier hebt op basis van een tabel Orderinformatie. Het formulier bevat de velden Order-id, Product-id, Prijs per eenheid, Hoeveelheid en Korting. Het veld Productnaam staat echter in een andere tabel, namelijk de tabel Producten. U kunt dan de functie DLookup gebruiken in een berekend besturingselement om het veld Productnaam op hetzelfde formulier weer te geven.

Syntaxis

DLookup( expr, domein [, criteria] )

De syntaxis van de functie DLookup bevat de volgende argumenten:

Argument

Beschrijving

expr

Vereist. Een expressie die het veld aangeeft waarvan u de waarde wilt opvragen. Dit kan een reeksexpressie zijn waarmee een veld van een tabel of query wordt aangegeven of een expressie die een berekening uitvoert op de gegevens die zich in dat veld bevinden. In expr kunt u de naam van een veld in een tabel opnemen, een besturingselement van een formulier, een constante of een functie. Als expr een functie bevat, kan dit een ingebouwde functie of een door een gebruiker gedefinieerde functie zijn, maar niet nog een statistische domein- of SQL-functie.

domein

Vereist. Een tekenreeksexpressie waarmee de set records wordt aangegeven waaruit het domein bestaat. Dit kan de naam van een tabel zijn of de naam van een query waarvoor geen parameter nodig is.

criteria

Optioneel. Een tekenreeksexpressie die wordt gebruikt om het bereik van de gegevens die voor de functie DLookup worden gebruikt te beperken. Zo bevat het argument criteria vaak dezelfde gegevens als de WHERE-component van een SQL-expressie, maar dan zonder het woord WHERE. Als het argument criteria wordt weggelaten, wordt het argument expr door de functie DLookup gebruikt voor het hele domein. Alle velden die in de criteria zijn opgenomen, moeten zich ook in het domein bevinden. Anders retourneert DLookup een Null.

Opmerkingen

De functie DLookup retourneert de waarde van één veld op basis van de gegevens die zijn opgegeven in criteria. Hoewel criteria een optioneel argument is, retourneert DLookup een willekeurige waarde in het domein als u geen waarde opgeeft voor criteria.

Als geen enkele record voldoet aan het argument criteria of als domein geen records bevat, retourneert DLookup een Null.

Als meer dan één veld voldoet aan criteria, retourneert DLookup het eerste veld waar aan het argument wordt voldaan. Geef criteria op die ervoor zorgen dat de veldwaarde die het resultaat is van DLookup uniek is. U kunt de waarde van een primaire sleutel gebruiken voor de criteria, zoals [EmployeeID] in het volgende voorbeeld, om ervoor te zorgen dat DLookup een unieke waarde retourneert:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")

Ongeacht of u de functie DLookup gebruikt in een macro of module, een query-expressie of een berekend besturingselement, is het belangrijk dat u het argument criteria zorgvuldig samenstelt. Alleen dan kan het argument goede resultaten opleveren.

U kunt de functie DLookup gebruiken om criteria op te geven in de rij Criteria van een query, binnen een expressie van een berekend veld in een query of in een bijwerkquery in de rij Wijzigen in.

U kunt DLookup ook gebruiken in een expressie in een berekend besturingselement in een formulier of rapport als het veld dat u wilt weergeven niet in de recordbron staat van het formulier of rapport. Stel dat u een formulier Orderinformatie hebt dat is gebaseerd op een gelijknamige tabel met een tekstvak Product-id dat overeenkomt met het veld Product-id. Als u Productnaam wilt opzoeken in een producttabel op basis van de waarde in het tekstvak, kunt u een ander tekstvak maken en de eigenschap Besturingselementbron hiervan instellen op de volgende expressie:

=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)

Tips

  • Hoewel u met DLookup een waarde kunt opvragen uit een veld in een refererende tabel, kan het efficiënter zijn om een query te maken met de velden die u uit beide tabellen nodig hebt en vervolgens het formulier of rapport op die query te baseren.

  • U kunt ook de wizard Opzoeken gebruiken om waarden in een refererende tabel te vinden.

Opmerking: Recordwijzigingen die niet zijn opgeslagen in domein worden niet meegenomen in deze functie. Als u de functie DLookup wilt baseren op de gewijzigde waarden, moet u de wijzigingen eerst opslaan. Ga hiervoor naar het tabblad Gegevens en klik onder Records op Record opslaan. U kunt de wijzigingen ook opslaan door de focus naar een andere record te verplaatsen of de methode Update te gebruiken.

Voorbeeld

Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.

In het volgende voorbeeld worden naamgegevens opgehaald uit het veld CompanyName van de record die voldoet aan criteria. Het domein is een tabel Shippers. Het argument criteria beperkt het resultaat tot een recordset waarvan ShipperID gelijk is aan 1.

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

In het volgende voorbeeld met de tabel Shippers wordt het formulierbesturingselement ShipperID gebruikt om criteria door te geven aan DLookup. De verwijzing naar het besturingselement staat niet tussen de aanhalingstekens waarmee de tekenreeksen worden aangegeven. Dit is nodig om ervoor te zorgen dat bij elke aanroep van DLookup de huidige waarde van het besturingselement wordt opgehaald in Access.

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

In het volgende voorbeeld wordt een variabele, intSearch, gebruikt om de waarde op te halen.

Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)
Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×