Büyüktür Küçüktür İşaretlerine Göre Filtrelemeyi Yapabilme

1 2
10/12/2021, 02:20

husem

3.MESAJDAKİNİ DENEMEDİM,
DİĞERİYLE ÇÖZÜLDÜ,
ÇOK TEŞEKKÜR EDERİM,
10/12/2021, 08:57

berduş

rica ederim
iyi çalışmalar
10/12/2021, 19:08

husem

(10/12/2021, 00:28)berduş yazdı: If IsNull(Me.ARAMUSTERI) Then MUS = "[RECETE_FIYATLARI].MUSTERI" Else MUS = "'" & Me.ARAMUSTERI & "'" yerine
If IsNull(Me.ARAMUSTERI) Then MUS = "" Else MUS = " and [RECETE_FIYATLARI].MUSTERI='" & Me.ARAMUSTERI & "'" gibi bir yöntem daha uygun olur
bu durumda
xxx = " WHERE (RECETE_FIYATLARI.MUSTERI=" & MUS & ") AND (RECETE_FIYATLARI.RENK_NO=" & RNO & ") AND (RECETE_FIYATLARI.RENK=" & RNK & ") AND (RECETE_FIYATLARI.PARA_BIRIMI=" & PBIRIM & ") AND (RECETE_FIYATLARI.RENK_FIYATI" & Me.ARALIK1 & Format(Nz(Me.DEGER1, 0), "0,00") & ") kodu yerine

xxx = mus & RNO ......
if len(xxx & "")>0 then xxx=" where " & mid(xxx,4) gibi kullanılabilir

merhaba sayın Halil bey,
3. mesajdaki kod hata verdi,
müsait olduğunuz bir vakitte 3. ve 4 mesajdaki sorunlarla ilgili örnek üzerinde yardımcı olabilirmisiniz?
bahsettiğiniz
ama bence kriter yapınızı değiştirmeniz daha uygun mesela ilgili alanlar boşsa where sorgusuna hiç eklenmemeli



bu sorun belki benim sorgularımın yavaş çalışmasına neden olabilecek,
örnek çalıma üzerinden yardımcı olabilirseniz sevinirim,

çalışmalarınızda başarılar dilerim
saygılarımla
11/12/2021, 17:32

berduş

filtreleme fonksiyonunu aşağıdaki gibi düzenleyip dener misiniz?
görüldüğü gibi sadece ilgili değerler girildiğinde alanlar kritere ekleniyor
Private Sub FILTRELE()

ilksecim = Me.ARALIK1 & Nz(Me.DEGER1, 0)
ilksecim = " and RENK_FIYATI" & Replace(ilksecim, ",", ".")
ikincisecim = Me.ARALIK2 & Nz(Me.DEGER2, 0)
ikincisecim = " and RENK_FIYATI" & Replace(ikincisecim, ",", ".")

If IsNull(Me.ARAMUSTERI) Then Mus = "" Else Mus = " and MUSTERI='" & Me.ARAMUSTERI & "'"
If IsNull(Me.ARARENKNO) Then rno = "" Else rno = " and RENK_NO='" & Me.ARARENKNO & "'"
If IsNull(Me.ARARENK) Then Rnk = "" Else Rnk = " and RENK='" & Me.ARARENK & "'"
If IsNull(Me.ARAPARABIRIMI) Then PBIRIM = "" Else PBIRIM = " and PARA_BIRIMI='" & Me.ARAPARABIRIMI & "'"
If IsNull(Me.ARALIK1) Or IsNull(Me.DEGER1) Then ilksecim = "" 'Else ilksecim = " and RENK_FIYATI" & Me.ARALIK1 & Format(Nz(Me.DEGER1, 0), "##0,00")
If IsNull(Me.ARALIK2) Or IsNull(Me.DEGER2) Then ikincisecim = "" 'Else ikincisecim = " and RENK_FIYATI" & Me.ARALIK2 & Format(Nz(Me.DEGER2, 0), "0,00")
sql = "SELECT ID, KAYIT_TARIHI AS KayıtTarihi, MUSTERI AS Müşteri, RENK_NO AS [Renk No], RENK, RENK_FIYATI AS RenkFiyatı, PARA_BIRIMI AS Birimi From RECETE_FIYATLARI "
xxx = Mus & rno & Rnk & PBIRIM & ilksecim & ikincisecim
xxx = IIf(Len(xxx & "") = 0, xxx, " where " & Mid(xxx, 5))

Me.Liste15.RowSource = Sql & xxx

Me.Liste15.Requery

End Sub
1 2