Access SQL
Metin Kutusu Adı Değiştirme Hk. - Yazdırılabilir Sürüm

+- Access SQL (https://www.access-sql.com)
+-- Forum: ACCESS SORULARI VE ÖRNEK UYGULAMALARI (https://www.access-sql.com/Forum-ACCESS-SORULARI-VE-ORNEK-UYGULAMALARI)
+--- Forum: ACCESS SORULARI (https://www.access-sql.com/Forum-ACCESS-SORULARI)
+--- Konu: Metin Kutusu Adı Değiştirme Hk. (/Konu-Metin-Kutusu-Adi-Degistirme-Hk)

Sayfalar: 1 2


Metin Kutusu Adı Değiştirme Hk. - snapper - 06-11-2023

Arkadaşlar Merhaba,

metin kutusu adını değiştirerek veya farklı türlü aşağıda açıklamış olduğum işlemi yapmak istiyorum


Yıl kriterine göre aşağıdaki örnek kod ile 12 aylık verileri çektiğim metin kutularım mevcut.

Visual Basic
  1. SELECT Month([tarih]) AS Ay,count([veri]) as txtveri from tablo WHERE ([yıl] = " & yıl() & ")"
  2.  
  3.  
  4.  
  5. For X = 1 To 12
  6.    Me.Controls("veri" & X) = 0
  7.  With rs
  8. '.MoveFirst
  9.    While (Not .EOF)
  10.    CtlNo = .Fields("Ay")
  11.  
  12. Me.Controls("veri" & CtlNo) = Nz(.Fields("txtveri"))



formdaki 

veri1,veri2,veri3,veri4,veri5,veri6,veri7,veri8,veri9,veri10,veri11,veri12  isimli metin kutularına seçilen yıldaki 12 aylık verileri çekiyorum.



[Resim: S8auE.jpg]

Yapmak istediğim;

seçenek tikli olursa

ay&yıl değerini seçerek hangi ay&yıl seçildiyse o aydan geri sayarak 12 aylık verileri görmek.


örneğin 10&2023 

veri112022,veri1122022,veri12023,veri22023,veri32023,veri42023,veri52023,veri62023,veri72023,veri82023,veri92023,veri102023

[Resim: S8au6.jpg]


Yardımcı olabilirseniz çok sevinirim,

Saygılarımla,


RE: Metin Kutusu Adı Değiştirme Hk. - dsezgin - 06-11-2023

Visual Basic
  1. SELECT Month([Tarih]) AS Ay, Count([Veri]) AS txtveri FROM Veri
  2. 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.


RE: Metin Kutusu Adı Değiştirme Hk. - snapper - 06-11-2023

(06-11-2023, 10:29)dsezgin demiş ki:
Visual Basic
  1. SELECT Month([Tarih]) AS Ay, Count([Veri]) AS txtveri FROM Veri
  2. 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.


RE: Metin Kutusu Adı Değiştirme Hk. - dsezgin - 07-11-2023

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.


RE: Metin Kutusu Adı Değiştirme Hk. - snapper - 07-11-2023

(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
  1. DoCmd.DeleteObject acTable, "GecTbl"
  2.  
  3. Dim srgYp As QueryDef
  4. 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]")
  5. CurrentDb.Execute "SELECT Capraz.*, * INTO GecTbl FROM Capraz"
  6. CurrentDb.Execute "ALTER TABLE gectbl ADD COLUMN [durum] TEXT"
  7. CurrentDb.Execute "UPDATE GECTBL SET [durum]=""Toplam Veri"" "
  8.  
  9. 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







[Resim: S85xM.jpg]



Visual Basic
  1. Private Sub Form_Current()
  2. On Error Resume Next
  3.  
  4. xSQL = xSQL & " SELECT Month([tarih]) AS Ay,count([ay]) as toplamveri,sum([durumkapalı]) as averisi,sum([durumgeçersiz]) as bverisi,sum([örnek2]) as cverisi "
  5. xSQL = xSQL & vbNewLine & " FROM TABLO"
  6. xSQL = xSQL & vbNewLine & "WHERE ([tablo].[tarih]>DateAdd("m", -12, Date) GROUP BY Month([yılay])"
  7.  
  8.  
  9.  
  10.  
  11.    Set rs = CurrentProject.Connection.Execute(xSQL)
  12. 'Debug.Print yıl(), "rs.RecordCount", rs.RecordCount
  13. For X = 1 To 12
  14.    Me.Controls("txtGz" & X) = 0
  15.   Me.Controls("txtM" & X) = 0
  16. Me.Controls("txtTp" & X) = 0
  17.  Me.Controls("txtd" & X) = 0
  18.  
  19. Next X
  20.    Me.Controls("KmlGz") = 0
  21.      Me.Controls("kmltp") = 0
  22.      Me.Controls("kmlm") = 0
  23.            Me.Controls("kmld") = 0
  24.    
  25. With rs
  26. '.MoveFirst
  27.    While (Not .EOF)
  28.    CtlNo = .Fields("Ay")
  29.    
  30.        Me.Controls("txtGz" & CtlNo) = Nz(.Fields("toplamveri"))
  31.     Me.Controls("txttp" & CtlNo) = Nz(.Fields("averisi"))
  32.     Me.Controls("txtM" & CtlNo) = Nz(.Fields("bverisi"))
  33.          Me.Controls("txtd" & CtlNo) = Nz(.Fields("cverisi"))
  34.  
  35.  
  36.  
  37. Me.Controls("KmlGz") = ((Me.Controls("KmlGz") + Nz(.Fields("toplamveri"))))
  38. Me.Controls("Kmltp") = ((Me.Controls("Kmltp") + Nz(.Fields("averisi"))))
  39. Me.Controls("Kmlm") = ((Me.Controls("Kmlm") + Nz(.Fields("bverisi"))))
  40. Me.Controls("kmld") = ((Me.Controls("Kmlm") + Nz(.Fields("cverisi"))))
  41.  
  42.  
  43.  
  44.  
  45.  
  46.        .MoveNext
  47.    Wend
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Select Case Me.txtUygunluk
  54. Case "VAR"
  55. Me.txtUygunluk.ForeColor = vbRed
  56.  
  57. Case "YOK"
  58. Me.txtUygunluk.ForeColor = vbGreen
  59.  
  60. End Select





RE: Metin Kutusu Adı Değiştirme Hk. - dsezgin - 07-11-2023

xSQL = xSQL & vbNewLine & " FROM TABLO"

olanın üç satirlik verili örnek ve form olsa, önceki örnekleri aramayacağız.