Hàm DLookup

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

Trong cơ sở dữ liệu Access trên máy tính, DLookup bạn có thể sử dụng hàm này để lấy giá trị của một trường cụ thể từ một tập hợp bản ghi được chỉ định (một miền). Bạn có thể sử DLookup dụng 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 DLookup hàm để 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ị OrderIDcác trường , UnitPriceProductID, , QuantityDiscount. Tuy nhiên, ProductName trường nằm trong một bảng khác, 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])

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ề. Đó có thể là một biểu thức chuỗi xác định một trường trong 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 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ể đượ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 tổng SQL hợp miền khác.
domain Bắt buộc. Biểu thức chuỗi xác định tập hợp các bản ghi tạo nê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. Biểu thức chuỗi được sử dụng để hạn chế phạm vi dữ liệu mà hàm DLookup chạy trên đó. Ví dụ: criteria thường tương đương với mệnh đề WHERE trong một biểu SQL thức, không có từ .WHERE Nếu bạn bỏ qua criteria, hàm sẽ DLookup đánh giá toàn expr bộ miền. Bất kỳ trường nào được bao criteria gồm trong cũng phải là một trường trong domain. Nếu không, hàm DLookup trả về 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 xác định trong criteria. Mặc criteria dù là tùy chọn nhưng nếu bạn không cung cấp giá trị cho giá trị đó, hàm sẽ trả DLookup về giá trị ngẫu nhiên trong miền.

Nếu không có bản ghi nào thỏa mãn criteria, hoặc nếu không chứa domain bản ghi nào, hàm sẽ trả DLookup về Null.

Nếu đáp ứng nhiều trường, hàm sẽ criteriatrả về DLookup lần xuất hiện đầu tiên. Bạn nên chỉ định tiêu chí đảm bảo giá trị trường mà trường trả về là DLookup 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, [EmployeeID] chẳng hạn như trong ví dụ sau đây, để đảm bảo rằng 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 hàm DLookup trong macro hay mô-đun, biểu thức truy vấn hay điều khiển được tính toán, criteria hãy xây dựng đối số một cách cẩn thận để Access đánh giá tham đối một cách chính xác.

Bạn có DLookup thể sử dụng hàm để chỉ định tiêu chí trong hàng Tiêu chí của truy vấ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 truy vấn cập nhật.

DLookup Bạn cũng có thể sử dụng hàm trong 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 ProductID gọi là hiển thị trường ProductID . Để tra cứu từ ProductName bảng dựa trên Products 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 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 ngoại 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ể 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 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 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 domain không được bao gồm khi bạn sử dụng hàm này. Nếu bạn DLookup muốn 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 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 Update 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 CompanyName từ trường của bản ghi thỏa mãn criteria. Miền là một Shippers bảng. Đối criteria số này giới hạn tập hợp bản ghi kết quả ở những bản ghi ShipperID cho các bản ghi bằng 1.

Dim varX As Variant
varX = DLookup("[CompanyName]", _
    "Shippers", "[ShipperID] = 1")

Ví dụ tiếp theo từ bảng sử Shippers dụng điều khiển biểu mẫu ShipperID để cung cấp tiêu chí cho hàm DLookup . 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 chạy 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)