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.
Listboxta Açılır Kutudaki Seçime Göre Filtre Uygulama.
yardımcı olacak yok mu??
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
tek yapmanız gereken liste kutusunun sorgusuna acilir kutuyu eklemek ve
acilirkutunun after update olayına listekutusu.requery kodunu eklemek
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..
amacım 3 alan için tek arama kutusu kullanabilme..
Son Düzenleme: 24/03/2020, 00:12, Düzenleyen: te-kin.
öncelikle formunuza aşağıdaki fonksiyonu ekleyin
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
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
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
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.
Son Düzenleme: 24/03/2020, 13:19, Düzenleyen: te-kin.
Konuyu Okuyanlar: 1 Ziyaretçi