Deskripsi DLookup() penggunaan, contoh, dan dalam Access 2000

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 208786 - Melihat produk di mana artikel ini berlaku.
Pemula: Memerlukan pengetahuan tentang antarmuka pengguna pada pengguna tunggal komputer.

Artikel ini berlaku untuk Microsoft Access database (.mdb) dan untuk Microsoft Access proyek (.adp).

Untuk Microsoft Access 2002 versi dari artikel ini, lihat 285866.
Untuk versi Microsoft Access 97 artikel ini, Lihat 136122.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan kepada Anda bagaimana menggunakan DLookup() fungsi dan termasuk contoh dan tips.

The Berikut topik yang dibahas dalam artikel ini:

  • The DLookup() fungsi sintaks dan penggunaan.
  • Berikut DLookupcontoh-contoh fungsi ():
    • Fungsi dengan ada kriteria
    • Menentukan kriteria numerik
    • Menentukan kriteria numerik yang berasal dari lapangan bentuk
    • Menentukan kriteria tekstual
    • Menentukan kriteria tekstual yang berasal dari lapangan bentuk
    • Menentukan tanggal kriteria
    • Menentukan beberapa bidang dalam kriteria
  • Tips untuk pemecahan masalah dan debugging DLookupekspresi ().
Perhatikan bahwa banyak kesulitan dalam menggunakan DLookupfungsi () terjadi ketika Anda tidak mengatur dan pasokan kriteria ekspresi dengan benar. Kriteria ekspresi umum untuk banyak agregat lain (total) fungsi, seperti DSum(), DFirst(), DLast(), DMin(), DMax(), dan DCount(). Oleh karena itu, bahan berikut berguna dalam membantu Anda memahami fungsi agregat domain serta DLookup() fungsi.

INFORMASI LEBIH LANJUT

DLookup() fungsi sintaks dan penggunaan

Anda dapat menggunakan DLookup() fungsi dalam ekspresi atau Visual Basic for Applications fungsi kembali nilai bidang pada domain, atau menetapkan ditentukan catatan.

Sintaks DLookupfungsi () adalah sebagai berikut:
   DLookup(Expression, Domain [, Criteria])
				
Fungsi memiliki tiga argumen: ekspresi, domain, dan kriteria. (Perhatikan bahwa kriteria argumen opsional.)

Anda menggunakan ekspresi argumen untuk mengidentifikasi bidang yang berisi data dalam domain yang Anda ingin kembali atau untuk melakukan perhitungan yang menggunakan data yang lapangan.

The domain argumen adalah nama set rekaman yang mengidentifikasi domain. Ini bisa menjadi sebuah meja atau nama query.

The kriteria argumen adalah ekspresi string opsional yang dapat Anda gunakan untuk membatasi berbagai data yang DLookup() fungsi ini dilakukan pada. Perhatikan bahwa kriteria argumen identik dengan klausul WHERE dalam ekspresi SQL (kecuali bahwa Anda tidak menggunakan kata kunci WHERE).

The DLookup() fungsi mengembalikan satu nilai dari satu bidang bahkan jika lebih dari satu rekor memenuhi kriteria. Jika tidak ada catatan memenuhi kriteria, atau jika domain mencakup tidak ada catatan, DLookupkembali () Null.

Contoh-contoh fungsi DLookup()

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan DLookup() untuk menemukan atau kembali nilai-nilai dari tabel atau permintaan. Contoh-contoh ini merujuk kepada database contoh Northwind.mdb, dan Anda dapat mengetik contoh di The ControlSource properti dari kotak teks pada formulir atau laporan.

CATATAN: Dalam ekspresi contoh berikut, garis bawah (_) pada akhir baris digunakan sebagai karakter baris-kelanjutan. Menghapus garis bawah dari akhir baris ketika menciptakan kembali kalimat tersebut.

Fungsi dengan ada kriteria:

Contoh ini menunjukkan bagaimana untuk menggunakan DLookup() fungsi dalam bentuk yang paling sederhana: tanpa menentukan kriteria apapun. Contoh ini mengembalikan nilai yang terkandung dalam bidang nama belakang yang pertama merekam dalam tabel karyawan:
   =DLookUp("[LastName]", "Employees")
				

Menentukan angka kriteria:

Untuk mencari nama karyawan dengan nomor ID 7, menentukan kriteria untuk membatasi berbagai catatan yang digunakan:
   =DLookUp("[LastName]", "Employees", "[EmployeeID] = 7")
				

