• DİKKAT

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

ADO kullanarak boş satır silme ve sütun başlıklarını değiştirme

Katılım
12 Ağustos 2022
Mesajlar
98
Excel Vers. ve Dili
2013 TÜRKÇE
Merhaba arkadaşlar.

ADO kullanarak aşağıdaki örnek tablodaki Kurum_Kodu sütunu boş ise satırları silmek ve bazı sütun adlarını (Türü başlığını Kurum_Türü, Kurum_Adı başlığını ise Okul_Adı) olarak değiştirmek istiyorum.

Üzerinde çok uğraştım fakat bir sonuca ulaşamadım.

Yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

Sayfa1 e listeleme yapacaktır.

Kod:
Sub test()
    Dim rs As Object, strSQL$, i
    With CreateObject("ADODB.Connection")
        Set rs = CreateObject("ADODB.Recordset")
        .Open "Provider=Microsoft.Ace.Oledb.12.0;Extended Properties='Excel 12.0;HDR=Yes';" & _
              "Data Source=" & ThisWorkbook.FullName

        strSQL = "SELECT KURUM_KODU,TİPİ,İLÇE,GENEL_MÜDÜRLÜK,TÜRÜ AS KURUM_TÜRÜ,KURUM_ADI AS OKUL_ADI,SINIF_1, " & _
                 "SINIF_ŞUBE,YAŞ,SINIF_2,EĞİTİM_KADEMESİ,ERKEK_ÖĞRENCİ,KIZ_ÖĞRENCİ,TOPLAM_ÖĞRENCİ,TOPLAM_ŞUBE " & _
                 "FROM [ÖĞRENCİ_SAYILARI$A5:O] WHERE NOT KURUM_KODU IS NULL "
        Set rs = .Execute(strSQL)
    End With

    With Sheets("Sayfa1")
        .Cells.ClearContents
        For i = 0 To rs.Fields.Count - 1
            .Cells(5, i + 1).Value = rs.Fields(i).Name
        Next i
        .Range("A6").CopyFromRecordset rs
        .Range("A5").CurrentRegion.Columns.AutoFit
    End With
    Set rs = Nothing
End Sub
 
Hocam teşekkür ederim
Başka sayfaya atmadan dosya üzerinde işlem yapıp kaydedip çıkılmaz mı
 
bildiğim kadarıyla ADO kullanarak excel sayfasındaki veriler silinemiyor, en fazla ilgili satırdaki tüm veriler UPDATE sorgusu ile boşaltılabiliyor. boş satırları silebilmek için
1 - ilgili sütundaki verinin diziye aktarılıp sondan başa doğru gidilerek o hücre boş ise silinmesi sağlanabilir, yada
2 - vba kodları ile veriler filtrelenerek görünen satırların silinmesi sağlanabilir
 
Merhaba;

Excel dosyası Sql yürütülebiliyor olmasına rağmen gerçek anlamda bir veritabanı olmadığından satır silmek için "DELETE" komutu desteklemez. Her INSERT komutundan sonra satır sayısı sürekli büyür. Dosyayı fiziksel olarak açıp satırları elle silmek zorundasınız.

Kolon adı belki ADOX kütüphanesi ile değiştirilebilir olsa da, böyle bi değişikliğe sık ihtiyaç duyulmadığından gerekliliği tartışılır...

.
 
Hocam, açıklamalarınız için teşekkür ederim.

Yaklaşık 50 bin satırlık birden çok dosyada VBA ile başlıkları değeştirip boş satırları silip bu dosyaları birleştiriyorum. Fakat çok yavaş olduğundan ADO ile bunu daha hızlı yapabilirim diye düşünmüştüm.
 
100 satırlık 3-5 dosya paylaşarak ulaşmak nihai sonucu örneklerseniz belki hızlı sonuçlar alınabilecek yöntem üretilebilir.
 
Geri
Üst