Za pomocą funkcji DFirst i DLast można zwrócić losowy rekord z określonego pola tabeli lub zapytania, gdy jest potrzebna dowolna wartość z tego pola. Funkcji DFirst i DLast można używać w makrach, modułach, wyrażeniach zapytań lub kontrolkach obliczeniowych w formularzu lub raporcie.
Składnia
DFirst(** wyrażenie, domena [, kryteria**] )
DLast(** wyrażenie, domena [, kryteria**] )
Funkcje DFirst i DLast występują w następujących argumentach:
| Argumenty argumentów | Opis |
|---|---|
| wyrażenie | Argument wymagany. Wyrażenie identyfikujące pole, w którym ma zostać wynaleziona pierwsza lub ostatnia wartość. Może to być wyrażenie tekstowe identyfikujące pole w tabeli lub zapytaniu albo wyrażenie wykonujące obliczenia na danych w tym polu. W wyrażeniu można zawrzeć nazwę pola w tabeli, kontrolkę w formularzu, stałą lub funkcję. Jeśli wyrażenie zawiera funkcję, może to być funkcja wbudowana lub zdefiniowana przez użytkownika, ale z wyłączeniem funkcji agregującej domeny i funkcji agregującej języka SQL. |
| domena | Argument wymagany. Wyrażenie tekstowe identyfikujące zestaw rekordów stanowiący domenę. |
| kryteria | Argument opcjonalny. Wyrażenie tekstowe używane w celu ograniczenia zakresu danych, dla którego wykonywana jest funkcja DFirst lub DLast . Na przykład kryteria są często takie same, jak klauzula WHERE w wyrażeniu SQL, z pominięciem wyrazu WHERE. Jeśli kryteria zostaną pominięte, funkcje DFirst i DLast ocenią 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
Aby zwrócić pierwszy lub ostatni rekord w zestawie rekordów (domenie), należy utworzyć zapytanie posortowane rosnąco lub malejąco i ustawić właściwość TopValues (NajwyższeWartości) na wartość 1. Aby uzyskać więcej informacji, zobacz temat właściwości NajwyższeWartości . Z poziomu modułu języka Visual Basic for Applications (VBA) można również utworzyć obiekt zestawu rekordów ADO i użyć metody MoveFirst lub MoveLast w celu zwrócenia pierwszego lub ostatniego rekordu w zestawie rekordów.
Przykłady
| Wyrażenie | Rezultat |
|---|---|
| SELECT DFirst("DateofSale","ProductSales") AS Wyr1 FROM ProductSales GROUP BY DFirst("DateofSale","ProductSales"); | Zwraca losową wartość z pola "DateofSale" z tabeli "ProductSales". Jeśli tabela ma klucz podstawowy, zwróci wartość "FIRST" z "DateofSale" zgodnie z rosnącą kolejnością klucza podstawowego. |
| SELECT DLast("DateofSale","ProductSales") AS FirstDis_ID FROM ProductSales GROUP BY DLast("DateofSale","ProductSales"); | Zwraca losową wartość z pola "DateofSale" z tabeli "ProductSales". Jeśli tabela ma klucz podstawowy, zwróci wartość "LAST" z tabeli "DateofSale" zgodnie z rosnącą kolejnością klucza podstawowego. zwraca pierwszy "ProductID" z tabeli "ProductSales", gdzie wartość "Discount" 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 ostatni parametr "ProductID" z tabeli "ProductSales", gdzie wartość "Discount" wynosi "0", a wynik wyświetla w kolumnie "LastDis_ID". |