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

Bài đăng phổ biến từ blog này

Biến Static trong VBA Access | NT Software

Cấp độ biến khi khai báo trong VBA Access | NT Software

Ngôn ngữ VBA do ai sáng lập