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 Adlı Kullanıcıdan Alıntı: 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
Visual Basic Code
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 Adlı Kullanıcıdan Alıntı: Ö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;

Visual Basic Code
    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.

Visual Basic Code
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
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
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.

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

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

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

Deneme yaptım, problem çıkmadı.

(09/02/2012 16:18)accessman Adlı Kullanıcıdan Alıntı: 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.
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
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