Dlookup kullanımında birden çok ölçüte göre veri getirme

Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Arkadaşlar.. Sık kullandığım bir komut olan dlookup'un kullanımında bir problemim var. Şöyle ki; form üzerinde bir açılan kutudan yapılan seçime göre bir metin kutusuna tablodan veri çağırıyorum.Ama tabloda aynı ismi taşıyan ama farklı id numarasına sahip birden çok veri var. Dlookup doğal olarak ilk bulduğunu getiriyor. Halbuki açılır kutuda filtrelediğimiz veri getirilen veriyle aynı adı taşıyor ama id numaradı farklı.

Böyle bir durumda ne yapılabilir? Önerisi olan var mı?
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Açılan kutuya benzersiz alan olan "id" isimli column (sütun) ekleyin, bu alanı formdaki açılan kutunuzda göstermeyebilirsiniz. Daha sonra "DLookUp" fonksiyonunda kriter olarak ta bu "id" alanını kullanınız.

Kod:
DLookup("[ÜrünAdı]", "Ürüntablosu", "[Ürünid] =" & me.açılan_kutu.column(0))
Gibi olabilir..
 
Son düzenleme:
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Ok.. Microsoft'un dlookup ile ilgili çözümü de böyle zaten. Fakat veriler dışarıdan txt dosyalarından okunarak alınıyor. Bu alma işlemi sırasında benzersiz kayıt eklemem lazım by durumda. Bu da tüm veri yapısının yeniden yapılması anlamına geliyor. Ama başka çare de görülmüyor. Ben ana form üzerine alt form ekleyerek onu süzdürmeye çalışıyordum ama metin kutusuna yine de nasıl dlokkup tarzı veri dönderirim onu düşünmekteyim.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sorunu hallettim. Aslında çözüm gözümün önündeymiş de ben göremiyordum. Sevgili beab05. Çok teşekkürler. Verilerin içinde zaten getirilmesi gereken veri id bilgileriydi. Ölçüt olarak adını değil kendini koyunca konu çözüldü. Microsoftun sitesinde bu öneriyi okuduğumda "verilerin yanına bir de benzersiz kayıt koymam imkansız" diye düşünüp bırakmıştım ucunu. Oysa adına göre çağırmaya çalıştığım id verisi zaten benzersiz.:))) (Sen de gülme bak.. Adamın bazen kafası duruyor böyle)
 
Katılım
19 Eylül 2008
Mesajlar
331
Excel Vers. ve Dili
2003
Birden çok kritere göre dlookup, dlast,dsum vs işlem yapılması

STRING ifadeler için
DLookup("Tablodaki alan adı", "TabloAdı", "kriter='n'")

Numara Alanları için
DLookup("Tablodaki alan adı", "TabloAdı", "kriter=n")
Tarih alanları için
DLookup("Tablodaki alan adı", "TabloAdı", "kriter=#date#")
Form kontrolleri ile işlem
DLookup("Tablodaki alan adı", "TabloAdı", "kriter = " & forms!FormAdı!Formdaki Kontrolün Adı)

STRING değerler için
DLookup("Tablodaki alan adı", "TabloAdı", "kriter = '" & forms!FormAdı!Formdaki Kontrolün Adı & "'")

Tarih Alanı için

DLookup("Tablodaki alan adı", "TabloAdı", "kriter=#" & forms!FormAdı!Formdaki Kontrolün Adı3 & "#")

