• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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

Katılım
7 Şubat 2021
Mesajlar
55
Excel Vers. ve Dili
2021
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

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:
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
 
Eyvallah üstadım Süpersin. Eline sağlık
 
Geri
Üst