DLookup İşlevi

Uygulandığı Öğe
Microsoft 365 için Access Access 2024 Access 2021 Access 2019 Access 2016

Access masaüstü veritabanlarında, belirli bir kayıt kümesinden (etki alanı) belirli bir alanın değerini almak için DLookup işlevini kullanabilirsiniz. Visual Basic for Applications (VBA) modülünde, makroda, sorgu ifadesinde veya form veya rapordaki hesaplanmış denetimde DLookup işlevini kullanın.

Formunuzun veya raporunuzun kayıt kaynağında yer almayan bir alanın değerini görüntülemek için DLookup işlevini kullanabilirsiniz. Örneğin, Sipariş Ayrıntıları tablosunu temel alan bir formunuz olduğunu varsayalım. Formda SiparişNo, ÜrünKimliği, BirimFiyat, Miktar ve İndirim alanları görüntüleniyor. Öte yanda, ÜrünAdı alanı başka bir tabloda, Ürünler tablosunda yer alıyor. Bir hesaplanan denetimde DLookup işlevini kullanarak, aynı formda ÜrünAdı'nı görüntüleyebilirsiniz.

Söz dizimi

DLookup(expr, etki alanı [, ölçüt] )

DLookup işlevi söz diziminin aşağıdaki bağımsız değişkenleri vardır:

Bağımsız değişken Açıklama
ifade 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, bu alandaki veriler üzerinde hesaplama yapan bir ifade de olabilir. İfadede, tablodaki bir alanın adını, formdaki denetimi, sabiti veya işlevi ekleyebilirsiniz. İfade bir 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.
etki alanı Gerekli. Etki alanının oluşturulduğu kayıt kümesini tanımlayan dize ifadesi. Bir tablo adı veya parametre gerektirmeyen bir sorgunun sorgu adı olabilir.
ölçütler İsteğe bağlı. Üzerinde DLookup işlevinin gerçekleştirileceği veri aralığını kısıtlamak için kullanılan dize ifadesi. Örneğin, ölçütler çoğunlukla SQL ifadesindeki WHERE yan tümcesiyle eşdeğerdir (WHERE sözcüğü olmadan). Ölçütler atlanırsa, DLookup işlevi ifadeyi tüm etki alanı için hesaplar. Ölçütler içine eklenen her alan aynı zamanda etki alanı içinde de bir alan olmalıdır; yoksa, DLookup işlevi Null değerini döndürür.

Notlar

DLookup işlevi, ölçütlerde belirtilen bilgilere göre tek bir alan değeri döndürür. Ölçüt isteğe bağlı bir bağımsız değişken olsa da, ölçüt için bir değer sağlamazsanız, DLookup işlevi etki alanında rastgele bir değer döndürür.

Hiçbir kayıt ölçüte uygun değilse veya etki alanı kayıt içermiyorsa , DLookup işlevi Null döndürür.

Birden fazla alan ölçütleri karşılıyorsa , DLookup işlevi ilk oluşumu döndürür. DLookup işlevi tarafından döndürülen alan değerinin benzersiz olmasını sağlayacak ölçütler belirtmelisiniz. DLookup işlevinin benzersiz bir değer döndürdüğünden emin olmak için ölçütleriniz için aşağıdaki örnekte olduğu gibi [EmployeeID] bir birincil anahtar değeri kullanmak isteyebilirsiniz:

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

DLookup işlevini bir makroda veya modülde, sorgu ifadesinde veya hesaplanan denetimde kullanmanız fark etmeksizin, doğru şekilde değerlendirildiğinden emin olmak için ölçüt bağımsız değişkenini dikkatli bir şekilde oluşturmanız gerekir.

Sorgunun Ölçüt satırında, sorgudaki hesaplanan alan ifadesinde veya güncelleştirme sorgusundaki Güncelleştir satırında ölçüt belirtmek için DLookup işlevini kullanabilirsiniz.

Görüntülemeniz gereken alan formunuzun veya raporunuzun dayandığı kayıt kaynağında yer almıyorsa, DLookup işlevini 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 bunun ÜrünKimliği alanını görüntüleyen, ÜrünKimliği adlı bir metin kutusu içerdiğini varsayalım. Metin kutusundaki değer temelinde Ürünler tablosunda ÜrünAdı alanını aramak için, bir metin kutusu daha oluşturabilir ve bunun DenetimKaynağı özelliğini aşağıdaki ifadeye ayarlayabilirsiniz:

=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 kullanabilirsiniz, ancak her iki tablodan ihtiyacınız olan alanları içeren bir sorgu oluşturmak ve formunuzu veya raporunuzu bu sorguya dayandırmak daha verimli olabilir.
  • Ayrıca, yabancı tablodaki değerleri bulmak için Arama Sihirbazı'nı da kullanabilirsiniz.

Not

Bu işlevi kullandığınızda , etki alanındaki kayıtlarda kaydedilmemiş değişiklikler dahil değildir. DLookup işlevinde değiştirilmiş değerlerin temel alınmasını istiyorsanız, önce Veri sekmesindeki Kayıtlar'ın altında Kaydı Kaydet'e tıklayarak, odağı başka bir kayda taşıyarak veya Güncelleştir yöntemini kullanarak değişiklikleri kaydetmeniz gerekir.

Ö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. VBA başvurusuna erişme.

Aşağıdaki örnek, kayıt ölçütlerini karşılayan kaydın CompanyName alanından ad bilgilerini döndürür. Etki alanı bir Nakliyeciler tablosudur. Ölçüt bağımsız değişkeni, sonuçta elde edilen kayıt kümesini ShipperID değeri 1 olan kayıtlarla kısıtlar.

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

Nakliyeciler tablosunun diğer örneğinde, DLookup işlevinin ölçütlerini sağlamak için NakliyeciKimliği form denetimini kullanır. Denetime yapılan başvurunun, bizeleri belirten tırnak işaretleri arasına yazılmadığına dikkat edin. Bu, DLookup işlevi her çağrıldığında 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 intSearchalmak için bir değişkeni kullanılır.

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