Çapraz Sorgu Tasarım Moduna Control Ekleme

1 2 3 4
15/02/2020, 17:44

feraz

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.


15/02/2020, 17:49

berduş

>=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
15/02/2020, 17:52

feraz

(15/02/2020, 17:49)berduş yazdı:
>=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
Hep aynı mesaj

15/02/2020, 21:09

feraz

Şö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?
16/02/2020, 10:15

berduş

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,
16/02/2020, 10:24

alicimri

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.
1 2 3 4