Menentukan kriteria numerik yang berasal dari lapangan pada formulir:

Jika Anda tidak ingin menentukan nilai tertentu dalam ekspresi (seperti pada contoh sebelumnya), menggunakan parameter dalam kriteria sebaliknya. Contoh berikut menunjukkan cara untuk menentukan kriteria dari bidang lain pada bentuk yang sekarang. Anda dapat mencoba ini pada formulir pesanan dalam database contoh Northwind.mdb.
   =DLookUp("[LastName]", "Employees", _
      "[EmployeeID] = Form![EmployeeID]")
				
   =DLookUp("[LastName]", "Employees", _
      "[EmployeeID] = " & [EmployeeID])
				
   =DLookUp("[LastName]", "Employees", _
      "[EmployeeID] = " & Forms![Orders]![EmployeeID])
				
Tiga contoh memberikan hasil yang sama.

Dalam contoh pertama, bentuk![EmployeeID] muncul di dalam tanda kutip kriteria. "Bentuk" memberitahu Microsoft Access bahwa referensi lapangan, "EmployeeID," datang dari bentuk yang sekarang. Jika Anda mengabaikan itu, Microsoft Access membandingkan EmployeeID untuk diri di karyawan meja dan mengembalikan nama terakhir dari catatan pertama dalam tabel karyawan (sama menghasilkan seolah-olah Anda tidak menentukan setiap kriteria). Hal ini karena catatan pertama dalam tabel karyawan memiliki 1 di bidang EmployeeID, sehingga argumen
   "[EmployeeID] = [EmployeeID]"
				
menghitung untuk
   "1 = 1"
				
dan karena itu akan menjadi catatan pertama yang cocok kriteria.

Kriteria untuk dua contoh lain yang dibuat oleh Concatenating dua ekspresi string dengan ampersand (&). Dalam ketiga contoh, kriteria berakhir dengan bentuk lapangan referensi.

Kapan kriteria sedang dievaluasi, pertama potongan-potongan individu kriteria dievaluasi dan ditambahkan atau sambung menyambung; kemudian seluruh nilai dihitung.

Jika nilai saat ini dalam bidang EmployeeID pada formulir pesanan 7, ekspresi kriteria asli
   "[EmployeeID] = " & [EmployeeID]
				
akan menghitung untuk
   "[EmployeeID] = " & 7
				
yang, ketika concatenated, menghitung untuk:
   "[EmployeeID] = 7"
				
Jika Anda tidak menentukan bentuk penuh referensi (seperti dalam kedua contoh di atas), Microsoft Access mengasumsikan bahwa Anda mengacu pada saat ini bentuk.

Contoh berikut adalah turunan dari contoh ketiga di atas:
   =DLookUp("[LastName]", "Employees", _
      "[EmployeeID] = Forms![Orders]![EmployeeID]")
				
Dalam contoh ini, bentuk penuh referensi tertutup di dalam kriteria tanda kutip. Dalam kasus ini, Microsoft Access dengan benar mendongak nilai ketika bentuk pertama terbuka, tetapi hanya sampai bidang EmployeeID diubah oleh modifikasi untuk catatan atau penambahan catatan. Microsoft Akses secara otomatis tidak recompute baru karyawan nama nilai terakhir setelah perubahan seperti itu. Anda dapat secara manual recompute ekspresi dengan menempatkan titik penyisipan di kontrol dan menekan F9.

Jika Anda ingin lapangan untuk memperbarui secara otomatis ketika perubahan kriteria, melakukan kriteria variabel dengan menggunakan metode concatenating ekspresi bagian sebagai dijelaskan sebelumnya. Perhatikan bahwa ketika Anda pindah ke catatan baru, DLookupkotak teks () yang update secara otomatis akan memiliki "#error" di dalamnya sampai Anda memasukkan sesuatu di kotak teks EmployeeID.

Menentukan kriteria tekstual:

Semua contoh sebelumnya menunjukkan bagaimana untuk menggunakan DLookup() fungsi dengan kriteria numerik. Jika bidang kriteria teks, apit teks dalam tanda kutip tunggal, seperti dalam contoh berikut:
   =DLookUp("[Title]", "Employees", "[LastName] = 'Callahan'")
				
Catatan bahwa Anda dapat menggunakan tanda kutip ganda bukan satu kutip menandai, meskipun tanda kutip tunggal lebih disukai. Menggunakan dua ganda tanda kutip untuk menggantikan satu tanda kutip tunggal. Contoh berikut menggunakan tanda kutip ganda dan setara dengan contoh di atas:
   =DLookUp("[Title]", "Employees", "[LastName] = ""Callahan""")
				

