Listboxta Açılır Kutudaki Seçime Göre Filtre Uygulama.

23/03/2020, 20:47

te-kin

Arkadaşlar meyveler adında bir tablom var. Bu tabloda meyveler ve bu meyvelerin hangi öğünlerde olacağı var. Forma Açılır kutudaki seçime göre list box ta nasıl filtre uygulayarak gösterebilirim. Teşekkürler.
23/03/2020, 23:58

te-kin

yardımcı olacak yok mu??
24/03/2020, 00:05

berduş

Sayın te-kin sitede acilir kutudaki değere gore süzme yapan yığınla örnek var araştırırsanız bulabilirsiniz?
tek yapmanız gereken liste kutusunun sorgusuna acilir kutuyu eklemek ve
acilirkutunun after update olayına listekutusu.requery kodunu eklemek
24/03/2020, 00:09

te-kin

yalnız listbox ın  değerleri evet/hayır olduğu için sadece bir değer bin filtreleme yapılabiliyor. sorunumda burda zaten.

amacım 3 alan için tek arama kutusu kullanabilme..
24/03/2020, 11:05

berduş

öncelikle formunuza aşağıdaki fonksiyonu ekleyin
Function KrtSuz()
Dim SqlMyv, SqlKrt, KrtOgn As String
If IsNull(Me.Açılan_Kutu2) Or IsNull(Me.Liste4) Then
    MsgBox "lütfen hem öğün hem de meyve seçin"
    Exit Function
End If

SqlMyv = " SELECT meyveler.Kimlik, meyveler.meyve, meyveler.sabah, meyveler.öğle, meyveler.aksam " & _
        " FROM meyveler"
KrtOgn = Switch(Açılan_Kutu2 = "SABAH", "sabah", Açılan_Kutu2 = "ÖĞLE", "öğle", Açılan_Kutu2 = "AKŞAM", "aksam")
SqlKrt = " WHERE ((meyveler.Kimlik)=" & Me.Liste4 & ") AND ((meyveler." & KrtOgn & ")=True)"

Me.Liste6.RowSource = ""
SqlMyv = SqlMyv & SqlKrt
Me.Liste6.RowSource = SqlMyv
End Function

sonrada fonksiyonun çağrılmasını istediğiniz yerde bu fonksiyonu çağırırsınız
ben açılır kutu değiştiğinde ve liste4 çift tık olayına ekledim
Private Sub Açılan_Kutu2_Change()
KrtSuz
End Sub

Private Sub Liste4_DblClick(Cancel As Integer)
KrtSuz
End Sub

ama bence açılır kutuyu 2 sütunlu yapıp ilk sütuna tablodaki alan adını olduğu gibi yazsaydınız Switch satırına gerek kalmadan doğrudan açılır kutu referans olarak kullanılabilirdi
NOt: isimlendirmede Türkçe karakter boşluk ve alt tire dışında işaret kullanılmaması tavsiye ediliyor
24/03/2020, 13:15

te-kin

SELECT meyveler.Kimlik, meyveler.meyve, IIf([M2]="SABAH",[sabah]=-1) Or IIf([M2]="ÖĞLE",[öğle]=-1) Or IIf([M2]="AKŞAM",[aksam]=-1) AS 1
FROM meyveler
WHERE (((IIf([M2]="SABAH",[sabah]=-1) Or IIf([M2]="ÖĞLE",[öğle]=-1) Or IIf([M2]="AKŞAM",[aksam]=-1))=-1));
 TEŞKKÜRLER 
, belki arkadaşlara fikir verir ben listebox ın Sql kodunu yaparak çözdüm.