Bạn có thể sử dụng các hàm DFirst và DLast để trả về một bản ghi ngẫu nhiên từ một trường cụ thể trong bảng hoặc truy vấn khi bạn chỉ cần bất kỳ giá trị nào từ trường đó. Sử dụng các hàm DFirst và DLast trong một macro, mô-đun, biểu thức truy vấn hoặc điều khiển được tính toán một biểu mẫu hoặc báo cáo.
Cú pháp
DFirst ( expr , domain [, criteria] )
DLast ( expr , domain [, criteria] )
Các hàm DFirst và DLast có các đối số sau đây:
Đối số |
Mô tả |
expr |
Bắt buộc. Một biểu thức xác định trường mà bạn muốn tìm giá trị đầu tiên hoặc cuối cùng từ đó. Đó có thể là biểu thức chuỗi định trường trong bảng hoặc truy vấn hay biểu thức thực hiện tính toán trên dữ liệu trong trường đó. Trong phiênbản pr cũ, bạn có thể đưa tên của trường vào bảng, điều khiển trên biểu mẫu, hằng số hoặc hàm. Nếu expr bao gồm một hàm, nó có thể là tích hợp sẵn hoặc do người dùng xác định, nhưng không phải là một hàm tổng hợp miền khác hoặc hàm tổng hợp SQL. |
miền |
Bắt buộc. Một biểu thức chuỗi xác định tập hợp các bản ghi cấu thành miền. |
tiêu chí |
Không bắt buộc. Một biểu thức chuỗi được sử dụng để hạn chế phạm vi dữ liệu mà hàm DFirst hoặc DLast được thực hiện. Ví dụ: tiêu chí thường tương đương với mệnh đề WHERE trong một biểu thức SQL, không có từ WHERE. Nếu đối số criteria bị bỏ qua, các hàm DFirst và DLast sẽ đánh giá expr so với toàn bộ miền. Bất kỳ trường nào được bao gồm trong tiêu chí cũng phải là một trường trong miền; nếu không, các hàm DFirst và DLast trả về giá trị Null. |
Chú thích
Lưu ý: Nếu bạn muốn trả về bản ghi đầu tiên hoặc cuối cùng trong tập hợp bản ghi ( miền ), bạn nên tạo một truy vấn được sắp xếp là tăng dần hoặc giảm dần và đặt thuộc tính TopValues thành 1. Để biết thêm thông tin, hãy xem chủ đề thuộc tính TopValues . Từ mô-đun Visual Basic for Applications (VBA), bạn cũng có thể tạo đối tượng Recordset ADO và sử dụng phương pháp MoveFirst hoặc MoveLast để trả về bản ghi đầu tiên hoặc cuối cùng trong tập hợp các bản ghi.
Ví dụ
Biểu thức |
Kết quả |
SELECT DFirst("DateofSale","ProductSales") AS Expr1 FROM ProductSales GROUP BY DFirst("DateofSale","ProductSales"); |
Trả về giá trị ngẫu nhiên từ trường "DateofSale" của Bảng "ProductSales". Nếu bảng có "khóa chính", bảng sẽ trả về giá trị "FIRST" của "DateofSale" dựa trên thứ tự tăng dần của khóa chính. |
SELECT DLast("DateofSale","ProductSales") AS FirstDis_ID FROM ProductSales GROUP BY DLast("DateofSale","ProductSales"); |
Trả về giá trị ngẫu nhiên từ trường "DateofSale" của Bảng "ProductSales". Nếu bảng có "khóa chính", bảng sẽ trả về giá trị "LAST" của "DateofSale" dựa trên thứ tự tăng dần của khóa chính. trả về "ProductID" đầu tiên từ Bảng "ProductSales" trong đó giá trị "Discount" là "0" và hiển thị kết quả trong cột "FirstDis_ID". |
SELECT DLast("ProductID";"ProductSales","Discount=0") AS LastDis_ID FROM ProductSales GROUP BY DLast("ProductID";"ProductSales","Discount=0"); |
Trả về "ProductID" cuối cùng từ Bảng "ProductSales" trong đó giá trị "Discount" là "0" và hiển thị kết quả trong cột "LastDis_ID". |