Metin Kutusu Adı Değiştirme Hk.
#1
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,



  Alıntı
Bu mesajı beğenenler:
#2
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.



  Alıntı
Bu mesajı beğenenler:
#3
(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.


Eklenti Dosyaları
.rar   Sürekli Form.rar (Boyut: 42,25 KB / İndirilme: 20)



  Alıntı
Bu mesajı beğenenler:
#4
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.



  Alıntı
Bu mesajı beğenenler:
#5
(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





  Alıntı
Bu mesajı beğenenler:
#6
xSQL = xSQL & vbNewLine & " FROM TABLO"

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



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
access-sql-11 [FORM] access ıcon değiştirme oosmaner 5 813 08-02-2024, 12:43
Son Mesaj: BeyTor
  Aktarım Yaparken Dosya Adını Değiştirme zimbit 4 121 04-02-2024, 00:42
Son Mesaj: zimbit
  [RAPOR] Rapor Fontunu Değiştirme ates2014 6 167 25-01-2024, 15:15
Son Mesaj: ates2014
  [VBA] Pc. Tarih Formatını Değiştirme ates2014 8 222 09-01-2024, 09:18
Son Mesaj: ates2014
  [FORM] metin kutusu kaydırma onkay 5 1.925 27-12-2023, 13:24
Son Mesaj: dsezgin
  Rapor üzerinde önizleme öncesi Etiket Ve Metin Kutularının Yerlerini Değiştirme Hk. adnnfrm 4 175 26-12-2023, 03:42
Son Mesaj: adnnfrm
  Etiket Isimlerini Toplu Değiştirme hedefkaya 1 126 24-10-2023, 21:06
Son Mesaj: dsezgin
  [TABLO] çoklu Birleşik Giriş Kutusu RASİMPEH 2 150 19-09-2023, 04:53
Son Mesaj: RASİMPEH

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi