U kunt de functies DFirst en DLast gebruiken om een willekeurige record op te vragen uit een bepaald veld in een tabel of query wanneer elke waarde uit dat veld volstaat. Gebruik de functies DFirst en DLast in een macro, module, query-expressie of in een berekend besturingselement in een formulier of rapport.
Syntaxis
DFirst ( expr , domein [, criteria] )
DLast ( expr , domein [, criteria] )
De functies DFirst en DLast hebben de volgende argumenten:
Argument |
Beschrijving |
expr |
Vereist. Een expressie die het veld aangeeft waaruit u de eerste of laatste 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. |
criteria |
Optioneel. Een tekenreeksexpressie die wordt gebruikt om het gegevensbereik te beperken waarop de functie DFirst of DLast wordt uitgevoerd. Criteria komen bijvoorbeeld vaak overeen met de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als u criteria weglaat, wordt met de functies DFirst en DLastde expr geëvalueerd ten opzichte van het hele domein. Alle velden die zijn opgenomen in criteria, moeten ook een veld in het domein zijn. anders retourneren de functies DFirst en DLast een Null. |
Opmerkingen
Opmerking: Als u de eerste of laatste record in een set records (een domein) wilt opvragen, moet u een query maken die u in oplopende of aflopende volgorde sorteert en de eigenschap TopValues instellen op 1. Zie voor meer informatie het onderwerp TopValues, eigenschap . In een VBA-module (Visual Basic for Applications) kunt u ook een ADO Recordset-object maken en via de methode MoveFirst of MoveLast de eerste of laatste record in een set records opvragen.
Voorbeelden
Expressie |
Resultaten |
SELECT DFirst("DateofSale","ProductVerverkoop") AS Expr1 FROM ProductSales GROUP BY DFirst("DateofSale","ProductVerverkoop"); |
Geeft als resultaat de willekeurige waarde uit het veld 'DateofSale' van de tabel 'Productverkoop'. Als de tabel een 'primaire sleutel' heeft, wordt de waarde 'EERSTE' van de 'DateofSale' als resultaat geeft op basis van een oplopende volgorde van de primaire sleutel. |
SELECT DLast("DateofSale","ProductVerkeert") AS FirstDis_ID FROM ProductSales GROUP BY DLast("DateofSale","ProductSales"); |
Geeft als resultaat de willekeurige waarde uit het veld 'DateofSale' van de tabel 'ProductVerkoop'. Als de tabel een 'primaire sleutel' heeft, wordt de waarde 'LAATSTE' van de 'DateofSale' als resultaat geeft op basis van een oplopende volgorde van de primaire sleutel. Geeft als resultaat de eerste 'Product-id' uit de tabel 'Productverkoop' waarbij de waarde 'Korting' '0' is en het resultaat wordt weergegeven in de kolom 'FirstDis_ID'. |
SELECT DLast("ProductID","ProductVerverkoop","Discount=0") AS LastDis_ID FROM ProductSales GROUP BY DLast("ProductID","ProductVerverkoop","Discount=0"); |
Retourneert de laatste 'Product-id' uit de tabel 'Productverkoop' waarbij de waarde 'Korting' '0' is en het resultaat wordt weergegeven in de kolom 'LastDis_ID'. |