Skip to main content

AccessTr.neT


Çapraz Sorgu Tasarım Moduna Control Ekleme

Çapraz Sorgu Tasarım Moduna Control Ekleme

Çözüldü #1
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.

[Resim: do.php?img=9655]
.rar Çapraz Sorgu Test.rar (Dosya Boyutu: 35,67 KB | İndirme Sayısı: 3)
Cevapla
#2
Visual Basic Code
>=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
Cevapla
#3
(15/02/2020 17:49)berduş Adlı Kullanıcıdan Alıntı:
Visual Basic Code
>=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 Img-grin

[Resim: do.php?img=9656]
Cevapla
#4
Şö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?
.rar Çapraz Sorgu Test.rar (Dosya Boyutu: 32,65 KB | İndirme Sayısı: 8)
Cevapla
#5
1. sorunuzdaki soruya çözüm olarak aşağıdaki kodu kullanmayı dener misiniz?
Visual Basic Code
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
Visual Basic Code
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ı
Visual Basic Code
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
[Resim: do.php?img=9660]

kusura bakmayın unutmuşum
dosyayı da ekledim,
.rar Kriterli Çapraz Sorgu_SorguKaydet.rar (Dosya Boyutu: 21,5 KB | İndirme Sayısı: 4)
Cevapla
#6
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.
Son Düzenleme: 16/02/2020, 10:31, Düzenleyen: alicimri.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da