Za pomocą funkcji DFirst i DLast można zwrócić losowy rekord z określonego pola w tabeli lub zapytaniu, gdy potrzebujesz po prostu dowolnej wartości z tego pola. Funkcje DFirst i DLast można używać w makro, module, wyrażeniu zapytania lub kontrolka obliczeniowa 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, w którym ma zostać znaleźć pierwszą lub ostatnią wartość. Może to być wyrażenie tekstowe identyfikujące pole tabeli lub zapytania albo wyrażenie, które wykonuje obliczenia na danych w tym polu. Za prmożna dołączyć 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 ciągu służące do ograniczenia zakresu danych, na którym jest wykonywana 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 kryteria są pominięte, funkcje DFirst i DLast są szacowane względem całej domeny. Każde pole uwzględnione 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 (a domena ), należy utworzyć zapytanie sortowane jako rosnąco lub malejąco i ustawić dla właściwości NajwyższeWartości wartość 1. Aby uzyskać więcej informacji, zobacz temat właściwości TopValues(NajwyższeWartości). W module języka Visual Basic for Applications (VBA) możesz również utworzyć obiekt ADO Recordset i użyć metody MoveFirst lub MoveLast, aby zwrócić pierwszy lub ostatni rekord w zestawie rekordów.
Przykłady
Wyrażenie |
Wyniki |
SELECT DFirst("DateofSale","ProductSales") AS Wyr1 FROM ProductSales GROUP BY DFirst("DateofSale","ProductSales"); |
Zwraca losową wartość z pola "DateofSale" tabeli "ProductSales". Jeśli tabela ma "klucz podstawowy", zwróci ona wartość "FIRST" wartości "DateofSale" na podstawie rosnącej kolejności klucza podstawowego. |
SELECT DLast("DateofSale","ProductSales") AS FirstDis_ID FROM ProductSales GROUP BY DLast("DateofSale";"ProductSales"); |
Zwraca losową wartość z pola "DateofSale" tabeli "ProductSales". Jeśli tabela ma "klucz podstawowy", zwraca wartość "LAST" wartości "DateofSale" na podstawie rosnącej kolejności klucza podstawowego. Zwraca wartość "ProductID" 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ść ostatniego "ProductID" z tabeli "ProductSales", gdzie wartość "Rabat" wynosi "0" i wyświetla wynik w kolumnie "LastDis_ID". |