Menentukan kriteria tekstual yang berasal dari lapangan pada formulir:

Contoh berikut menunjukkan cara untuk menemukan nama kontak untuk pelanggan pada formulir pesanan. Bidang CustomerID adalah bidang kunci tekstual untuk kriteria, sehingga DLookuppernyataan () adalah:

   =DLookup("[ContactName]", "[Customers]", _
      "[CustomerID]='" & [CustomerID] & "'")
				
-atau-
   =DLookup("[ContactName]", "[Customers]", _
      "[CustomerID]='" & Forms![Orders]![CustomerID] & "'")
				
Dalam contoh kedua, kriteria dibuat oleh concatenating tiga potong ekspresi string. Yang pertama adalah "[CustomerID] = '", yang kedua adalah nilai yang terkandung dalam bidang CustomerID yang sebenarnya, dan yang ketiga adalah menutup tanda kutip tunggal diapit tanda kutip ganda.

Ketika kriteria ini dievaluasi, pertama potongan individu dievaluasi dan hasil mereka ditambahkan atau sambung menyambung; kemudian seluruh nilai dihitung.

Jika nilai saat ini dipilih dalam kotak kombo CustomerID pada Bentuk perintah adalah Alfreds Futterkiste, kolom terikat untuk combo box kembali ALFKI sebagai CustomerID. Ekspresi kriteria asli
   "[CustomerID] = '" & [CustomerID] & "'"
				
mengevaluasi sebagai
   "[CustomerID] = '" & "ALFKI" & "'"
				
yang, ketika concatenated, mengevaluasi sebagai:
   "[CustomerID] = 'ALFKI'"
				

Menentukan tanggal kriteria:

