Applies ToAccess voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

In Access bureaubladdatabases kunt u de functie DLookup gebruiken om de waarde van een bepaald veld op te halen uit een opgegeven set 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.

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 gegevensbereik te beperken waarop de functie DLookup wordt uitgevoerd. Criteria is bijvoorbeeld vaak gelijk aan de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als criteria worden weggelaten, evalueert de functie DLookupexpr op basis van het hele domein. Elk veld dat is opgenomen in criteria , moet ook een veld in het domein zijn; anders retourneert de functie 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 VariantvarX = 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: Niet-opgeslagen wijzigingen in records in domein worden niet opgenomen wanneer u deze functie gebruikt. Als u wilt dat de functie DLookup is gebaseerd op de gewijzigde waarden, moet u de wijzigingen eerst opslaan door te klikken op Record opslaan onder Records op het tabblad Gegevens , de focus naar een andere record te verplaatsen of door de updatemethode te gebruiken.

Voorbeeld

Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Zie Naslaginformatie over VBA openen voor meer informatie over het werken met VBA.

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 VariantvarX = 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 zorgt ervoor dat telkens wanneer de functie DLookup wordt aangeroepen, Access de huidige waarde van het besturingselement ophaalt.

Dim varX As VariantvarX = 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 IntegerDim varX As VariantintSearch = 1varX = DLookup("[CompanyName]", "Shippers", _    "[ShipperID] = " & intSearch)

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.