Za pomocą funkcji DFirst i DLast możesz zwrócić losowy rekord z określonego pola w tabeli lub zapytaniu, gdy po prostu potrzebujesz dowolnej wartości z tego pola. Funkcje DFirst i DLast można używać w makrze, module, wyrażeniu zapytania lub kontrolce obliczeniowej w formularzu lub raporcie.
Składnia
DFirst( ** wyr., domena [, kryteria**] )
DLast( ** wyr., domena [, kryteria**] )
Funkcje DFirst i DLast mają następujące argumenty:
| Argument | Opis |
|---|---|
| wyrażenie | Argument wymagany. Wyrażenie identyfikujące pole, z którego chcesz znaleźć pierwszą lub ostatnią wartość. Może to być wyrażenie ciągu identyfikujące pole w tabeli lub zapytaniu albo wyrażenie wykonujące obliczenia na danych w tym polu. W wyr. można dołączyć nazwę pola w tabeli, kontrolkę w formularzu, stałą lub funkcję. Jeśli wyrażenie zawiera funkcję, może być wbudowana lub zdefiniowana przez użytkownika, ale nie może być inną funkcją agregacji domeny lub funkcji agregacji SQL. |
| domena | Argument wymagany. Wyrażenie tekstowe identyfikujące zestaw rekordów stanowiący domenę. |
| kryteria | Argument opcjonalny. Wyrażenie ciągu służące do ograniczania zakresu danych, dla którego wykonywana jest funkcja DFirst lub DLast . Na przykład kryteria są często równoważne klauzuli WHERE w wyrażeniu SQL bez wyrazu WHERE. Jeśli argument kryteria zostanie pominięty, funkcje DFirst i DLastbędą oceniać wyrażenie względem całej domeny. Każde pole zawarte w kryteriach musi być również polem w domenie. W przeciwnym razie funkcje DFirst i DLast zwracają wartość Null. |
Spostrzeżenia
Uwaga
Jeśli chcesz zwrócić pierwszy lub ostatni rekord w zestawie rekordów (domeny), utwórz zapytanie posortowane jako rosnąco lub malejąco i ustaw właściwość TopValues (NajwyższeWartości) na 1. Aby uzyskać więcej informacji, zobacz temat właściwości TopValues . Na podstawie modułu Visual Basic for Applications (VBA) można również utworzyć obiekt Recordset modelu ADO i użyć metody MoveFirst lub MoveLast w celu zwrócenia pierwszego lub ostatniego rekordu w zbiorze rekordów.
Przykłady
| Wyrażenie | Rezultat |
|---|---|
| SELECT DFirst("DateofSale","ProductSales") AS Expr1 FROM ProductSales GROUP BY DFirst("DateofSale","ProductSales"); | Zwraca wartość losową z pola "DateofSale" tabeli "SprzedażProduktu". Jeśli tabela ma "klucz podstawowy", zwraca wartość "FIRST" "DateofSale" na podstawie kolejności rosnącej klucza podstawowego. |
| SELECT DLast("DateofSale","ProductSales") AS FirstDis_ID FROM ProductSales GROUP BY DLast("DateofSale","ProductSales"); | Zwraca wartość losową z pola "DateofSale" tabeli "SprzedażProduktu". Jeśli tabela ma "klucz podstawowy", zwraca wartość "LAST" "DateofSale" na podstawie kolejności rosnącej klucza podstawowego. zwraca pierwszy identyfikator produktu z tabeli "ProductSales", gdzie wartość "Rabat" wynosi "0" i wyświetla wynik w kolumnie "FirstDis_ID". |
| SELECT DLast("ProductID","ProductSales","Discount=0") AS LastDis_ID FROM ProductSales GROUP BY DLast("ProductID","ProductSales","Discount=0"); | Zwraca wartość Last "ProductID" z tabeli "ProductSales", gdzie wartość "Rabat" wynosi "0" i wyświetla wynik w kolumnie "LastDis_ID". |