Access masaüstü veritabanlarında, belirtilen kayıt kümesinden (etki alanı) belirli bir alanın değerini almak için işlevi kullanabilirsiniz DLookup . Bir Visual Basic for ApplicationsVisual Basic for Applications (VBA) modülünde, bir makroda, sorgu ifadesinde veya form ya da raporda bir hesaplanan denetim kullanabilirsinizDLookup.
Formunuzun veya raporunuzun kayıt kaynağında yer almayan bir alanın değerini görüntülemek için bu işlevi kullanabilirsiniz DLookup . Örneğin, Sipariş Ayrıntıları tablosunu temel alan bir formunuz olduğunu varsayalım. Formda , ProductID, UnitPriceQuantity, ve Discount alanları OrderIDgörüntülenir. Ancak, ProductName alan başka bir tabloda, tablodadır Products . İşlevi, DLookup aynı formda görüntülemek ProductName için bir hesaplanan denetimde kullanabilirsiniz.
Söz dizimi
DLookup(expr, domain [, criteria])
İşlevin DLookup aşağıdaki bağımsız değişkenleri vardır:
| Bağımsız değişken | Açıklama |
|---|---|
expr |
Gerekli. Değerini döndürmek istediğiniz alanı tanımlayan ifade. Tablo veya sorgudaki bir alanı tanımlayan bir dize ifadesi olabileceği gibi, söz konusu alandaki veriler üzerinde hesaplama yapan bir ifade de olabilir. uygulamasında exprtablodaki bir alanın, formdaki bir denetimin, bir sabitin veya işlevin adını ekleyebilirsiniz. Bir expr işlev içeriyorsa, yerleşik veya kullanıcı tanımlı olabilir ancak başka bir etki alanı toplama veya SQL toplama işlevi olamaz. |
domain |
Gerekli. Etki alanını oluşturan kayıt kümesini tanımlayan dize ifadesi. Bir tablo adı veya parametre gerektirmeyen bir sorgunun sorgu adı olabilir. |
criteria |
İsteğe bağlı. İşlevin DLookup üzerinde çalıştığı veri aralığını kısıtlamak için kullanılan dize ifadesi. Örneğin, criteria çoğu zaman bir SQL ifadedeki yan tümceyle eşdeğerdirWHERE, sözcüğü olmadan WHERE. Bunu atlarsanız criteria, DLookup işlev tüm etki alanı için hesaplama yapar expr . Dahil criteria edilen her alan aynı zamanda içinde bir alan domainolmalıdır. Aksi takdirde, DLookup işlev Null. |
Notlar
İşlev DLookup , dosyasında belirtilen criteriabilgilere dayalı olarak tek bir alan değeri döndürür. İsteğe bağlı olmasına karşın criteria , değer girmezseniz DLookup işlev etki alanında rastgele bir değer döndürür.
Hiçbir kayıt 'i karşılamıyorsa criteriaveya hiç kayıt içermiyorsa domain , işlev 'i DLookup döndürür Null.
Birden fazla alan toplanırsa criteria, DLookup işlev ilk oluşumu döndürür. Döndüren DLookup alan değerinin benzersiz olmasını sağlayacak ölçütler belirtmelisiniz. Benzersiz bir değer döndürdüğünden emin olmak DLookup için aşağıdaki örnekte olduğu gibi ölçütlerinizde [EmployeeID] bir birincil anahtar değeri kullanmak isteyebilirsiniz:
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _
"[EmployeeID] = 1")
İşlevi DLookup ister bir makroda, modülde, sorgu ifadesinde, isterse hesaplanan denetimde kullanın, Access'in criteria doğru değerlendirmesi için bağımsız değişkeni dikkatle oluşturun.
İşlevi DLookup kullanarak sorgunun Ölçüt satırında, sorguda hesaplanan alan ifadesi içinde veya güncelleştirme sorgusunun Güncelleştir satırında ölçüt belirtebilirsiniz.
Görüntülemeniz gereken alan formunuzun veya raporunuzun dayandığı kayıt kaynağında yer almıyorsa, DLookup işlevi form veya rapordaki bir hesaplanan denetimde bulunan ifadenin içinde de kullanabilirsiniz. Örneğin, Sipariş Ayrıntıları tablosuna dayalı bir Sipariş Ayrıntıları formunuz olduğunu ve bu tablonun ProductID alanın görüntülendiği adlı ProductID bir metin kutunuz olduğunu varsayalım. Metin kutusundaki değeri temel alarak tablodan yukarı ProductName arama yapmak için, başka bir Products metin kutusu oluşturun ve bunun DenetimKaynağı özelliğini aşağıdaki ifadeye ayarlayın:
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
İpuçları
- Yabancı tablodaki bir alandan bir değeri görüntülemek için DLookup işlevini kullanabilseniz de, her iki tablodan da ihtiyacınız olan alanları içeren bir sorgu oluşturmak ve sonra formunuzun veya raporunuzun bu sorguyu temel almasını sağlamak daha verimli olabilir.
- Ayrıca, yabancı tablodaki değerleri bulmak için Arama Sihirbazı'nı da kullanabilirsiniz.
Not
Bu işlevi kullandığınızda, kayıtlarda domain yapılan kaydedilmemiş değişiklikler dahil edilmez. Değiştirilen değerleri kullanmak istiyorsanızDLookup, önce Veri sekmesindeki Kayıtlar'ın altında KaydıKaydet'e tıklayarak, odağı başka bir kayda taşıyarak veya yöntemi kullanarak Update değişiklikleri kaydedin.
Örnek
Not
Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülünde kullanımı gösterilir. VBA ile çalışma hakkında daha fazla bilgi için bkz. Access VBA başvurusu.
Aşağıdaki örnek, kaydın CompanyNamecriteriakarşılayan alanından ad bilgilerini döndürür. Etki alanı bir Shippers tablodur. Bağımsız criteria değişken, sonuçta elde edilen kayıt kümesini eşit 1olanlarla ShipperID sınırlar.
Dim varX As Variant
varX = DLookup("[CompanyName]", _
"Shippers", "[ShipperID] = 1")
Tablodaki Shippers diğer örnekte, işlev için ölçütler sağlamak üzere DLookup form denetimi ShipperID kullanılmaktadır. Denetime yapılan başvuru, bizeleri belirten tırnak işaretleri arasına dahil edilmez. Bu, her çalıştırıldığında DLookup Access'in denetimden geçerli değeri almasını güvence altına alır.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & Forms!Shippers!ShipperID)
Sonraki örnekte değeri almak için bir değişken intSearch(, kullanılır) kullanılır.
Dim intSearch As Integer
Dim varX As Variant
intSearch = 1
varX = DLookup("[CompanyName]", "Shippers", _
"[ShipperID] = " & intSearch)