Çoklu Kritere Göre Form Filtrede Hata

1 2
15/04/2022, 10:07

tarkanaykın

merhaba arkadaşlar, iki kritere göre filtre yapıyorum; and ile birleştiriyorum tür uyuşmazlığı hatası veriyor, ayrı ayrı sırayla yapıyorum bu defa da "ve " bağlamında olmuyor hangisi işine geliyorsa onu filtreliyor, oysa ben iki kritere göre form filtresi uygulamak istiyorum bi yardımcı olabilir misiniz?

Me.surecAltForm.Form.Filter = " siniflar.sinifAdi='" & Me.acilan.Column(1) & "'" And Me.surecAltForm.Form.Filter = "surec.İslemTarihi Between #" & Format(Me.tarih1, "mm\/dd\/yyyy") & "# And #" & Format(Me.tarih2, "mm\/dd\/yyyy") & "#"

bu şekilde yapınca tür uyşmazlığı hatası veriyor, aradaki And i kaldırıyorum bu defa da iki kriterli olmuyor

not: "filtre adlı butondaki olaylar"
15/04/2022, 11:34

berduş

siz 2 defa form filter olayını kullanmışsınız oysa 1 defa kullanılmalı gerisi normal sorgu kodu olmalı
Me.surecAltForm.Form.Filter = " siniflar.sinifAdi='" & Me.acilan.Column(1) & "' And surec.İslemTarihi  Between #" & Format(Me.tarih1, "mm\/dd\/yyyy") & "# And #" & Format(Me.tarih2, "mm\/dd\/yyyy") & "#"
15/04/2022, 13:11

tarkanaykın

çok teşekkür ederim sayın berduş, ben de bu arada boş durmadım araştırmalara devam ederek nerde hata yaptığımı buldum, çok teşekkür ederim sağolun var olun. bendeki hata , And ile birleştirdim ama "&" And "&" ile birleştirmeliymişim.

If Not IsNull(Me.acilan) And Not IsNull(Me.tarih2) Then
Dim a As String

a = "siniflar.sinifAdi='" & Me.acilan.Column(1) & "'" & " And " & "surec.islemTarihi Between #" & Format(Me.tarih1, "mm\/dd\/yyyy") & "# And #" & Format(Me.tarih2, "mm\/dd\/yyyy") & "#"

Me.surecAltForm.Form.Filter = a





Me.surecAltForm.Form.FilterOn = True

Else
End If
15/04/2022, 14:22

berduş

iyi çalışmalar
15/04/2022, 22:31

tarkanaykın

(15/04/2022, 14:22)berduş yazdı: iyi çalışmalar
ya sayın hocalarım, sabah çalışan kodum şimdi tür uyuşmazlığı hatası veriyor, bir de böyle aralara and koymak opsiyonel yapar mı değişkenleri, yani ben istediğim alanı seçip filtreleyeyim, seçim bana bağlı olsun, araya da and koydum ama bilemedim,

If Not IsNull(Me.acilan) Or Not IsNull(Me.tarih1) Or Not IsNull(Me.tarih2) Or Not IsNull(Me.acilanIsinTuru) Or Not IsNull(Me.depo) Or Not IsNull(Me.acilanFirmaNo) Then

Dim a As String
a = "siniflar.sinifAdi='" & Me.acilan.Column(1) & "' & " And " & surec.islemTarihi Between #" & Format(Me.tarih1, "mm\/dd\/yyyy") & "#" And "#" & Format(Me.tarih2, "mm\/dd\/yyyy") & "# & " And " & isinTuru.isinTuru='" & Me.acilanIsinTuru.Column(1) & "' & " And " & depo.depo='" & Me.depo & "'"





Me.surecAltForm.Form.Filter = a




Me.surecAltForm.Form.FilterOn = True

Else
End If
15/04/2022, 23:23

berduş

temel mantık aşağıdaki gibi olursa sorun olmaz bence siz kendi metin kutularınızı ve alan adlarınızı kullanmalısınız
StrFiltre = ""
If Len(Me.Metin10 & "") > 0 Then StrFiltre = " and [BasTrh]>=" & CLng(Me.Metin10)
If Len(Me.Metin12 & "") > 0 Then StrFiltre = StrFiltre & " and [BasTrh]<=" & CLng(Me.Metin12)
StrFiltre = Mid(StrFiltre, 6)
Me.surecAltForm.Form.Filter = StrFiltre
Me.surecAltForm.Form.FilterOn = True = True
1 2