Tüm arkadaşlara iyi akşamlar. Ekteki vt.de bulunan form üzerinde liste kutusunda iki tarih aralığını çapraz soguyla between komutunu kullanarak seçme sorgusunda sonuç alıyorum. Fakat çapraz sorguda hata veriyor. Birde between komutunu like komutuyla kullanabilirmiyiz. Saygılarımla iyi çalışmalar.
Merhaba,
örnek uygulamanızdaki liste kutusunun satır kaynağındaki sorgu çalışmadığı için yenilendi. Sorgu sonucu doğru mu bilmiyorum.
Modüle aşağıdaki kodu ekleyiniz
Kod:
Public Function GeciciIlkTarih()
If IsNull([Forms]![Form1]![ilk]) Then
GeciciIlkTarih = "01/01/2015"
Else
GeciciIlkTarih = [Forms]![Form1]![ilk]
End If
End Function
Public Function GeciciSonTarih()
If IsNull([Forms]![Form1]![son]) Then
GeciciSonTarih = Date
Else
GeciciSonTarih = [Forms]![Form1]![son]
End If
End Function
Liste kutusunun satır kaynağındaki sorguyu
Kod:
TRANSFORM Count(tbl_kayit.t_sırano) AS Sayt_sırano
SELECT tbl_kayit.t_tarih, Var(tbl_kayit.t_sırano) AS [Toplam t_sırano]
FROM tbl_kayit
WHERE (((tbl_kayit.t_tarih) Between GeciciIlkTarih() And GeciciSonTarih()))
GROUP BY tbl_kayit.t_tarih
PIVOT tbl_kayit.t_ilce;
kodu ile değiştiriniz.
Diğer sorunuz olan between ile like komutunu nasıl kullanmak istediğinizi anlamadığım için yorum yazamadım.
Merhaba;
Sayın ozanakkaya ile aynı anda yazmaya başladık sanırım. Cevap yazarken mesajı yoktu.
T_Katılımcı tablosu olmadığından çapraz sorguyu çalıştıramadım.
Srg_Capraz sorgusunu tasarım görünümünde açın
Parametreler kısmına girin
Parametre bölümüne Between [forms]![FRM_CAPRAZ]![ilktarih] And [forms]![FRM_CAPRAZ]![sontarih] kopyala yapıştır yapın
veri türünü tarih/saat seçin
kaydet kapat
Böyle deneyince hata veriyor mu?
sayın orderyazbim,
Alıntı:form üzerinde liste kutusunda iki tarih aralığını çapraz soguyla between komutunu kullanarak seçme sorgusunda sonuç alıyorum. Fakat çapraz sorguda hata veriyor.
ifadenize yönelik olarak;
alternatif bir kullanım olması amacı ile iki yöntem ile de elde edebilirsiniz.
YÖNTEM 1
Kod:
PARAMETERS [Forms]![Form1]![ilk] DateTime, [Forms]![Form1]![son] DateTime;
TRANSFORM Count(tbl_kayit.t_sırano) AS Sayt_sırano
SELECT tbl_kayit.[t_tarih], Count(tbl_kayit.t_sırano) AS [Toplam t_sırano]
FROM tbl_kayit
WHERE (tbl_kayit.[t_tarih] Between [Forms]![Form1]![ilk] And [Forms]![Form1]![son])
GROUP BY tbl_kayit.[t_tarih]
PIVOT tbl_kayit.t_ilce;
form üzerindeki listenin kaynağında yer alan sorguyu,yukarıdaki kodlar ile kullanarak deneyiniz.
YÖNTEM 2
Kod:
PARAMETERS [Forms]![Form1]![ilk] DateTime, [Forms]![Form1]![son] DateTime;
TRANSFORM Count(tbl_kayit.t_sırano) AS Sayt_sırano
SELECT tbl_kayit.t_tarih, Count(tbl_kayit.t_sırano) AS [Toplam t_sırano]
FROM tbl_kayit
WHERE (((tbl_kayit.t_tarih)>=[Forms]![Form1]![ilk] And (tbl_kayit.t_tarih)<=[Forms]![Form1]![son]))
GROUP BY tbl_kayit.t_tarih
PIVOT tbl_kayit.t_ilce;
form üzerindeki listenin kaynağında yer alan sorguyu,yukarıdaki kodlar ile kullanarak deneyiniz.
Alıntı:Birde between komutunu like komutuyla kullanabilirmiyiz.
ifadenize yönelik olarak;
sadece bilgilendirme olması amacı ile,
LIKE komutunun tarih değerlerine dair kullanılmasının bir anlamı yok,bana göre.çünkü,zaten direkt tarih değerini yazıp bu tarihe göre kontrol işlemi uygulanacaktır.
bu komutu,daha çok;Metin denetimi arama işlemleri için Kriter niyetine kullanmak daha yerinde olacaktır.
bilginize...iyi çalışmalar,saygılar.
(12/01/2017, 14:31)atoz112 yazdı: sayın orderyazbim,
Alıntı:form üzerinde liste kutusunda iki tarih aralığını çapraz soguyla between komutunu kullanarak seçme sorgusunda sonuç alıyorum. Fakat çapraz sorguda hata veriyor.
ifadenize yönelik olarak;
alternatif bir kullanım olması amacı ile iki yöntem ile de elde edebilirsiniz.
YÖNTEM 1
Kod:
PARAMETERS [Forms]![Form1]![ilk] DateTime, [Forms]![Form1]![son] DateTime;
TRANSFORM Count(tbl_kayit.t_sırano) AS Sayt_sırano
SELECT tbl_kayit.[t_tarih], Count(tbl_kayit.t_sırano) AS [Toplam t_sırano]
FROM tbl_kayit
WHERE (tbl_kayit.[t_tarih] Between [Forms]![Form1]![ilk] And [Forms]![Form1]![son])
GROUP BY tbl_kayit.[t_tarih]
PIVOT tbl_kayit.t_ilce;
form üzerindeki listenin kaynağında yer alan sorguyu,yukarıdaki kodlar ile kullanarak deneyiniz.
YÖNTEM 2
Kod:
PARAMETERS [Forms]![Form1]![ilk] DateTime, [Forms]![Form1]![son] DateTime;
TRANSFORM Count(tbl_kayit.t_sırano) AS Sayt_sırano
SELECT tbl_kayit.t_tarih, Count(tbl_kayit.t_sırano) AS [Toplam t_sırano]
FROM tbl_kayit
WHERE (((tbl_kayit.t_tarih)>=[Forms]![Form1]![ilk] And (tbl_kayit.t_tarih)<=[Forms]![Form1]![son]))
GROUP BY tbl_kayit.t_tarih
PIVOT tbl_kayit.t_ilce;
form üzerindeki listenin kaynağında yer alan sorguyu,yukarıdaki kodlar ile kullanarak deneyiniz.
Alıntı:Birde between komutunu like komutuyla kullanabilirmiyiz.
ifadenize yönelik olarak;
sadece bilgilendirme olması amacı ile,
LIKE komutunun tarih değerlerine dair kullanılmasının bir anlamı yok,bana göre.çünkü,zaten direkt tarih değerini yazıp bu tarihe göre kontrol işlemi uygulanacaktır.
bu komutu,daha çok;Metin denetimi arama işlemleri için Kriter niyetine kullanmak daha yerinde olacaktır.
bilginize...iyi çalışmalar,saygılar.
Sayın atoz112 vermiş olduğunuz örneği uyguladım ve çalıştı. yardımınız için teşekkür eder saygılarımı sunarım.