SELECT Month([Tarih])AS Ay, Count([Veri])AS txtveri FROM Veri
WHERE (((CLng(Format([Tarih],'yyyymm'))) Between CLng(Format(DateAdd('m',-12," & Me.Ornek & "),'yyyymm'))And CLng(Format(" & Me.Ornek & ",'yyyymm')))) GROUP BY Month([Tarih])
Metin Kutu etiket başlıklarını da değişken olacağı gerekçesiyle, dikkate almalısınız.
olabilir.
06-11-2023, 11:46 (En son düzenleme: 06-11-2023, 17:02 snapper.)
(06-11-2023, 10:29)dsezgin demiş ki:
Visual Basic
SELECT Month([Tarih])AS Ay, Count([Veri])AS txtveri FROM Veri
WHERE (((CLng(Format([Tarih],'yyyymm'))) Between CLng(Format(DateAdd('m',-12," & Me.Ornek & "),'yyyymm'))And CLng(Format(" & Me.Ornek & ",'yyyymm')))) GROUP BY Month([Tarih])
Metin Kutu etiket başlıklarını da değişken olacağı gerekçesiyle, dikkate almalısınız.
olabilir.
Sezgin Bey,
metin adlarını değiştiremiyorum, sorun orda. Bu kodun çalışabilmesi için metin adlarını da değiştirmem gerekiyor.
Bir tane kod denedim ama tasarım modunda kullanabilirsiniz diye uyarı verdi.
ekteki dosyayı da siz hazırlamışsınız sanırım, bu şekilde bir şey lazım ama düzenleyemedim, benim için oldukça karışık.
Sn snapper; Çapraz sorgu ile raporlama da Liste kutusu kullandığınızda ihtiyacınız karşılanır, liste kutusu baslıkları özelliğine evet derseniz, sorguda geriye donuk aylara ait verileri yazdırabilirsiniz. Formlar verilere müdahale yapılacağı zaman kullanılır ve genellikle sabit alanlar ile sonuç alınır. Liste kutusu SQL içinde seçilen alanların islenmesinin en pratik yoludur.
07-11-2023, 12:57 (En son düzenleme: 07-11-2023, 13:27 snapper.)
(07-11-2023, 11:58)dsezgin demiş ki: Sn snapper; Çapraz sorgu ile raporlama da Liste kutusu kullandığınızda ihtiyacınız karşılanır, liste kutusu baslıkları özelliğine evet derseniz, sorguda geriye donuk aylara ait verileri yazdırabilirsiniz. Formlar verilere müdahale yapılacağı zaman kullanılır ve genellikle sabit alanlar ile sonuç alınır. Liste kutusu SQL içinde seçilen alanların islenmesinin en pratik yoludur.
Anladım teşekkür ederim, dediğiniz gibi liste kutusu ile de verileri formda listeleyebilirim.
Fakat çapraz sorgu da aşağıdaki gibi bir kod oluşturdum. Sadece tek sonuç ile "toplam verileri"alabiliyorum.
Visual Basic
DoCmd.DeleteObject acTable, "GecTbl"
Dim srgYp As QueryDef
Set srgYp =CurrentDb.CreateQueryDef("Capraz", "TRANSFORM Count([tablo].[ay]),AS txtveri SELECT [tablo].[fırın] FROM [tablo] where [tablo].[tarih]>DateAdd("m",-12,Date) GROUP BY [tablo].[fırın] PIVOT [tablo].[yılay]")
CurrentDb.Execute "SELECT Capraz.*,* INTO GecTbl FROM Capraz"
CurrentDb.Execute "UPDATE GECTBL SET [durum]=""Toplam Veri"" "
DoCmd.DeleteObject acQuery, "Capraz"
Aşağıdaki kod ile bu tabloyu yapabiliyordum. Şimdi etiketler adları ve aylar değişken olduğu için o kodu çalıştıramıyorum. Çünkü CtlNo = .Fields("Ay") kısmını CtlNo = .Fields("yılay") yani tarihi CLng(Format(DateAdd('m',-12," date()),'yyyymm'))
şeklinde yapmam gerekiyor ama bu sefer metin adları metin1,metin2,metin3 şeklinde gittiği için veri o metinlere gelmiyor. Metin adları da Metin202212, metin202301... şeklinde devam etse problem olmayacak.
WHERE [tablo].[tarih]>DateAdd("m", -12, Date) şeklinde sorgu yaptığımda,
Metin ve etiket adları sorgu da çıkan yılay( CLng(Format(DateAdd('m',-12," date()),'yyyymm'))
)değerlerin adını alması lazım.
Çapraz sorgu ile de sadece "TOPLAM VERİ" yi alabiliyorum.
aşağıdaki sorguyu alt alta alamıyorum. count([ay]) as toplamveri,sum([durumkapalı]) as averisi,sum([durumgeçersiz]) as bverisi,sum([örnek2]) as cverisi