Các hàm DFirst, DLast

Áp dụng cho
Access cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Bạn có thể sử dụng các hàm DFirstDLast để 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 hàm DFirstDLast trong macro, mô-đun, biểu thức truy vấn hoặc điều khiển tính toán trên một biểu mẫu hoặc báo cáo.

Cú pháp

DFirst( ** expr, domain [, criteria**] )

DLast( ** expr, domain [, criteria**] )

Hàm DFirstDLast có những đối số sau:

Đố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 xác đị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 expr, 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, thì nó có thể là hàm dựng sẵn hoặc do người dùng xác định, nhưng không phải là hàm tổng hợp miền hoặc hàm tổng hợp SQL khác.
miền Bắt buộc. Một biểu thức chuỗi định danh 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 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 biểu thức SQL, mà không có từ WHERE. Nếu bỏ qua criteria , hàm DFirstDLast sẽ đánh giá expr dựa trên toàn bộ tên miền. Bất kỳ trường nào được đưa vào tiêu chí cũng phải là một trường trong miền; nếu không, các hàm DFirstDLast sẽ trả về 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 bộ bản ghi (miền), bạn nên tạo một truy vấn được sắp xếp theo kiểu tăng dần hoặc giảm dần, rồi đặt thuộc tính TopValues là 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 ADO Recordset 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 một tập hợp 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ị "ĐẦU TIÊN" của "DateofSale" dựa trên thứ tự tăng dần của khóa chính.
CHỌN 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 theo thứ tự tăng dần của khóa chính. trả về "ID_sản_phẩm" đầu tiên từ bảng "Doanh_số_sản_phẩm", trong đó giá trị "Chiết khấu" là "0" và hiển thị kết quả trong cột "FirstDis_ID".
CHỌN DLast("ID_Sản_phẩm","Doanh_số_sản_phẩm","Chiết khấu=0") AS LastDis_ID TỪ Sản phẩm_Doanh_số" NHÓM BY DLast("ID_sản_phẩm";"Doanh_số_sản_phẩm";"Chiết khấu=0"); Trả về "ID_sản_phẩm" cuối cùng từ bảng "Doanh_số_sản_phẩm", trong đó giá trị "Chiết khấu" là "0" và hiển thị kết quả trong cột "LastDis_ID".