Trong cơ sở dữ liệu Access trên máy tính, bạn có thể sử dụng DLookup hàm này để lấy giá trị của một trường cụ thể từ một bộ bản ghi được chỉ định (miền). Bạn có thể sử dụng DLookup trong mô-đun Visual Basic for Applications (VBA), macro, biểu thức truy vấn hoặc điều khiển được tính toán trên biểu mẫu hoặc báo cáo.
Bạn có thể sử dụng hàm này DLookup để hiển thị giá trị của một trường không có trong nguồn bản ghi cho biểu mẫu hoặc báo cáo của mình. Ví dụ: giả sử bạn có một biểu mẫu dựa trên bảng Chi tiết Đơn hàng. Biểu mẫu hiển thị các OrderIDtrường , ProductID, và UnitPriceQuantityDiscount trường. Tuy nhiên, ProductName trường này nằm trong một bảng khác, bảng Products . Bạn có thể sử dụng DLookup hàm trong điều khiển tính toán để hiển thị ProductName trên cùng một biểu mẫu.
Cú pháp
DLookup(expr, domain [, criteria])
Hàm DLookup có các đối số sau:
| Đối số | Mô tả |
|---|---|
expr |
Bắt buộc. Một biểu thức xác định trường có giá trị bạn muốn trả về. Đó có thể là một biểu thức chuỗi để xác định một trường trong một bảng hoặc truy vấn, hoặc có thể là một biểu thức thực hiện tính toán trên dữ liệu trong trường đó. Trong , exprbạ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ì hàm đó có thể được dựng 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 hoặc SQL tổng hợp miền khác. |
domain |
Bắt buộc. Một biểu thức chuỗi xác định tập hợp các bản ghi tạo nên tên miền. Đó có thể là tên bảng hoặc tên truy vấn cho truy vấn không yêu cầu tham số. |
criteria |
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à DLookup hàm chạy. Ví dụ: criteria thường tương đương với WHERE mệnh đề trong biểu SQL thức mà không cần dùng từ WHERE. Nếu bạn bỏ qua criteria, hàm sẽ DLookup đánh giá expr dựa vào toàn bộ tên miền. Bất kỳ trường nào được đưa vào cũng criteria phải là một trường trong domain. Nếu không, hàm sẽ DLookup trả về Null. |
Chú thích
Hàm DLookup trả về giá trị trường duy nhất dựa trên thông tin được chỉ định trong.criteria Mặc dù criteria là tùy chọn, nhưng nếu bạn không cung cấp giá trị cho nó, hàm sẽ DLookup trả về một giá trị ngẫu nhiên trong miền.
Nếu không có bản ghi nào thỏa mãn criteriahoặc nếu domain không chứa bản ghi, hàm sẽ DLookup trả về Null.
Nếu có nhiều trường gặp nhau criteria, hàm sẽ DLookup trả về lần xuất hiện đầu tiên. Bạn nên chỉ định các tiêu chí đảm bảo giá trị trường mà trả về là DLookup duy nhất. Bạn có thể muốn sử dụng giá trị khóa chính cho tiêu chí của mình, như [EmployeeID] trong ví dụ sau, để đảm bảo trả DLookup về một giá trị duy nhất:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Dù bạn sử dụng DLookup hàm trong macro hay mô-đun, biểu thức truy vấn hay điều khiển được tính toán, hãy xây dựng tham đối một criteria cách cẩn thận để Access đánh giá tham đối chính xác.
Bạn có thể sử dụng hàm này DLookup để chỉ định tiêu chí trong hàng Tiêu chí của một truy vấn, bên trong biểu thức trường được tính toán ở truy vấn hoặc trong hàng Cập nhật thành trong truy vấn cập nhật.
Bạn cũng có thể sử dụng DLookup hàm này trong biểu thức ở điều khiển được tính toán ở biểu mẫu hoặc báo cáo nếu trường bạn cần hiển thị không có trong nguồn bản ghi mà biểu mẫu hoặc báo cáo của bạn dựa trên đó. Ví dụ: giả sử bạn có một biểu mẫu Chi tiết Đơn hàng dựa trên bảng Chi tiết Đơn hàng với một hộp văn bản được gọi là ProductID hiển thị ProductID trường. Để tra cứu ProductName từ bảng Products dựa trên giá trị trong hộp văn bản, hãy tạo một hộp văn bản khác và đặt thuộc tính Nguồn Điều khiển thành biểu thức sau đây:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Mẹo
- Mặc dù bạn có thể sử dụng hàm DLookup để hiển thị giá trị từ một trường trong bảng ngoại nhưng có thể sẽ hiệu quả hơn nếu bạn tạo một truy vấn có chứa các trường bạn cần từ cả hai bảng, rồi tạo biểu mẫu hoặc báo cáo của bạn dựa trên truy vấn đó.
- Bạn cũng có thể sử dụng Trình hướng dẫn Tra cứu để tìm giá trị trong một bảng ngoại.
Lưu ý
Những thay đổi chưa được lưu vào bản ghi sẽ domain không được đưa vào khi bạn sử dụng hàm này. Nếu bạn muốn DLookup sử dụng các giá trị đã thay đổi, trước tiên hãy lưu các thay đổi bằng cách bấm vào Lưu Bản ghi bên dưới Bản ghi trên tab Dữ liệu , di chuyển tiêu điểm đến một bản ghi khác hoặc bằng cách sử dụng Update phương pháp.
Ví dụ
Lưu ý
Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, hãy xem tham khảo về VBA trong Access.
Ví dụ sau đây trả về thông tin tên từ CompanyName trường bản ghi thỏa mãn criteria. Miền là một bảng Shippers . Đối criteria số hạn chế tập bản ghi kết quả thành những bản ghi bằng ShipperID .1
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
Ví dụ tiếp theo từ Shippers bảng sử dụng điều khiển ShipperID biểu mẫu để cung cấp tiêu chí cho DLookup hàm. Tham chiếu đến điều khiển không được đưa vào dấu ngoặc kép biểu thị cho các chuỗi. Điều này đảm bảo rằng mỗi lần DLookup chạy, Access đều nhận được giá trị hiện thời từ điều khiển.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
Ví dụ tiếp theo sử dụng biến , , intSearchđể lấy giá trị.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)