DLookup İşlevi
Tarih
03/05/2009 23:13
Konu Sahibi
tdsharun
Yorumlar
39
Okunma
25103
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



tdsharun
>>> O Şimdi Sivil<<<
Kullanici Avatari
Aktif Üye
778
06/11/2008
225
Kütahya
Ofis 2003
31/12/2011,02:16
Belirtilen kayıt kümesinden etkialanı (etki alanı: Tablo, sorgu veya Sql deyimi tarafından tanımlanan bir kayıt kümesi) belirli bir alanın değerini almak için kullanılır.

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])


NOT: Sözdizimi VBA'ya göre verilmiştir. Form ve raporlarda kullanılırken aradaki işaret virgül yerine noktalı virgüldür.

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'")


Numara Alanları için (VBA'da)

Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter=n")


Tarih alanları için (VBA'da)

Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter=#date#")


Form kontrolleri ile işlem (VBA'da)

Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter = " & forms!FormAdı!Formdaki Kontrolün Adı)


Formdaki String değerler için (VBA'da)

Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter = '" & forms!FormAdı!Formdaki Kontrolün Adı & "'")


Örnek: "[KategoriNo] = ' " & Formlar![Ürünler]![KategoriNo] & " ' "

Formdaki Tarih Alanı için (VBA'da)

Kod:
DLookup("Alan Adı", "Tablo veya Sorgu Adı", "Kriter=#" & forms!FormAdı!Formdaki Kontrolün Adı3 & "#")


Formda Çoklu Kriter (Üçüncü satır tarih alanları için) (VBA'da)

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 & "#" )


Formda iç içe Dlookup (VBA'da)

Kod:
DLookup("IlAdi", "tblIller", "ID='" & DLookup("IL", "BURO") & "'")


Açıklamalar

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")


DLookup işlevini ister bir makro veya modülde, isterse bir sorgu ifadesinde ya da hesaplanmış denetimde kullanın, doğru hesaplanacağından emin olmak için ölçütler bağımsız değişkenini dikkatle oluşturmanız gerekir.

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")


Gönderenler tablosundan bir sonraki örnek, Dlookup işlevine ölçüt sağlamak için GönderenKimliği form denetimini kullanır. Denetime yapılan başvurunun dizeleri gösteren tırnak işaretleri içine alınmadığına dikkat edin. Bu, Dlookup işlevi her çağrıldığında, Microsoft Office Access uygulamasının denetimden geçerli değeri almasını sağlar.

Kod:
Dim Deger As Variant
Deger = DLookup("[ŞirketAdı]", "Nakliyeciler", "[NakliyeciKimliği] = " & Formlar!Nakliyeciler!NakliyeciKimliği)


Başka bir örnek: Tedarikçiler tablosundaki TedarikçiKimliği ile Ürünler formundaki Tedarikçikimliği denetimini eşitler ve bu kimlik numarasına ait KişiAdı’nı görüntüler.

Kod:
Dim Deger As Variant
Deger = DLookup("[KişiAdı]","[Tedarikçiler]","[TedarikçiKimliği]=" & Formlar!Ürünler!TedarikçiKimliği)


Sonraki örnek, değeri almak için Aranan değişkenini kullanır.

Kod:
Dim Aranan As Integer
Dim Deger As Variant

Aranan = 1
Deger = DLookup("[ŞirketAdı]", "Nakliyeciler", "[NakliyeciKimliği] = " & Aranan)


Bir de Dlookup ile mükerrer kayıt kontrolü yapalım:

Kod:
1
2
3
4
5
6
If MetinKutusuAdi = DLookup("[AlanAdi]", "[TabloAdi]", "[AlanAdi]= Forms![FormAdi]!MetinKutusuAdi") Then
MsgBox "Bu Kayıt Zaten Var", vbOKOnly, "UYARI..."
Undo
MetinKutusuAdi.SetFocus
Else
End If


DLookup kullanmadan Açılan Kutudaki seçime göre formdaki metin kutularına bilgi aktarmak da mümkündür. Bunun için Sayın mehmetdemiral hocamın yapmış olduğu anlatımı ve örneği  incelemenizi tavsiye ederim.

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... Img-grin



Ek Dosyalar
.rar   DLookUp_tdsharun.rar (Dosya Boyutu: 13,4 KB / İndirme Sayısı: 1.660)
Cevapla


mesudi
Aktif Üye
Kullanici Avatari
Aktif Üye
M.... A....
249
30/10/2008
63
İstanbul
Ofis 2003
25/09/2016,15:27
hocam teşekürler, çok faydalı bir makale.
Cevapla


alpteqinakbas
Hesap Aktif Değil
Kullanici Avatari
Aktivasyon Bekleyen
65
31/10/2008
İstanbul
Ofis 2003
15/12/2011,16:29
süper ellerine sağlıkkk
Cevapla


mehmetdemiral
.
Kullanici Avatari
Uzman
M.... D....
4.734
30/10/2008
Samsun
Ofis 2013 Tr. 32 Bit
Bugün,00:14
Emeğine sağlık Harun çok güzel bir çalışma olmuş... Tebrik ederim.
İnadına, ille de Accesstr.net...
Cevapla


C*e*l*o*y*c*e
Celosoft Yazılım
Kullanici Avatari
Uzman
M.... B....
2.813
29/10/2008
899
Ankara
Ofis 2010 32 Bit
Bugün,01:25
bu faydalı bilgiler için çok teşekkürler
Cevapla


shopen66
Aktif Üye
Kullanici Avatari
Aktif Üye
59
8
30/03/2009
0
Ankara
Ofis 2003
24/03/2016,21:57
Bilgiler için sağolun hocam
shopen66, 30-03-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  Nz Fonksiyonu (İşlevi) Kullanımı Anlatımı tdsharun 17 12.166 02/12/2016, 15:52 atoz112
  Açılan kutudaki seçime göre formdaki metin kutularına bilgi getirme (Dlookup olmadan) mehmetdemiral 64 35.880 29/08/2016, 10:45 atoz112
  Açılan kutudan veri getirme (dlookup ve column() olmadan) 2. Perde mehmetdemiral 8 3.979 20/09/2014, 09:13 benremix
  DSum ve Sum İşlevi tdsharun 17 12.958 11/09/2011, 14:37 alitaha


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya