Access masaüstü veritabanlarında, belirli bir kayıt kümesinden (bir etki alanı ) belirli bir alanın değerini almak için DLookup işlevini kullanabilirsiniz. DLookup işlevini Visual Basic for Applications (VBA) modülünde, makroda, sorgu ifadesinde veya form veya rapordaki hesaplanmış denetimde 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( ifade, etki alanı [, ölçütler] )
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 sorguda bir alanı tanımlayan bir dize ifadesi veya söz konusu alandaki veriler üzerinde hesaplama yapan bir ifade olabilir. ifade bağımsız değişkenine tablodaki bir alanın, formdaki bir denetimin, bir sabitin veya işlevin adını ekleyebilirsiniz. ifade bir işlev içeriyorsa, bu yerleşik veya kullanıcı tanımlı olabilir ancak başka bir etki alanı toplama işlevi 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çütler bağımsız değişkeninde belirtilen bilgiler temelinde tek bir alan değeri döndürür. ölçütler isteğe bağlı bir bağımsız değişken olsa da, ölçütler için değer sağlamazsanız DLookup işlevi etki alanından rastgele bir değer döndürür.
Hiçbir kayıt ölçütler bağımsız değişkenine uymazsa veya etki alanı hiç kayıt içermiyorsa, DLookup işlevi Null döndürür.
ölçütler ile eşleşen birden çok alan varsa, DLookup işlevi ilk karşılaştığı eşleşmeyi 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çütünüz olarak bir birincil anahtar değeri kullanmak isteyebilirsiniz (aşağıdaki örnekte yer alan [EmployeeID] gibi):
Dim varX As Variant
varX = DLookup("[LastName]", "Employees", _ "[EmployeeID] = 1")
DLookup işlevini ister bir makroda, modülde, sorgu ifadesinde, ister hesaplanan denetimde kullanın, doğru hesaplanacağından emin olmak için ölçütler bağımsız değişkenini dikkatle hazırlamalısınız.
DLookup işlevini kullanarak, sorgunun Ölçüt satırında, sorgudaki hesaplanan alan ifadesinin içinde veya güncelleştirme sorgusunun Güncelleştir satırında ölçütler belirtebilirsiniz.
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ı
-
Bir yabancı tablodaki değeri görüntülemek için DLookup işlevini kullanabilirsiniz, ancak her iki tablodan size gereken alanları içeren bir sorgu oluşturmak, sonra da formunuz veya raporunuzda o sorguyu temel almak daha verimli bir yöntem olabilir.
-
Ayrıca, yabancı tablodaki değerleri bulmak için Arama Sihirbazı'nı da kullanabilirsiniz.
Not: Bu işlevi kullandığınızda, etki alanı içindeki kayıtlarda bulunan kaydedilmemiş değişiklikler dahil edilmez. 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, kaydın ŞirketAdı alanından ölçütlere uyan ad bilgisini döndürür. Etki alanı bir Nakliyeciler tablosudur. ölçütler bağımsız değişkeni, sonuçta elde edilecek kayıt kümesini NakliyeciKimliği değeri 1'e eşit olan kayıtlarla sınırlandırır.
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 geçerli değeri denetimden almasını sağlar.
Dim varX As Variant
varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & Forms!Shippers!ShipperID)
Sonraki örnekte, değeri almak için intSearch değişkeni kullanılır.
Dim intSearch As Integer
Dim varX As Variant intSearch = 1 varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch)