DLookup işlevini kullanarak başka bir tablo veya sorgudan değer arayabilir ve görüntüleyebilirsiniz. Dlookup işlevinde üç değişken kullanılır:
• Değerini aramak istediğiniz alan adı
• Alanın bulunduğu tablo veya sorgu
• Kayıt aramak için kullanılacak ölçüt (Kriter)
Sözdizimi
Kod:
DLookup(ifade, etkialanı, [ölçütler])
DLookup işlevi sözdizimindeki bağımsız değişkenler ile ilgili ayrıntılı açıklama için DSum İşlevini anlatırken yapmış olduğum açıklamaları okumanızı tavsiye ederim.
Şimdi farklı durumlarda Dlookup işlevinin nasıl kullanıldığına bakalım:
String ifadeler için (VBA'da)
Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter='n'")
Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter=n")
Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter=#date#")
Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter = " & forms!FormAdı!Formdaki Kontrolün Adı)
Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter = '" & forms!FormAdı!Formdaki Kontrolün Adı & "'")
Formdaki Tarih Alanı için (VBA'da)
Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter=#" & forms!FormAdı!Formdaki Kontrolün Adı3 & "#")
Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter1 = " & forms!FormAdı!Formdaki Kontrolün Adı1 & " AND Kriter2 = '" & forms!FormAdı!Formdaki Kontrolün Adı2 & "'" & " AND Kriter3 = #" & forms!FormAdı!Formdaki Kontrolün Adı3 & "#" )
Kod:
DLookup("IlAdi", "tblIller", "ID='" & DLookup("IL", "BURO") & "'")
DLookup işlevi ölçütlerde belirtilen bilgileri temel alan tek bir alan değerini döndürür. Ölçütlerin isteğe bağlı bir bağımsız değişken olmasına karşın, ölçütler için bir değer belirtmezseniz, Dlookup işlevi etki alanında rasgele bir değer döndürür.
Hiçbir kayıt ölçütleri karşılamazsa veya etki alanı bir kayıt içermiyorsa, Dlookup işlevi Boş değer döndürür.
Birden çok alan ölçütleri karşılıyorsa, Dlookup işlevi ilk örneği döndürür.
Ölçüt kullanılmadan kullanılacak olursa belirtilen alandaki ilk kaydı döndürür.
DLookup işlevinin döndürdüğü alan değerinin benzersiz olmasını sağlayan ölçütler belirtmeniz gerekir. Dlookup işlevinin benzersiz bir değer döndürmesini sağlamak için, aşağıdaki örnekteki [Çalışan Kimliği] gibi bir birincil anahtar (birincil anahtar: Değeri veya değerleri, tablodaki her kaydı benzersiz olarak tanımlayan bir veya birden çok alan (sütun). Birincil anahtar, Null (Boş) değerlere izin veremez ve her zaman benzersiz bir dizini olmalıdır. Birincil anahtar, tabloyu diğer tablolardaki yabancı anahtarlarla ilişkilendirmek için kullanılır.) değerini ölçütlerinizde kullanmak daha doğru bir yaklaşım olacaktır.
Kod:
Dim Deger As Variant
Deger = DLookup("[Soyadı]", "Çalışanlar", "[Çalışan Kimliği] = 1")
Form veya raporunuzun kayıt kaynağında olmayan 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 olsun. Bu form SiparişKimliği, ÜrünKimliği, BirimFiyat, Miktar ve İndirim alanlarını görüntüler. Ancak, ÜrünAdı alanı başka bir tablo olan Ürünler tablosundadır. ÜrünAdı'nı aynı formda görüntülemek için Dlookup işlevini bir hesaplanmış denetimde kullanabilirsiniz.
Görüntülemeniz gereken alan form veya raporunuzun temel aldığı kayıt kaynağı değilse, Dlookup işlevini ayrıca form veya rapor üzerindeki bir hesaplanmış denetimdeki ifadede de kullanabilirsiniz. Örneğin, biraz önce yukarıda da bahsettiğimiz gibi, ÜrünKimliği alanını görüntüleyen ÜrünKimliği adlı bir metin kutusu olan Sipariş Ayrıntıları tablosunu temel almış bir Sipariş Ayrıntıları formunuz olsun. Metin kutusundaki değeri temel alarak Ürünler tablosundan ÜrünAdı aramak için, başka bir metin kutusu oluşturabilir ve Denetim Kaynağı özelliğini aşağıdaki ifadeye ayarlayabilirsiniz:
Kod:
DLookup("[ÜrünAdı]", "Ürünler", "[ÜrünNo] =" & Forms![Sipariş Ayrıntıları]!ÜrünNo)
VBA’da Dlookup Kullanımı
Aşağıdaki örnek, ölçütleri karşılayan kaydın ŞirketAdı alanındaki ad bilgilerini döndürür. Etki alanı Gönderenler tablosudur. Ölçütler bağımsız değişkeni sonuç kayıt kümesini GönderenKimliği 1'e eşit olanlarla sınırlandırır.
Kod:
Dim Deger As Variant
Deger = DLookup("[ŞirketAdı]", "Nakliyeciler", "[NakliyeciKimliği] = 1")
Kod:
Dim Deger As Variant
Deger = DLookup("[ŞirketAdı]", "Nakliyeciler", "[NakliyeciKimliği] = " & Formlar!Nakliyeciler!NakliyeciKimliği)
Kod:
Dim Deger As Variant
Deger = DLookup("[KişiAdı]","[Tedarikçiler]","[TedarikçiKimliği]=" & Formlar!Ürünler!TedarikçiKimliği)
Kod:
Dim Aranan As Integer
Dim Deger As Variant
Aranan = 1
Deger = DLookup("[ŞirketAdı]", "Nakliyeciler", "[NakliyeciKimliği] = " & Aranan)
Kod:
If MetinKutusuAdi = DLookup("[AlanAdi]", "[TabloAdi]", "[AlanAdi]= Forms![FormAdi]!MetinKutusuAdi") Then
MsgBox "Bu Kayıt Zaten Var", vbOKOnly, "UYARI..."
Undo
MetinKutusuAdi.SetFocus
Else
End If
Anlatıma göre bir örnek hazırladım. Örneği tasarım görünümünde açıp inceleyecek olursanız anlatılanları daha iyi kavrarsınız. Ayrıca örnekte Vba kullanımını ayrıntılı bir şekilde anlatmaya çalıştım.
Bu anlatım, Accesstr.Net Ailesi için tdsharun tarafından hazırlanmış olup "Kaynak Göstermeden" KULLANILAMAZ...
Kaynakça:
1) www.accesstr.net
2) http://office.microsoft.com
3) Sayın Mehmet Demiral Hocam...