Fungsi DLookup

Berlaku Untuk
Access untuk Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Di database desktop Access, Anda dapat menggunakan fungsi DLookup untuk mendapatkan nilai bidang tertentu dari kumpulan rekaman tertentu (domain). Gunakan fungsi DLookup dalam modul Visual Basic for Applications (VBA), makro, ekspresi kueri, atau kontrol terhitung pada formulir atau laporan.

Anda bisa menggunakan fungsi DLookup untuk menampilkan nilai bidang yang tidak ada dalam sumber rekaman untuk formulir Anda atau laporan Anda. Sebagai contoh, misalkan Anda memiliki formulir berdasarkan tabel Detail Pesanan. Formulir menampilkan bidang IDPesanan, IDProduk, HargaSatuan, Jumlah, dan Diskon. Namun, bidang NamaProduk berada di tabel lain, tabel Produk. Anda bisa menggunakan fungsi DLookup dalam kontrol terhitung untuk menampilkan NamaProduk pada formulir yang sama.

Sintaks

DLookup(expr, domain [, criteria] )

Sintaks fungsi DLookup memiliki argumen ini:

Argumen Deskripsi
expr Diperlukan. Ekspresi yang mengidentifikasi bidang yang nilai yang hasilnya ingin Anda dapatkan. Ekspresi string bisa berupa ekspresi string yang mengidentifikasi bidang dalam tabel atau kueri, atau bisa berupa ekspresi yang melakukan penghitungan pada data di bidang itu. Dalam ekspr, Anda bisa menyertakan nama bidang dalam tabel, kontrol pada formulir, konstanta, atau fungsi. Jika expr menyertakan fungsi, bisa berupa fungsi agregat bawaan atau yang ditentukan pengguna, tetapi bukan fungsi agregat domain lain atau Agregat SQL.
domain Diperlukan. Ekspresi string yang mengidentifikasi sekumpulan 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 di mana fungsi DLookup DLookup dijalankan. Misalnya, criteria seringkali sama dengan klausa WHERE dalam ekspresi SQL, tanpa kata WHERE. Jika criteria dihilangkan, fungsi DLookup mengevaluasi WHERE mengevaluasi terhadap seluruh domain. Bidang mana pun yang disertakan dalam criteria harus juga merupakan bidang dalam domain; jika tidak, fungsi DLookup mengembalikan Null.

Keterangan

Fungsi DLookup mengembalikan nilai bidang tunggal berdasarkan informasi yang ditentukan dalam criteria. Meskipun criteria adalah argumen opsional, jika Anda tidak memasukkan nilai untuk criteria, fungsi DLookup mengembalikan nilai acak dalam domain.

Jika tidak ada rekaman yang memenuhi kriteria atau jika domain tidak berisi rekaman, fungsi DLookup mengembalikan Null.

Jika lebih dari satu bidang memenuhi kriteria, fungsi DLookup mengembalikan kemunculan pertama. Anda harus menentukan kriteria yang akan memastikan bahwa nilai bidang yang dikembalikan oleh fungsi DLookup adalah unik. Anda mungkin ingin menggunakan nilai kunci utama untuk kriteria Anda, seperti [EmployeeID] dalam contoh berikut, untuk memastikan bahwa fungsi DLookup mengembalikan nilai unik:

Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
    "[EmployeeID] = 1")

Apakah Anda menggunakan fungsi DLookup dalam makro atau modul, ekspresi kueri, atau kontrol terhitung, Anda harus menyusun argumen criteria dengan hati-hati untuk memastikan bahwa argumen itu akan dievaluasi dengan benar.

Anda bisa menggunakan fungsi DLookup untuk menentukan kriteria di baris Kriteria kueri, dalam ekspresi bidang terhitung dalam kueri, atau di baris Perbarui Ke dalam kueri pembaruan.

Anda juga bisa menggunakan fungsi DLookup di dalam ekspresi dalam kontrol terhitung pada formulir atau laporan jika bidang yang perlu Anda tampilkan tidak berada dalam sumber rekaman yang menjadi dasar laporan Anda. Sebagai contoh, misalkan Anda memiliki formulir Detail Pesanan berdasarkan tabel Detail Pesanan dengan kotak teks disebut IDProduk yang menampilkan bidang IDProduk. Untuk mencari NamaProduk dari tabel Produk berdasarkan nilai dalam kotak teks, Anda dapat membuat kotak teks lainnya dan menetapkan properti SumberKontrol ke ekspresi berikut ini:

=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 catatan dalam domain tidak disertakan saat Anda menggunakan fungsi ini. Jika Anda ingin fungsi DLookup didasarkan pada nilai yang diubah, Anda harus terlebih dahulu menyimpan perubahan dengan mengklik Simpan Rekaman di bawah Rekaman pada tab Data, memindahkan fokus ke rekaman lain, atau dengan menggunakan metode Pembaruan.

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 bidang CompanyName dari kriteria yang memenuhi rekaman. Domainnya adalah tabel Pengirim. Argumen criteria membatasi kumpulan rekaman yang dihasilkan untuk kumpulan rekaman yang idnya sama dengan 1.

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

Contoh berikutnya dari tabel Pengirim menggunakan kontrol formulir IDPengirim untuk menyediakan kriteria untuk fungsi DLookup. Perhatikan bahwa referensi ke kontrol tidak disertakan dalam tanda kutip yang menggambarkan string. Ini memastikan bahwa tiap kali fungsi DLookup dipanggil, Access akan mendapatkan nilai saat ini dari kontrol tersebut.

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)