Cú pháp của hàm DLookup trong VBA Access
Hàm DLookup
trong VBA Access là một hàm rất hữu ích, được dùng để tìm kiếm và trả về giá trị của một trường trong một bảng hoặc truy vấn trong cơ sở dữ liệu Access. Hàm này giúp bạn dễ dàng lấy dữ liệu mà không cần phải viết các truy vấn SQL phức tạp.
Cú pháp của hàm DLookup
:
DLookup(Expression, Domain, [Criteria])
- Expression: Là biểu thức, thường là tên của trường mà bạn muốn lấy giá trị. Ví dụ:
"FieldName"
. - Domain: Là bảng hoặc truy vấn mà bạn muốn tìm kiếm. Ví dụ:
"TableName"
hoặc"QueryName"
. - Criteria (tùy chọn): Là điều kiện để lọc dữ liệu. Đây là một chuỗi điều kiện SQL. Ví dụ:
"FieldName = 'Value'"
. Nếu không có điều kiện, tất cả các bản ghi sẽ được xem xét.
Ví dụ sử dụng DLookup
:
1. Lấy giá trị từ một trường trong bảng
Giả sử bạn có bảng Customers
và muốn lấy giá trị của trường CustomerName
cho CustomerID = 1
, bạn có thể sử dụng DLookup
như sau:
Dim customerName As String customerName = DLookup("CustomerName", "Customers", "CustomerID = 1") MsgBox customerName
Trong ví dụ trên:
"CustomerName"
là trường mà bạn muốn lấy giá trị."Customers"
là bảng mà bạn tìm kiếm."CustomerID = 1"
là điều kiện để lọc bản ghi cóCustomerID = 1
.
2. Lấy giá trị từ một trường trong truy vấn
Giả sử bạn có một truy vấn tên là qryOrders
và muốn lấy giá trị của trường OrderAmount
cho OrderID = 100
, bạn có thể viết như sau:
Dim orderAmount As Double orderAmount = DLookup("OrderAmount", "qryOrders", "OrderID = 100") MsgBox orderAmount
3. Không có kết quả trả về
Nếu DLookup
không tìm thấy giá trị nào thỏa mãn điều kiện, nó sẽ trả về giá trị Null. Do đó, bạn cần kiểm tra nếu giá trị trả về là Null
trước khi sử dụng:
Dim customerName As Variant
customerName = DLookup("CustomerName", "Customers", "CustomerID = 999")
If IsNull(customerName) Then
MsgBox "Không tìm thấy khách hàng."
Else
MsgBox "Tên khách hàng: " & customerName
End If
4. Sử dụng DLookup
trong các điều kiện phức tạp
Bạn có thể sử dụng các điều kiện phức tạp trong phần Criteria
của DLookup
để lọc dữ liệu. Ví dụ:
Dim totalAmount As Double
totalAmount = DLookup("SUM(OrderAmount)", "Orders", "CustomerID = 1 AND OrderDate >= #2024-01-01#")
MsgBox totalAmount
Nhận xét
Đăng nhận xét