Skip to main content

AccessTr.neT


Formlarda değer girerek İki değer arasında sorgulama

Formlarda değer girerek İki değer arasında sorgulama

Çözüldü #1
Arkadaşlar ;

Sorunumu şöyle açıklayayım.
Beetwen [BaşlangıçDeğer] And [BitişDeğer] Fonksiyonuyla iki değer arasında sorgulama yapabiliyoruz. Ama bunun için [BaşlangıçDeğer] ve[BitişDeğer]i girmek zorundayız. Eğer bu değerlerden birini girmezsek veya hiç birini girmezsek sorgulama hatalı oluyor.
Bunun için bir yol buldum ama oldukça uzun ve karışık bir yöntem .Sorum Şu Bu şekilde bir sorgulama yapmak için daha basit kullanımlı her hangi bir deyim veya fonksiyon varmı. Bilen arkadaşlardan yardım istiyorum. Çunkü bu sadece bir alan için sorgulama olsa problem değil ama Aynı form üzerinde birden fazla alan için sorgulama yaptığınızda sorgu çok karmaşıklaşıyor. Bende bu yüzden 1 tek sorgu yerine her sorgu alanı için ayrı ayrı sorgu yapıyorum. Buda geniş çaplı bir programda sorguların çok fazla olmasına sebep oluyor.
Ekteki örnekte programdan sadece bir bolümünde raporlar almak için yapılmış bolümde sorgu ve formları görmektesiniz. Bunun gibi Programda Rapor almam gereken çok fazla yer olduğundan Programımdaki sorgular çok fazla . Kısacası bunları azaltmanın daha iyi bir yöntemi varsa tecrubeli arkadaşlardan yardım istiyorum.
.rar vt1.rar (Dosya Boyutu: 42,25 KB | İndirme Sayısı: 32)
+repCahiller bilginin kölesi, Alimler ise efendisi olur.
Cevapla
Çözüldü #2
Alan Başlangıç değirinin varsayılan ile sürekli dolu olduğunu varsayarak ve Bitiş değerinin boş kalması ihtimalini gözetirsek yeni bir sorgu oluşturarak;
Kod:
SELECT Müşteriler.Kayıt, Müşteriler.CariNO, Müşteriler.CariAd, Müşteriler.SatıcıNO, Müşteriler.SatıcıAdı, Müşteriler.Yetkili, Müşteriler.Adres, Müşteriler.Şehir, Müşteriler.PostaKodu, Müşteriler.TelefonNumarası, Müşteriler.Telefon2, Müşteriler.CepTel, Müşteriler.FaksNumarası, Müşteriler.EpostaAdresi, Müşteriler.Web, Müşteriler.VergiDairesi, Müşteriler.VergiNO, Müşteriler.Borç, Müşteriler.Alacak, Müşteriler.[$Borç], Müşteriler.[$Alacak], Müşteriler.€Borç, Müşteriler.€Alacak, Müşteriler.Bakiye, Müşteriler.İşlemTürü, Müşteriler.Notlar4, Müşteriler.Açıklama, Müşteriler.ÖzelKod1, Müşteriler.ÖzelKod2, Müşteriler.TCKimlikNO, Müşteriler.GrubNO, Müşteriler.Sınıfı, Müşteriler.Evadresi, Müşteriler.EvTelefonu, Müşteriler.RiskLimiti, Müşteriler.Açıklama1, Müşteriler.Açıklama2, Müşteriler.KrediLimiti, Müşteriler.Resim, Müşteriler.DevirTarihi, Müşteriler.Tarih
FROM Müşteriler
WHERE ((([Formlar]![Arama Kıstası]![Tarih2]) Is Null)) OR (((Müşteriler.Tarih)>=[Formlar]![Arama Kıstası]![Tarih] And (Müşteriler.Tarih)<=[Formlar]![Arama Kıstası]![Tarih2]) AND (([Formlar]![Arama Kıstası]![Tarih2]) Is Not Null));

şeklinde bir deneyin isterseniz.
Cevapla
Çözüldü #3
Sayın BlacklEagle;

Öncelikle soruma zaman ayırıp cevap verdiğiniz için teşekkür ederim.

Şunu açıkça itiraf edeyim. V.B.Kod işinden pek fazla anlamadığım için. yaptığım programının hemen hemen tamamını Vb.kodu kullanmadan yapmaya çalıştım. Belkide bundan dolayı çok basit kod larla yapılcak sorguları Access deki sorgu nesnelerini kullanarak yaptım.
Şimdi yukardaki açıklamanıza gelince , yukarda yazdığınız kodlar. V.B. içinmi
yoksa Sql sorgusu içinmi onu tam anlayamadım. Birde Tarih kısmı için verdiğiniz örnek diğer alanlar için de aynı şekilde ayrı ayrı yazılarak mı uygulanacak.(Yani Müşteriler tablosunun bütün alanları yukarda yazdığınız şekilde her sorgu alanı için ayrı ayrı yazılcakmı ? yoksa sadece where kısmından sonra yazdıklarınız diğer alanlar için örnek teşkil edip yazılcakmı.) Dediğim gibi kod yazma konusunda oldukça cahilim.
Birde, Anladığım kadarıyla sorgulardaki 1. değerleri "varsayılan" fonksiyonuyla hiç boş bırakmayın 2. alanları boş (Açık) bırakın demek istiyorsunuz. Bunuda herhalde sorguyu uzatmamak için diyorsunuz, ama bazı alanlarda bu sorun oluyor oyüzden var sayılan değer atamak yerine iki alanıda boş bırakmak benim için daha uygun oluyor.
Anlamam açısından , yukarda yazdığınız örneğe bir alan daha ilave edip (Örneğin [CariNO1] &[cariNO2] diye) verdiğiniz örneğin nasıl devam etmesi gerektiğini daha iyi anlayacağım...
Cevabınız için şimdiden teşekkür eder saygılar sunarım...
+repCahiller bilginin kölesi, Alimler ise efendisi olur.
Cevapla
Çözüldü #4
Sn estapan, sanırım iki tarih arası sorguda IIF kullanımı konusunda da sizinkine benzer bir sıkıntı gündeme gelmiş ve bunun üzerine yazışmalar yapılmış, çözümler üretilmiş. Bu konudaki örnekleri inceleyerek kendinizinkine uyarlayabilirsiniz. Kolay gelsin.
Cevapla
Çözüldü #5
Sn BlackEagle;
lginiz ve alakanız için çok teşekkür ederim...
+repCahiller bilginin kölesi, Alimler ise efendisi olur.
Cevapla
Çözüldü #6
Sn estepan,

Bu konuda birçok Access kullanıcısı sorun yaşamaktadır.

Sizin yönteminiz hakikaten çok uzun ve karışık.Bunun yerine sorgunun kayıt kaynağı üzerinde "Recordsource" değişiklik yaparak sonuca gitmeye çalıştım.Ekteki örnekte hiçbir sorgu , makro veya modül olmadığı halde kısıtlamalarınızın çalıştığını göreceksiniz.Bu kullanılmakta olan formun verilen kıstaslara göre yeni bir "Recordsource" oluşturmasıyla yapılmıştır. Belki işinize yarar... İyi çalışmalar
.rar vt1.rar (Dosya Boyutu: 43,5 KB | İndirme Sayısı: 52)
Please return your positive or negative ...
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task