Çoklu kriter(üçüncü satır tarih alanları için

DLookup("Tablodaki alan adı", "TabloAdı", "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 & "#" )
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın adnanyurdakul
Sanırım siz yanlış anladınız. Benim komutun kullanımı ile ilgili değil, çalışma mantığı ile ilgili bir eksiğim olmuştu. Şöyle ki. Anlatayım:

Bir tablo var. Tabloda isimler ve bunlatın müşteri numaraları olsun

İSİM---------- MÜŞTERİNO----------BORCU
ALİ-------------12345--------------100 YTL
VELİ------------89765--------------200 YTL
ALİ-------------07421--------------300 YTL

Şimdi burda sorun şu. Ali adında iki tane kaydım var ama ben 3.ncü sıradakini isterken 1.nci sıradaki geliyor. Neden? Çünkü ben isme göre dlookup komutları yazmışım. Halbuki aynı tabloda müşterino alanına göre (yani benzersiz kayda göre) veri çağırdığımda sorun olmuyor. Bununla ilgili microsoft da aynı şeyi öneriyor. Yani dlookup komutunun aynı anda birden çok kriter girerek sorgulama yapması mümkün değil.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın adnanyurdakul
Sanırım siz yanlış anladınız. Benim komutun kullanımı ile ilgili değil, çalışma mantığı ile ilgili bir eksiğim olmuştu. Şöyle ki. Anlatayım:

Bir tablo var. Tabloda isimler ve bunlatın müşteri numaraları olsun

İSİM---------- MÜŞTERİNO----------BORCU
ALİ-------------12345--------------100 YTL
VELİ------------89765--------------200 YTL
ALİ-------------07421--------------300 YTL

Şimdi burda sorun şu. Ali adında iki tane kaydım var ama ben 3.ncü sıradakini isterken 1.nci sıradaki geliyor. Neden? Çünkü ben isme göre dlookup komutları yazmışım. Halbuki aynı tabloda müşterino alanına göre (yani benzersiz kayda göre) veri çağırdığımda sorun olmuyor. Bununla ilgili microsoft da aynı şeyi öneriyor. Yani dlookup komutunun aynı anda birden çok kriter girerek sorgulama yapması mümkün değil.
Sayın mehmetdemiral,

Yanlış anlamadıysam DLookUp Fonksiyonunda bir kriterden fazlasını kabul etmiyor diyorsunuz ama bence yanlış birden fazla kriter girilebilir. Ancak siz önce bir sorguda deneyip gelen verilere bir göz atın.

İyi çalışmalar
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın modalı
Bu forumdaki ilk sırum Dlookup fonksiyonuyla ilgiliydi ve siz yanıtlamıştınız. Ama gerçekten dlookup ile ilgili tek cümlede birden çok kritere nasıl bakılıyor bilmiyorum. Yani şöyle bir durum olacak: Form üzerindeki a metin kutundaki isim Ali ve Cinsiyet Erkek ise o zaman form üzerindeki adres kutusuna tablodaki falan veriyi getir denilebilir mi? Denilirse nasıl? Bir örnekle açıklarsanız sevinirim. Ben de konuyu sayenizde daha iyi öğrenmiş olurum.

Selamlar..
 
Katılım
19 Eylül 2008
Mesajlar
331
Excel Vers. ve Dili
2003
Sayın Mehmet Demiral
Dlookup birden fazla kritere göre işlem yapar
Yani Adı Ali olupta müşterinosu 5 olanaı getir diyebilirsin.Netice olarak 3 üncü sıradaki aliyi tam tarif edersen tek seferde o sıradaki aliye ulaşırsın .
Göndermiş olduğum örneği kendinize tatbik ederseniz istediğiniz gibi değere ulaşabileceksiniz
DLookup("Tablodaki alan adı", "TabloAdı", "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 & "#" ) size örnek olabilir

İyi Çalışmalar
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Teşekkür ederim sayın adnanyurdakul. And bağlacı ile denemiştim daha önce, ama sanırım başka bir hata yapmışım. Sayenizde bu merakımı gidermiş oldum. Teşekkürler.
 
Katılım
25 Aralık 2005
Mesajlar
115
Bu konu User formlar içinde önemlidir Kullanıcı Adı ali ve şivresi 1234 ise şu formu aç gibi
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın blacksir, sanırım bununla ilgili bir uygulama örneğini sizin bir çalışmanız için yapmıştım, öyle bir şey hatırlıyorum..
 
Üst