Trong Access liệu trên máy tính bàn, bạn có thể sử dụng hàm DLookup để lấy giá trị của một trường cụ thể từ một tập hợp bản ghi đã xác định (một miền ). Sử dụng hàm 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 DLookup để hiển thị giá trị của 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 trường ID_Đơn_hàng, ID_Sản_phẩm, Đơn_Giá, Số_lượng và Chiết khấu. Tuy nhiên, trường ProductName nằm trong một bảng khác, đó là bảng Products. Bạn có thể sử dụng hàm DLookup trong điều khiển được 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] )
Cú pháp hàm DLookup 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 có giá trị bạn muốn trả về. Nó có thể là một biểu thức chuỗi nhận dạng một trường trong một bảng hoặc truy vấn hoặc nó 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 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, 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. Đó 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ố. |
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 DLookup đượ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, hàm DLookup sẽ đánh giá expr so với toàn bộ tên 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, hàm DLookup trả về giá trị Null. |
Chú thích
Hàm DLookup trả về một giá trị trường duy nhất dựa trên thông tin được chỉ định trong tiêu chí. Mặc dù criteria là một đối số tùy chọn nhưng nếu bạn không cung cấp giá trị cho tiêu chí, hàm DLookup sẽ trả về giá trị ngẫu nhiên trong miền.
Nếu không có bản ghi nào thỏa mãn tiêu chí hoặc nếu miền không chứa bản ghi nào, hàm DLookup trả về giá trị Null.
Nếu có nhiều trường đáp ứng tiêu chí, hàmDLookup sẽ 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 rằng giá trị trường do hàm DLookup trả về là duy nhất. Bạn có thể muốn sử dụng một giá trị khóa chính cho tiêu chí của mình, chẳng hạn như [EmployeeID] trong ví dụ sau đây, để đảm bảo rằng hàm DLookup trả về một giá trị duy nhất:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _ "[EmployeeID] = 1")
Cho dù bạn sử dụng hàm DLookup trong macro hoặc mô-đun, biểu thức truy vấn hay điều khiển được tính toán, bạn phải xây dựng đối số criteria một cách cẩn thận để đảm bảo rằng tham đối tiêu chí sẽ được đánh giá chính xác.
Bạn có thể sử dụng hàm DLookup để chỉ định các tiêu chí trong hàng Tiêu chí của truy vấn, bên trong biểu thức trường được tính toán trong truy vấn hoặc trong hàng Cập nhật thành trong một truy vấn cập nhật.
Bạn cũng có thể sử dụng hàm DLookup trong một biểu thức trong điều khiển được tính toán trên biểu mẫu hoặc báo cáo nếu trường bạn cần hiển thị không nằm 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ó biểu mẫu Chi tiết Đơn hàng dựa trên bảng Chi tiết Đơn hàng với hộp văn bản được gọi là ID_Sản_phẩm hiển thị trường ID_Sản_phẩm. Để tra cứu ProductName từ bảng Products dựa trên giá trị trong hộp văn bản, bạn có thể tạo một hộp văn bản khác và đặt thuộc tính ControlSource 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 phụ nhưng việc tạo truy vấn có chứa các trường bạn cần từ cả hai bảng có thể sẽ hiệu quả hơn, rồi tạo cơ sở cho biểu mẫu hoặc báo cáo của bạn 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 các giá trị trong bảng ngoại.
Lưu ý: Những thay đổi không được lưu đối với bản ghi trong miền không được bao gồm khi bạn sử dụng hàm này. Nếu bạn muốn hàm DLookup dựa trên các giá trị đã thay đổi, trước tiên bạn phải 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 phương pháp Cập nhật.
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ừ trường CompanyName của bản ghi thỏa mãn các tiêu chí. Miền là một bảng Công dân vận tải hàng hải. Đối số criteria giới hạn tập hợp bản ghi kết quả ở những bản ghi mà ShipperID bằng 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _ "Shippers", "[ShipperID] = 1")
Ví dụ tiếp theo từ bảng Người gửi sử dụng điều khiển biểu mẫu ShipperID để cung cấp tiêu chí cho hàm DLookup . Lưu ý rằng tham chiếu đến điều khiển không được đưa vào dấu ngoặc kép biểu thị chuỗi. Điều này đảm bảo rằng mỗi lần gọi hàm DLookup , Access sẽ nhận giá trị hiện tạ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 một biến, intSearch, để lấy giá trị.
Dim intSearch As Integer
Dim varX As Variant intSearch = 1 varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch)