Skip to main content

AccessTr.neT


Çapraz sorguda Between Like komutu

Çapraz sorguda Between Like komutu

#1
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.
.rar Örnek.rar (Dosya Boyutu: 4,3 MB | İndirme Sayısı: 15)
Cevapla
#2
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.
Cevapla
#3
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?

[Resim: do.php?imgf=148412076108291.jpg]
Hayat bu
ölsende yaşamaya mecbursun!
UNUTMA!!!



(hafta sonu mesai olmadığından mesajlardaki çözümleri ancak hafta içi uygulayabiliyorum)
Son Düzenleme: 11/01/2017, 10:47, Düzenleyen: kadirdursun.
Cevapla
#4
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.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#5
(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.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da