ADO işlemlerinde düzensiz verilerde gruplandırma

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,190
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba;

Ekli dosyada düzensiz olan verilerin adresini yazarak ADO yöntemi ile başka bir sayfaya alabiliyoruz,

bazı durumlarda GROUP BY fonksiyonu ile belli alanlara göre gruplamak gerekebiliyor,

Alan başlıklarında herhangi bir başlık yazmadığı için; bu GROUP BY işlemini yapamadım

Ekli dosya Sayfa1' de D sütununa göre gruplandırarark, E sütununun toplam değerleri nasıl alabiliriz?

SELECT Urun_adi, SUM(Adet) FROM Sayfa1$ Group By Urun_adi

bu sorguyu uyarlamak istemiştim. yalnız başlıklar olmayınca beceremedim.

teşekkürler,

Kod:
    tbl = "[Sayfa1$A13:E" & LR & "]"
    

       strSQL = "Select * from " & tbl
       
           Set RS = Conn.Execute(strSQL)

    SH2.Range("A2").CopyFromRecordset RS
iyi pazarlar.
 

Ekli dosyalar

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,190
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba;

Ekli dosyada düzensiz olan verilerin adresini yazarak ADO yöntemi ile başka bir sayfaya alabiliyoruz,

bazı durumlarda GROUP BY fonksiyonu ile belli alanlara göre gruplamak gerekebiliyor,

Alan başlıklarında herhangi bir başlık yazmadığı için; bu GROUP BY işlemini yapamadım

Ekli dosya Sayfa1' de D sütununa göre gruplandırarark, E sütununun toplam değerleri nasıl alabiliriz?

SELECT Urun_adi, SUM(Adet) FROM Sayfa1$ Group By Urun_adi

bu sorguyu uyarlamak istemiştim. yalnız başlıklar olmayınca beceremedim.

teşekkürler,

Kod:
    tbl = "[Sayfa1$A13:E" & LR & "]"
   

       strSQL = "Select * from " & tbl
      
           Set RS = Conn.Execute(strSQL)

    SH2.Range("A2").CopyFromRecordset RS
iyi pazarlar.
Aşağıdaki gibi en üst satıra sanal başlık yazdırarark çözüm ürettim, yalnız farklı çözüm olabilir mi bilemiyorum

Her şey için teşekkürler,

Kod:
    SH.Rows("13:13").ClearContents
    
    For i = 1 To 7
        SH.Cells(13, i) = "FFF_" & i
    Next i
    
    LR = SH.Cells(SH.Rows.Count, "A").End(xlUp).Row
    If LR < 14 Then Exit Sub

    tbl = "[Sayfa1$A13:G" & LR & "]"
    
    strSQL = "Select FFF_4,format(FFF_7,'dd.mm.yyyy') as dt, SUM(FFF_5) As Toplam from " & tbl & "  Group By FFF_4,format(FFF_7,'dd.mm.yyyy')"

           Set RS = Conn.Execute(strSQL)

    SH2.Range("A2").CopyFromRecordset RS
 

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,408
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhaba,
bağlantı parametresinde Hdr=NO değişikliği yaparak
Kod:
strSQL = "Select [F4],sum([F5])as t from " & tbl & " group by [F4]"
şeklinde toplam değeri alabilirsiniz.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,190
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
bağlantı parametresinde Hdr=NO değişikliği yaparak
Kod:
strSQL = "Select [F4],sum([F5])as t from " & tbl & " group by [F4]"
şeklinde toplam değeri alabilirsiniz.
Mehmet Hocam Çok Teşekkürler,
müsaadelerinizle ilave bir husus daha soracağım,
Sorgunun içine tarihi de dahil edince, sonuç olarak tarih bilgisi hücreye sola yanaşık geliyor, hücreye doğrudan yazarken sağa yanaşık yazılmakta;

bu duurmu nasıl düzeltebiliriz,

tekrar teşekkürler,

Kod:
   strSQL = "Select format([F7],'dd.mm.yyyy') as dt, [F4],sum([F5])as t from " & tbl & _
    " group by [F4],format([F7],'dd.mm.yyyy')"
iyi pazarlar.
 

Ekli dosyalar

Mehmet Şahin

Destek Ekibi
Destek Ekibi
Katılım
13 Ekim 2005
Mesajlar
1,408
Excel Vers. ve Dili
Excel 2010 - 2013 Türkçe - İngilizce
Merhabalar,
.CopyFromRecordset metodunu neredeyse hiç kullanmadım.
Bunun yerine, döngü ile istediğim alanı istediğim formatla yazdırdım.
Bence siz de düşünün.
 
Katılım
15 Mart 2005
Mesajlar
387
Excel Vers. ve Dili
Microsoft 2016 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

C++:
...............
SH2.Range("A2").CopyFromRecordset RS
SH2.Columns(1).HorizontalAlignment = xlRight
...............
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,367
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formatladığınız için TEXT olarak dönüyor. Aşağıdaki gibi sayısal olarak sonuç alabilirsiniz.

C++:
    strSQL = "Select CDate(format([F7],'dd.mm.yyyy')) as dt, [F4],sum([F5])as t from " & tbl & _
    " group by [F4],CDate(format([F7],'dd.mm.yyyy'))"
 
Üst