Merhaba çapraz sorgu yapmak istedim.
Ekteki strform içindeki Metin1 içine tarih yazınca ona göre filtrelemek istiyorum.
Resimdeki gibi yaptım olmadı sorgu için.
>=clng([formlar].....)
şeklinde yazarak dener mısınız? Tarih türünde veriler için clng(tarih) formatını kullanmanız daha uygun olabilir
Şöyle sorayım galiba daha mantıklı.
strFormdaki baslangic ve bitis tarihini girip Rapor oluştur butonuna tıklayınca Tablo1Çapraz sorguformuna veriler nasıl gelir?
1. sorunuzdaki soruya çözüm olarak aşağıdaki kodu kullanmayı dener misiniz?
PARAMETERS Formlar![strForm]![Metin1] long;
TRANSFORM Sum(Tablo1.say) AS Toplasay
SELECT Tablo1.adı
FROM Tablo1
WHERE (((Tablo1.tarih)>=Formlar![strForm]![Metin1]))
GROUP BY Tablo1.adı
ORDER BY Tablo1.adı, Tablo1.tarih
PIVOT Tablo1.tarih;
Birden fazla kriter kullanılacaksa
PARAMETERS Formlar![strForm]![Metin1] long, Formlar![strForm]![Metin3] long;
TRANSFORM Sum(Tablo1.say) AS Toplasay
SELECT Tablo1.adı
FROM Tablo1
WHERE (((Tablo1.tarih) between (Formlar![strForm]![Metin1]) and (Formlar![strForm]![Metin3]) ))
GROUP BY Tablo1.adı
ORDER BY Tablo1.adı, Tablo1.tarih
PIVOT Tablo1.tarih;
çapraz sorgunun formdan kriter alabilmesinin temel mantığı şu ;
sorgunun en başına
PARAMETERS eklenip formdan alacağımız her kriter için tek tek o alanları ve türü tanımlanmalı, her kriter virgülle ayrılıp en sona "
;" konmalı
PARAMETERS Formlar![strForm]![Metin1] long
, Formlar![strForm]![Metin3] long
;
gerisi bildiğimiz sorguda where kalıbı
PARAMETERS Formlar![strForm]![Metin1] long
, Formlar![strForm]![Metin3] long
;
TRANSFORM Sum(Tablo1.say) AS Toplasay
SELECT Tablo1.adı
FROM Tablo1
WHERE (((Tablo1.tarih) between (Formlar![strForm]![Metin1]) and (Formlar![strForm]![Metin3]) ))
GROUP BY Tablo1.adı
ORDER BY Tablo1.adı, Tablo1.tarih
PIVOT Tablo1.tarih;
2. yöntem olarak eğer doğrudan butona basınca sorgunun kriterli açılması
Dim CaprazSrg As String
CaprazSrg = " TRANSFORM Sum(Tablo1.say) AS Toplasay " & _
" SELECT Tablo1.adı " & _
" FROM Tablo1 " & _
" where (Tablo1.tarih) between (" & CLng(Me.Metin1) & ") and (" & CLng(Me.Metin3) & ")" & _
" GROUP BY Tablo1.adı " & _
" ORDER BY Tablo1.adı, Tablo1.tarih " & _
" PIVOT Tablo1.tarih"
CurrentDb.QueryDefs("Tablo1_Çapraz").SQL = CaprazSrg
DoCmd.OpenQuery "Tablo1_Çapraz"
aslında parametreleri doğrudan sorgunun tasarım penceresinden de ekleyebilmemiz gerek ama sorun bende midir bilmiyorum ama ben başaramadım
kusura bakmayın unutmuşum
dosyayı da ekledim,
Gelmez, çünkü rapor ve formlar statiktir. İlk oluşturuldukları gibi kalırlar. Yeni veriler eklenince veya sorguda sütun sayılarını değiştiren kriterler ile otomatik olarak form ve raporda yeni metin kutuları eklenmez veya azalmaz.