Skip to main content

AccessTr.neT


Formda Parametrik raporlama sorunu

Formda Parametrik raporlama sorunu

Çözüldü #1
Merhabalar;

Sorunum şudur.
İlişikte gönderdiğim uygulamada otorapor formunda;

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.

Teşekkürler.


Ek Dosyalar
 İSTATİSTİK1.rar(572.27 KB)

Cevapla
Çözüldü #2
(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

Dim strCriteria As String
If Değiştir22 = True Then
Me.Değiştir22.Caption = "TÜMÜNÜ GÖSTER"
Me.XTAŞIMATÜRÜ.Enabled = False
XMÜŞTERİNO.Enabled = False
XEŞYACİNSİ.Enabled = False
XTARİH1.Enabled = False
XTARİH2.Enabled = False
XÇIKIŞVARIŞ.Enabled = False
XÖDEMETÜRÜ.Enabled = False
XÖDEMEŞEKLİ.Enabled = False
XİLTİSAKHATTI.Enabled = False
strCriteria = ""


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



Me.Filter = strCriteria
Me.FilterOn = True
DoCmd.GoToRecord , , acFirst


Else
DoCmd.ShowAllRecords
Me.Değiştir22.Caption = "KRİTER GİR VE BAS"

XTAŞIMATÜRÜ = Null
XMÜŞTERİNO = Null
XEŞYACİNSİ = Null
XTARİH1 = Null
XTARİH2 = Null
XÇIKIŞVARIŞ = Null
XÖDEMETÜRÜ = Null
XÖDEMEŞEKLİ = Null
XİLTİSAKHATTI = Null

Me.XTAŞIMATÜRÜ.Enabled = True
XMÜŞTERİNO.Enabled = True
XEŞYACİNSİ.Enabled = True
XTARİH1.Enabled = True
XTARİH2.Enabled = True
XÇIKIŞVARIŞ.Enabled = True
XÖDEMETÜRÜ.Enabled = True
XÖDEMEŞEKLİ.Enabled = True
XİLTİSAKHATTI.Enabled = True


End If


Exit_Değiştir22_Click:
Exit Sub

Err_Değiştir22_Click:
MsgBox Err.Description
Resume Exit_Değiştir22_Click
End Sub
Cevapla
Çözüldü #3
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.

Ek Dosyalar
 İSTATİSTİK.rar(583.18 KB)

Cevapla
Çözüldü #4
ben de tüm formlar gözükmüyor
@benbendedeilem
Cevapla
Çözüldü #5
2. nolu mesajdaki 122 nolu satır.

strCriteria = "[TARİH] Like " & Chr$(34) & Me!XTARİH1

bu kodu aşağıdaki ile değiştir.

 strCriteria = "[TARİH] = #" & Format(CDate(Me.XTARİH1), "mm/dd/yyyy") & "#"

Deneme yaptım, problem çıkmadı.

(09/02/2012, 16:18)accessman yazdı: ben de tüm formlar gözükmüyor

Uygulamadaki bazı formlar gizlenmiş, ofis 2003'te yerini tam hatırlamıyorum ama, "araçlar/seçenekler/gizli nesneleri göster" gibi bir yerde idi.
Cevapla
Çözüldü #6
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

**********************************************
komut butonuna bastığımda

[TARİH] = # TARİH1 alanına girdiğim değer # ' sorgu ifadesi içindeki Tarihte söz dizim hatası

iletisi alıyorum.

Sizce nedeni ne olabilir.



Ek Dosyalar
 İSTATİSTİK1.rar(598.37 KB)

Son Düzenleme: 10/02/2012, 11:28, Düzenleyen: QATLET.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task