Elinize sağlık berduş hocam çok güzel açıklamışsınız.Alicimri hocamızın çalışmasını denerken merak sarmıştım o form olarak yapmıştı değişik olarak.
Her neyse konuyu çok güzel anlatmışsınız.Ben sorgu siharbazıyla yapmıştım.Birde kodddaki Formlar! Yerine Forms! Olursa daha iyi oluyormuş çünkü bilirsiniz Türkçe harici dilde hata verirmiş.
Bu çaprazsorgunun exceldeki adı özet tablo ingilizcesi pivot table biliyorum.
Ve çok hızlı ve çok pratik ve harika birşey.
Accesstede olmasına sevindim.
(16/02/2020, 12:48)feraz yazdı: [ -> ]Formlar! Yerine Forms! Olursa daha iyi oluyormuş çünkü bilirsiniz Türkçe harici dilde hata verirmiş.
o konuda haklısınız ama uzun uzun yazmak yerine olay ifade oluşturma yöntemiyle aldığım için Türkçelerde otomatik olarak formlar yazıyor bazan forms diye düzeltsem bile bir bakıyorum
Access formlara çeviriyor o nedenle bıraktım olduğu gibi
(16/02/2020, 13:23)alicimri yazdı: [ -> ]Daha önce oluşturulmuş "NewQuery" adındaki sorgunun metin kutularından veri alınarak sqlString i değiştirmek.
Kod:
Private Sub Komut7_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim SQL As String
SQL = "TRANSFORM sum(say) AS ToplamSay SELECT adı FROM Tablo1 WHERE tarih >= " & CDbl(Metin1.Value) & " And tarih <= " & CDbl(Metin3.Value) & " GROUP BY ad? PIVOT tarih"
Set qdf = CurrentDb.QueryDefs("NewQuery")
qdf.SQL = SQL
End Sub
Sağolunuz denedim çalıştı.
Kolay gelsin.
Dosyadaki adı alanını ad olarak değiştirdim malum Türkçe karakter olayından dolayı.
Ve bazı değişiklikler yaptım.
Son hali ektedir.Biri sayın @
berduş hocamızın diğeride sayın @
alicimri hocamızın kodlarına göre yaptım.
Her ikinizede ayrı ayrı teşekkürler Allah razı olsun ikinizdende.
Tabii konu taşınmış galiba dosya eklemedim kodları ekleyeyim.
Çapraz Tablo adını Pivot Tablo olarak değiştirdim ve adı alanınıda ad olarak değiştirdim.
Kod1
Kod:
Private Sub Komut0_Click()
Dim CaprazSrg As String
If IsNull(Metin1.Value) Or Metin1.Value = "" Then
MsgBox "Baslangic Tarih Bos Olamaaz....", vbCritical, "Hata"
Metin1.SetFocus
Exit Sub
End If
If IsNull(Metin3.Value) Or Metin3.Value = "" Then
MsgBox "Bitis Tarih Bos Olamaaz....", vbCritical, "Hata"
Metin3.SetFocus
Exit Sub
End If
CaprazSrg = " TRANSFORM Sum(Tablo1.say) AS Toplasay " & _
" SELECT Tablo1.ad " & _
" FROM Tablo1 " & _
" where (Tablo1.tarih) between (" & CLng(Me.Metin1.Value) & ") and (" & CLng(Me.Metin3.Value) & ")" & _
" GROUP BY Tablo1.ad " & _
" ORDER BY Tablo1.ad, Tablo1.tarih " & _
" PIVOT Tablo1.tarih"
CurrentDb.QueryDefs("Pivot Tablo").SQL = CaprazSrg
DoCmd.OpenQuery "Pivot Tablo"
End Sub
Kod2
Kod:
Private Sub Komut0_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim SQL As String
If IsNull(Metin1.Value) Or Metin1.Value = "" Then
MsgBox "Baslangic Tarih Bos Olamaaz....", vbCritical, "Hata"
Metin1.SetFocus
Exit Sub
End If
If IsNull(Metin3.Value) Or Metin3.Value = "" Then
MsgBox "Bitis Tarih Bos Olamaaz....", vbCritical, "Hata"
Metin3.SetFocus
Exit Sub
End If
SQL = "TRANSFORM sum(say) AS ToplamSay SELECT ad FROM Tablo1 WHERE tarih >= " & CDbl(Metin1.Value) & " And tarih <= " & CDbl(Metin3.Value) & " GROUP BY ad PIVOT tarih"
CurrentDb.QueryDefs("Pivot Tablo").SQL = SQL
DoCmd.OpenQuery "Pivot Tablo"
End Sub
Birde şunu sorayım videodaki pivot tablo olayı menünün neresinde.