Jika bidang kriteria nilai-nilai tanggal atau waktu, melampirkan tanggal atau waktu nilai dalam tanda-tanda nomor (#). Untuk menemukan karyawan yang ulang tahun pada tertentu date, menggunakan kriteria contoh berikut:
   =DLookUp("[LastName]", "Employees", "[BirthDate] = #01-27-66#")
				

Menentukan beberapa bidang dalam kriteria:

Ekspresi kriteria dapat apapun berlaku SQL di mana klausa (tanpa kata kunci WHERE). Ini berarti bahwa lebih dari satu bidang dapat digunakan untuk menentukan kriteria untuk DLookup() fungsi.

Untuk menemukan nomorPesanan untuk salah satu perintah dijual oleh karyawan "Andrew Fuller," dengan EmployeeID 2 (angka), untuk pelanggan "Simons bistro", dengan CustomerID dari SIMOB (tekstual), menggunakan pernyataan DLookup() contoh berikut:
   =DLookUp("[OrderID]", "Orders", _
      "[CustomerID] = 'SIMOB' And [EmployeeID] = 2")
				
Pernyataan ini kembali nomorPesanan 10556, yang merupakan nomorPesanan pertama yang cocok dengan kriteria. NomorPesanan 10669 juga sesuai kriteria.

Menggunakan contoh di atas keras-kode, atau khusus, CustomerID dan EmployeeID nilai-nilai. Untuk menggunakan variabel bukan nilai-nilai tertentu untuk kriteria, Anda dapat menggunakan Visual Basic for Applications untuk menggabungkan beberapa ekspresi string. Visual Basic contoh berikut menunjukkan metode ini:
   ' Declare the variables.
   Dim CustID As String
   Dim EmpID As Long
   Dim Result
				
   ' Assign values to the variables to be used in the criteria.
   CustID = "SIMOB"
   EmpID = 2
				
   Result = DLookup("[OrderID]", "Orders", _
      "[CustomerID] = '" & CustID & "' And [EmployeeID] = " & EmpID)
				
   MsgBox Result
				
Jika DLookup() fungsi gagal, variabel berisi hasil Null.

Perhatikan bahwa kriteria terdiri dari empat buah yang dievaluasi secara individual. Hasilnya adalah ditambahkan, dan kemudian dievaluasi sebagai keseluruhan. Ekspresi kriteria asli
   "[CustomerID] = '" & CustID & "' And [EmployeeID] = " & EmpID
				
mengevaluasi sebagai
   "[CustomerID] = '" & "SIMOB" & "' And [EmployeeID] = " & 2
				
yang, ketika concatenated, mengevaluasi sebagai:



   "[CustomerID] = 'SIMOB' And [EmployeeID] = 2"
				
Anda dapat menggunakan contoh berikutnya untuk menemukan karyawan yang ulang tahun jatuh pada hari ini:
   =DLookUp("[LastName]", "Employees", _
      "Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) _
      = " & Day(Date))
				
Jika hari ini adalah 12/2/93, ekspresi kriteria asli
   "Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) = " _
      & Day(Date)
				
mengevaluasi sebagai
   "Month([BirthDate]) = " & 12 & " And Day([BirthDate]) = " & 2
				
yang, ketika concatenated, mengevaluasi sebagai:
   "Month([BirthDate]) = 12 And Day([BirthDate]) = 2"
				

Tips untuk pemecahan masalah dan Debugging DLookup() Expressions

Untuk memecahkan ekspresi, memecah ekspresi ke komponen yang lebih kecil, dan kemudian menguji komponen individual di para segera jendela untuk memastikan bahwa mereka bekerja dengan benar. Jika komponen kecil bekerja dengan benar, Anda dapat memasukkannya kembali bersama-sama, sepotong demi sepotong, sampai final ekspresi bekerja dengan benar.

Jendela segera adalah alat yang Anda dapat digunakan untuk membantu debug Visual Basic modul. Menggunakan jendela segera untuk menguji dan mengevaluasi ekspresi secara independen dari bentuk atau makro ekspresi untuk digunakan dalam. Anda dapat mengatur ekspresi di jendela segera, menjalankan mereka, dan melihat hasil segera.

Contoh berikut menunjukkan strategi untuk memecah DLookupekspresi () ke dalam komponen kecil yang Anda dapat menguji dalam Jendela segera. Asumsikan bahwa Anda mengalami kesulitan dengan berikut pernyataan:
   =DLookUp("[OrderID]", "Orders", _
      "[CustomerID] = '" & Forms![MyForm]![CustomerID] _
      & "' And [EmployeeID] = " & Forms![MyForm]![EmployeeID])
				
Perhatikan bahwa kriteria termasuk beberapa bidang dalam pencarian kriteria, salah satunya angka dan salah satunya tekstual.

Pada memecahkan ekspresi ini, coba berikut:

  1. Tekan CTRL + G untuk membuka jendela segera.
  2. Coba fungsi tanpa kriteria apapun. Untuk melakukannya, ketik berikut di jendela segera, dan kemudian tekan ENTER:
    ? DLookUp("[OrderID]", "Orders")
    					
  3. Pastikan referensi bentuk benar. Untuk melakukannya, buka Perintah dalam database contoh Northwind.mdb dan ketik masing-masing baris berikut di jendela segera, dan kemudian tekan ENTER:
    ? Forms![MyForm]![CustomerID]
    					
    -dan-
    ? Forms![MyForm]![EmployeeID]
    					
  4. Mencoba untuk mendapatkan bidang kriteria untuk bekerja secara independen oleh keras pengkodean nilai ke dalam ekspresi. Untuk melakukannya, ketik masing-masing berikut baris dalam jendela segera, dan kemudian tekan ENTER:
    ? DLookUp("[OrderID]", "Orders", "[CustomerID] = 'SIMOB'")
    					
    -dan-
    ? DLookUp("[OrderID]", "Orders", "[EmployeeID] = 2)
    					
  5. Mencoba untuk mendapatkan bidang kriteria untuk bekerja secara mandiri dengan parameter dalam permintaan. Untuk melakukannya, ketik masing-masing berikut segera jendela, dan kemudian tekan ENTER:
    ? DLookUp("[OrderID]", "Orders", _
       "[CustomerID] = '" & Forms![MyForm]![CustomerID] & "'")
    					
    -dan-
    ? DLookUp("[OrderID]", "Orders", _
       "[EmployeeID] = " & Forms![MyForm]![EmployeeID])
    					

REFERENSI

Untuk informasi lebih lanjut tentang DCount() dan fungsi agregat domain lainnya, klik Microsoft akses bantuan pada Bantuan menu, jenis domain fungsi di kantor asisten atau jawaban Wizard, dan kemudian klik Mencari untuk melihat topik.

Properti

ID Artikel: 208786 - Kajian Terakhir: 19 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Access 2000 Standard Edition
Kata kunci: 
kbtshoot kbprogramming kbfunctions kbdta kbhowto kbmt KB208786 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:208786

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com