Di database desktop Access, Anda bisa menggunakan fungsi tersebut DLookup untuk mendapatkan nilai bidang tertentu dari kumpulan rekaman tertentu (domain). Anda dapat menggunakan DLookup modul Visual Basic for Applications (VBA), makro, ekspresi kueri, atau kontrol terhitung pada formulir atau laporan.
Anda dapat menggunakan fungsi tersebut DLookup untuk menampilkan nilai bidang yang tidak berada dalam sumber data untuk formulir atau laporan. Sebagai contoh, misalkan Anda memiliki formulir berdasarkan tabel Detail Pesanan. Formulir menampilkan OrderID, , ProductIDUnitPrice, Quantity, dan Discount bidang. Namun, ProductName bidang berada di tabel lain, Products tabel. Anda dapat menggunakan fungsi dalam DLookup kontrol terhitung untuk menampilkan ProductName formulir yang sama.
Sintaks
DLookup(expr, domain [, criteria])
Fungsi DLookup ini memiliki argumen ini:
| Argumen | Deskripsi |
|---|---|
expr |
Diperlukan. Ekspresi yang mengidentifikasi bidang yang nilai yang hasilnya ingin Anda dapatkan. Ini bisa berupa ekspresi string yang mengidentifikasi bidang dalam tabel atau kueri, atau bisa berupa ekspresi yang melakukan penghitungan pada data di bidang itu. Di expr, Anda bisa menyertakan nama bidang dalam tabel, kontrol pada formulir, konstanta, atau fungsi. Jika expr menyertakan fungsi, fungsi tersebut bisa berupa fungsi agregat atau SQL agregat domain lain. |
domain |
Diperlukan. Ekspresi string yang mengidentifikasi kumpulan rekaman yang membentuk domain. Ini bisa berupa nama tabel atau nama kueri untuk kueri yang tidak memerlukan parameter. |
criteria |
Opsional. Ekspresi string yang digunakan untuk membatasi rentang data tempat DLookup fungsi berjalan. Misalnya, criteria sering kali setara dengan WHERE klausul dalam ekspresi SQL , tanpa kata WHERE. Jika Anda menghilangkan criteria, fungsi mengevaluasi DLookupexpr terhadap seluruh domain. Bidang apa pun yang disertakan criteria juga harus berupa bidang di domain. Jika tidak, fungsi akan DLookup mengembalikan Null. |
Keterangan
Fungsi mengembalikan DLookup nilai bidang tunggal berdasarkan informasi yang ditentukan dalam criteria. Meskipun criteria bersifat opsional, jika Anda tidak memasukkan nilai untuknya, fungsi mengembalikan DLookup nilai acak dalam domain.
Jika tidak ada rekaman yang memenuhi criteria, atau jika domain tidak berisi rekaman, fungsi akan DLookupNullmengembalikan .
Jika lebih dari satu bidang memenuhi criteria, fungsi mengembalikan DLookup kemunculan pertama. Anda harus menentukan kriteria yang memastikan nilai bidang yang dikembalikan DLookup adalah unik. Anda mungkin ingin menggunakan nilai kunci utama untuk kriteria Anda, seperti [EmployeeID] dalam contoh berikut ini, untuk memastikan bahwa DLookup mengembalikan nilai yang unik:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
Apakah Anda menggunakan DLookup fungsi dalam makro atau modul, ekspresi kueri, atau kontrol terhitung, menyusun criteria argumen dengan hati-hati sehingga Access mengevaluasinya dengan benar.
Anda bisa menggunakan fungsi untuk DLookup menentukan kriteria di baris Kriteria kueri, dalam ekspresi bidang terhitung dalam kueri, atau di baris Perbarui Ke dalam kueri pembaruan.
Anda juga bisa menggunakan DLookup fungsi dalam ekspresi dalam kontrol terhitung pada formulir atau laporan jika bidang yang perlu Anda tampilkan tidak berada di sumber rekaman di mana formulir atau laporan Anda didasarkan. Misalnya, Anda memiliki formulir Detail Pesanan berdasarkan tabel Detail Pesanan dengan kotak teks yang disebut ProductID menampilkan ProductID bidang. Untuk mencari ProductName dari Products tabel berdasarkan nilai dalam kotak teks, buat kotak teks lain dan atur properti ControlSource ke ekspresi berikut:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Tips
- Meskipun Anda bisa menggunakan fungsi DLookup untuk menampilkan nilai dari bidang dalam tabel asing, mungkin lebih efisien untuk membuat kueri yang berisi bidang yang Anda perlukan dari kedua tabel lalu untuk mendasarkan formulir atau laporan Anda pada kueri tersebut.
- Anda juga bisa menggunakan Panduan Pencarian untuk menemukan nilai dalam tabel asing.
Catatan
Perubahan yang tidak tersimpan pada rekaman domain tidak disertakan saat Anda menggunakan fungsi ini. Jika Anda ingin DLookup menggunakan nilai yang diubah, simpan perubahan terlebih dahulu dengan mengklik Simpan Rekaman di bawah Rekaman pada tab Data , pindahkan fokus ke catatan lain, atau dengan menggunakan metode tersebut Update .
Contoh
Catatan
Contoh yang mengikuti demonstrasi penggunaan fungsi ini dalam modul Visual Basic for Applications (VBA). Untuk informasi selengkapnya tentang bekerja dengan VBA, lihat Referensi VBA Access.
Contoh berikut mengembalikan informasi nama dari CompanyName bidang catatan yang memenuhi criteria. Domain adalah Shippers tabel. Argumen criteria membatasi kumpulan rekaman yang dihasilkan untuk kumpulan rekaman yang ShipperID sama dengan 1.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
Contoh berikutnya dari Shippers tabel menggunakan kontrol ShipperID formulir untuk menyediakan kriteria untuk fungsi tersebut DLookup . Referensi ke kontrol tidak disertakan dalam tanda kutip yang menunjukkan string. Ini memastikan bahwa setiap kali DLookup berjalan, Access mendapatkan nilai saat ini dari kontrol.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
Contoh berikutnya menggunakan variabel, intSearch, untuk mendapatkan nilai.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)