Sorguyla Boş Alanların Da Listelenmesi

1 2
23/08/2021, 14:45

fenerli6774

İyi günler
Tabloda veri olmayan alanlar Formdaki listede listelenirken
Listenin sorgusunda Okul alanının ölçüt ksımına Like "*" & [Forms]![Form1]![txtOkulugecici] & "*" yazdığımda
tabloda okul alanı boş olan kayıt formdaki listede listelenmiyor.
Bütün ölçütlere Like.. ifadesini yazdığımda elimde sadece tabloda bütün alanları dolu olan kayıtlar kalıyor.

Listenin sorgusunda Okul alanının ölçütün 1.satırına is null; 2. satırına Like "*" & [Forms]![Form1]![txtOkulugecici] & "*" yazdığımda
Listelenmeyen kayıt geri geliyor.
Diğer ölçütleride aynı şekilde yaptığımda
tekrar elimde sadece tabloda bütün alanları dolu olan kayıtlar kalıyor.

Ayrıca is null ifadesini kullandığımda
txtArama hücresine yazdığım kelime düzgün filtreleme yapmıyor.
Ekteki örnek üzerinden yardımcı olursanız memnun olurum.
Ayrıcağınız değerli vakitleriniz için şimdidem teşekkür ederim.
23/08/2021, 15:41

berduş

aklıma 2 farklı yöntem geliyor:
1 -kriterleri ayrıca alırsınız ve alırken alan adını doğrudan almak yerine boş değerle birleştirilerek alabilirsiniz [Okulu] & "" gibi
ben sadece oluk için sorgu yazdım siz diğerleri için yaparsınız
SELECT Tablo1.Kimlik, Tablo1.Adi, Tablo1.Okulu, Tablo1.Sinif, Tablo1.Sube, Tablo1.Ders, Tablo1.Ogretmen, Tablo1.Sehir, Tablo1.Ilce
FROM Tablo1
WHERE ((([Okulu] & "") Like "*" & [Forms]![Form1]![txtOkulugecici] & "*"))
ORDER BY Tablo1.Kimlik;
2 - metin kutularının içeriği değiştiğinde çalışacak bir fonksiyon oluşturup fonksiyon içinde metin kutularını kontrol ettirip sadece içinde veri olan metin kutuarına ait alanlar için kriter satırı eklemek Not aşağıdaki fonksiyonu başka bir çalışma için yapmıştım sadece fikir vermesi için paylaşıyorum kendi çalışmanıza uyarlarsınız
sub txtFiltre()
Dim Kriter As String
sqlX ="SELECT Tablo1.Kimlik, Tablo1.Adi, Tablo1.Okulu, Tablo1.Sinif, Tablo1.Sube, Tablo1.Ders, Tablo1.Ogretmen, Tablo1.Sehir, Tablo1.Ilce FROM Tablo1 "
Kriter = ""
If Len(Me.Text0.Value & "") > 0 Then Kriter = Kriter & " and [il] like '*" & Me.Text0.Value & "*'"
If Len(Me.Text2.Value & "") > 0 Then Kriter = Kriter & " and [ilçe] like '*" & Me.Text2.Value & "*'"
'...
'...
'...
'diğer koşullar
Kriter = Mid(Kriter, 6)
'
'çalışmanıza uygun şekilde birleştirebilirsiniz
if len(Kriter )>0 then Kriter = " where " & Kriter
lstListe.rowsource=sqlX & Kriter & " ORDER BY Tablo1.Kimlik;"
End Sub
24/08/2021, 23:37

fenerli6774

Kendi çalışmanızda ki bu kısmı örnek olarak paylaşabilir misiniz.
24/08/2021, 23:58

berduş

(24/08/2021, 23:37)fenerli6774 yazdı: Kendi çalışmanızda ki bu kısmı örnek olarak paylaşabilir misiniz.
hangi yöntemden bahsediyorsunuz?
25/08/2021, 00:20

berduş

SELECT Tablo1.Kimlik, Tablo1.Adi, Tablo1.Okulu, Tablo1.Sinif, Tablo1.Sube, Tablo1.Ders, Tablo1.Ogretmen, Tablo1.Sehir, Tablo1.Ilce
FROM Tablo1
WHERE ((([Okulu] & "") Like "*" & [Forms]![Form1]![txtOkulugecici] & "*"))
ORDER BY Tablo1.Kimlik;
bu sorguyu liste kutunuzun satır kaynağına yazarsanız zaten görürsünüz ana şablonu, diğer alanlar içinde benzeri yapılacak
25/08/2021, 03:27

fenerli6774

"bu sorguyu liste kutunuzun satır kaynağına yazarsanız zaten görürsünüz ana şablonu, diğer alanlar içinde benzeri yapılacak" ifadesi benim gibi bir acemi için yeterli oldu. Kendi çalışmama uyarladım.
Çok teşekkür ederim yardımlarınız için.
Kolay gelsin iyi çalışmalar.
1 2