1- Form üst bilgisinde belirlediğim seçimlere göre alt formda filitreli sonuç alıyorum.
2- Bu sonuçlara ulaşabilmek için Değiştir22 butonunu kullanıyorum.
3- Değiştir22 butonunun tıklandığında seçimine girdiğim kodla filitreleme yapıp alt formda filitrelenmiş verilere ulaşıyorum.
SORUN :
Formun üst bilgisinde belirlediğim kriterlerden XTARİH1 ve XTARİH2 alanlarına girdiğim değere ait ( TARİH >= XTARİH1 AND TARİH <= XTARİH2 ) filitreyi uygulayamadım. Yani belirlenen iki tarih aralığındaki kayıtları almak istiyorum.
Öte yandan şayet XTARİH1 alanına veri girip XTARİH2 alanını boş bırakırsam sadece 1 günlük yani XTARİH1 alanına ait kayıtları görmek istiyorum.
(08/02/2012, 14:40)QATLET yazdı: [ -> ]Formun üst bilgisinde belirlediğim kriterlerden XTARİH1 ve XTARİH2 alanlarına girdiğim değere ait ( TARİH >= XTARİH1 AND TARİH <= XTARİH2 ) filitreyi uygulayamadım. Yani belirlenen iki tarih aralığındaki kayıtları almak istiyorum.
bu işlem için eklenmesi gereken kod
strCriteria = strCriteria & " AND [TARİH] Between #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "# AND #" & Format(CDate(Me.XTARİH2), "mm/dd/yyyy") & "#"
(08/02/2012, 14:40)QATLET yazdı: [ -> ]Öte yandan şayet XTARİH1 alanına veri girip XTARİH2 alanını boş bırakırsam sadece 1 günlük yani XTARİH1 alanına ait kayıtları görmek istiyorum.
bu işlem için eklenmesi gereken kod üstteki ile birlikte;
If IsNull(Me.XTARİH2) Then
strCriteria = strCriteria & " AND [TARİH] = #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "#"
Else
strCriteria = strCriteria & " AND [TARİH] Between #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "# AND #" & Format(CDate(Me.XTARİH2), "mm/dd/yyyy") & "#"
End If
Sonuç olarak, butonun tıklandığında olayındaki kodu aşağıdaki ile değiştirilmesi gerekli.
Private Sub Değiştir22_Click()
On Error GoTo Err_Değiştir22_Click
If Nz(Me!XTAŞIMATÜRÜ) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[TAŞIMATÜRÜ] Like " & Chr$(34) & Me!XTAŞIMATÜRÜ
Else
strCriteria = strCriteria & " AND [TAŞIMATÜRÜ] Like " & Chr$(34) & "*" & Me!TAŞIMATÜRÜ & "*"
End If
If Right$(Me!XTAŞIMATÜRÜ, 1) = "*" Then
strCriteria = strCriteria & Chr$(34)
Else
strCriteria = strCriteria & "*" & Chr$(34)
End If
End If
If Nz(Me!XMÜŞTERİNO) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[MÜŞTERİNO] Like " & Chr$(34) & Me!XMÜŞTERİNO
Else
strCriteria = strCriteria & " AND [MÜŞTERİNO] Like " & Chr$(34) & "*" & Me!XMÜŞTERİNO & "*"
End If
If Right$(Me!XMÜŞTERİNO, 1) = "*" Then
strCriteria = strCriteria & Chr$(34)
Else
strCriteria = strCriteria & "*" & Chr$(34)
End If
End If
If Nz(Me!XÇIKIŞVARIŞ) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[ÇIKIŞVARIŞ] Like " & Chr$(34) & Me!XÇIKIŞVARIŞ
Else
strCriteria = strCriteria & " AND [ÇIKIŞVARIŞ] Like " & Chr$(34) & "*" & Me!XÇIKIŞVARIŞ & "*"
End If
If Right$(Me!XÇIKIŞVARIŞ, 1) = "*" Then
strCriteria = strCriteria & Chr$(34)
Else
strCriteria = strCriteria & "*" & Chr$(34)
End If
End If
If Nz(Me!XEŞYACİNSİ) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[EŞYACİNSİ] Like " & Chr$(34) & Me!XEŞYACİNSİ
Else
strCriteria = strCriteria & " AND [EŞYACİNSİ] Like " & Chr$(34) & "*" & Me!XEŞYACİNSİ & "*"
End If
If Right$(Me!XEŞYACİNSİ, 1) = "*" Then
strCriteria = strCriteria & Chr$(34)
Else
strCriteria = strCriteria & "*" & Chr$(34)
End If
End If
If Nz(Me!XÖDEMETÜRÜ) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[ÖDEMETÜRÜ] Like " & Chr$(34) & Me!XÖDEMETÜRÜ
Else
strCriteria = strCriteria & " AND [ÖDEMETÜRÜ] Like " & Chr$(34) & "*" & Me!XÖDEMETÜRÜ & "*"
End If
If Right$(Me!XÖDEMETÜRÜ, 1) = "*" Then
strCriteria = strCriteria & Chr$(34)
Else
strCriteria = strCriteria & "*" & Chr$(34)
End If
End If
If Nz(Me!XÖDEMEŞEKLİ) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[ÖDEMEŞEKLİ] Like " & Chr$(34) & Me!XÖDEMEŞEKLİ
Else
strCriteria = strCriteria & " AND [ÖDEMEŞEKLİ] Like " & Chr$(34) & "*" & Me!XÖDEMEŞEKLİ & "*"
End If
If Right$(Me!XÖDEMEŞEKLİ, 1) = "*" Then
strCriteria = strCriteria & Chr$(34)
Else
strCriteria = strCriteria & "*" & Chr$(34)
End If
End If
If Nz(Me!XİLTİSAKHATTI) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[İLTİSAKHATTI] Like " & Chr$(34) & Me!XİLTİSAKHATTI
Else
strCriteria = strCriteria & " AND [İLTİSAKHATTI] Like " & Chr$(34) & "*" & Me!XİLTİSAKHATTI & "*"
End If
If Right$(Me!XİLTİSAKHATTI, 1) = "*" Then
strCriteria = strCriteria & Chr$(34)
Else
strCriteria = strCriteria & "*" & Chr$(34)
End If
End If
' If Len(Me.XTARİH2) = 0 Then ' (((alt if'e isNull(Me.XTARİH2) eklendi)))
' Nz(Me.XTARİH2) = (Me.XTARİH1)
' Else
'Nz(Me.XTARİH2) = (Me.XTARİH1)
' End If
If Nz(Me!XTARİH1) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[TARİH] Like " & Chr$(34) & Me!XTARİH1
Else
If IsNull(Me.XTARİH2) Then
strCriteria = strCriteria & " AND [TARİH] = #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "#"
Else
strCriteria = strCriteria & " AND [TARİH] Between #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "# AND #" & Format(CDate(Me.XTARİH2), "mm/dd/yyyy") & "#"
End If
End If
' If Right$(Me!XTARİH1, 1) = "*" Then
' strCriteria = strCriteria & Chr$(34)
' Else
' strCriteria = strCriteria & "*" & Chr$(34)
' End If
End If
Merhabalar;
göndermiş olduğunuz kodu aynen girmeme karşılık iki tarih arası filitrelemede hiç bir veri gelmiyor.
Sanırım ben bir hata yapıyorum. Ama hatamı bir türlü bulamadım.
Dosyayı göndermiş olduğunuz kodun işlenmiş hali ile ekliyorum.
Nerede hatam var bilemiyorum.
İlginize şimdiden teşekkürler.
Göndermiş olduğunuz aşağıdaki kodu ilişikteki dosyada da görüleceği üzere aynen ekledim.
**********************************************
If Nz(Me!XTARİH1) <> "" Then
If Nz(strCriteria) = "" Then
strCriteria = "[TARİH] = #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "#"
Else
If IsNull(Me.XTARİH2) Then
strCriteria = strCriteria & " AND [TARİH] = #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "#"
Else
strCriteria = strCriteria & " AND [TARİH] Between #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "# AND #" & Format(CDate(Me.XTARİH2), "mm/dd/yyyy") & "#"
End If
End If
End If