• DİKKAT

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

VBA - SQL Sorgu sonucu kayıt sayısının -1 gelmesi

  • Konbuyu başlatan Konbuyu başlatan utferd
  • Başlangıç tarihi Başlangıç tarihi
Katılım
13 Aralık 2012
Mesajlar
2
Excel Vers. ve Dili
2007 - Türkçe
İyi günler,

Aşağıdaki gibi sql sorgusundan gelen sonucu Excel dosyasında satır satır yazdırmak istediğim bir kod var.

Fakat normalde bu sorgu sonucunda 29 civarında kayıt gelirken, aşağıdaki işlemde herhangi bir kayıt gelmiyor. Adım adım izlediğimde ise rst.recordcount kısmında -1 sonucu dönüyor. Bu sebeple döngü dışına çıkıyor.

Recordsette yorum satırı olarak belirttiğim basit bir sorguyu çalıştırdığımda excel sayfasına istediğim verileri döktürebiliyorum.

Bunun neden kaynaklandığı ile ilgili bir fikri olan var mıdır?

Kod:
rst.Open "SELECT IT.CODE KOD FROM TransactionLine AS TRL " & _
            "LEFT OUTER JOIN Items AS IT ON TRL.ItemID=IT.OID " & _
            "LEFT OUTER JOIN [Transaction] as TRN ON TRN.OID = TRL.TransactionID " & _
            "WHERE TRN.Number = 'ST00000372' " & _
            "GROUP BY IT.CODE", conn, 1, 3
    [I]'rst.Open "SELECT NUMBER KOD FROM [Transaction] WHERE Number LIKE 'UG00002%'", conn, 1, 3[/I]
    If rst.RecordCount > 0 Then
        sno = 3
        With rst
            Do While Not (rst.EOF)
                Sayfa1.Cells(sno, 2) = rst("KOD").Value
                rst.MoveNext
                sno = sno + 1
            Loop
        End With
        
    rst.MoveFirst
    End If
    
    rst.Close
 
Kod:
GROUP BY IT.CODE
kısmını kaldırarak deneyin.
İyi çalışmalar.
 
Mehmet bey, group by ifadesini kaldırarak çalıştırdığımda verileri çekiyor.

Fakat gelen veriler arasında tekrar eden kayıtlar olduğu için group by ifadesini kullanmıştım. Bunun yerine DISTINCT kullanayım dediğimde de ilk durumla karşılaşıyorum.

GROUP BY ve DISTINCT ifadelerinin bu şekilde bir engele sebep olmasının sebebi ne olabilir?

Yardımlarınız için teşekkür ederim.
 
gruplanarak alınan verilerde sum, count, distinct gibi sonuçları görüntüleyebilirsiniz.
"select it.code,count(it.code)as sayi.." şeklinde başlayıp, sonunda da yukarıdaki grup ifadesini kullanırsanız it.code gruplarına ait kaç tane kayıt olduğunu görebilirsiniz.
 
Geri
Üst