Acses veri tabanından yıllara göre ay sorgusu

Bilgemen

Altın Üye
Katılım
7 Şubat 2021
Mesajlar
54
Excel Vers. ve Dili
2021
Altın Üyelik Bitiş Tarihi
03-01-2026
Merhaba Arkadaşlar.
Ekte eklediğim dosyada yılı seçtiğim zaman o yıla ait tabloda belirtilen aylardan kaç adet işlem olduğunu yani sayıyı gösteren bir tablo hazırlıyorum
Fakat tür uyuşmazlığı hatası alıyorum.
Yardımınızı rica ederim




Sub hazirla()
Dim baglan As Object
Dim rs As Object
Dim rs1 As Object
Dim aranacakyil As Integer
Dim ocakayi As Long
Dim subatayi As Long

' ADO sabitlerini tanımla
Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set rs = CreateObject("ADODB.Recordset")
Set baglan = CreateObject("ADODB.Connection")

' Access veritabanını aç
baglan.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Datalar.accdb"

' Seçilen yılı al
aranacakyil = Me.arayil.value

' Ocak ayının sayısını sorgula
Sql = "SELECT COUNT(Yil) FROM Sikayetler WHERE Yil = " & aranacakyil & " AND Ay = 'Ocak'"
rs.Open Sql, baglan, adOpenKeyset, adLockOptimistic

sql1 = "SELECT COUNT(Yil) FROM Sikayetler WHERE Yil = " & aranacakyil & " AND Ay = 'Şubat'"
rs1.Open sql1, baglan, adOpenKeyset, adLockOptimistic
' Ocak ayı sayısını al
ocakayi = rs.Fields(0).value
subatayi = rs1.Fields(0).value

' Sonucu lblocak etiketine yaz
Me.lblocak.Caption = ocakayi
Me.lblsubat.Caption = subatayi

' Kaynakları serbest bırak
rs.Close
rs1.Close
baglan.Close
Set rs = Nothing
Set rs1 = Nothing
Set baglan = Nothing
End Sub


 

Ekli dosyalar

Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Aşağıdaki SQL Metni 2000 yılında veri girilmiş aylara göre işlem sayısını verir.
Kod:
SELECT Ay, Count(Ay) AS Sayay
FROM Sikayetler
WHERE Yil =2000
GROUP BY Ay
Ocak ve şubat ayları ile kısıtlanmış
Kod:
SELECT Ay, Count(Ay) AS Sayay
FROM Sikayetler
WHERE Yil=2000 AND Ay='ocak' OR Ay='şubat'
GROUP BY Ay
 
Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub hazirla()
    Dim baglan As Object
    Dim rs As Object
    Dim aranacakyil As Integer
    Dim sql$, i%, c
    ' ADO sabitlerini tanımla
    Const adOpenKeyset = 1
    Const adLockOptimistic = 3

    Set rs = CreateObject("ADODB.Recordset")
    Set baglan = CreateObject("ADODB.Connection")

    ' Access veritabanını aç
    baglan.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Datalar.accdb"

    ' Seçilen yılı al
    aranacakyil = Me.arayil.value

    sql = "SELECT ay,yil, count(yil) as Say FROM Sikayetler WHERE yil='" & Trim(aranacakyil) & "' GROUP By ay, yil"
    rs.Open sql, baglan, adOpenKeyset, adLockOptimistic

    For Each c In Array(lblocak, lblsubat, lblmart, lblnisan, lblmayıs, lblhaziran, lbltemmuz, lblagustos, lbleylül, lblekim, lblkasım, lblaralık)
        i = i + 1
        c.Caption = ""
        rs.Filter = ("ay='" & Format(DateSerial(2024, i, 1), "mmmm") & "'")
        If Not rs.EOF Or Not rs.BOF Then c.Caption = rs.Fields("say").value
    Next c

    rs.Close

    baglan.Close
    Set rs = Nothing

    Set baglan = Nothing
End Sub
 

Bilgemen

Altın Üye
Katılım
7 Şubat 2021
Mesajlar
54
Excel Vers. ve Dili
2021
Altın Üyelik Bitiş Tarihi
03-01-2026
Eyvallah üstadım Süpersin. Eline sağlık
 
Üst