Sayfadaki verileri kapalı Excel tablosuna ekleme

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Açık bulunan excel dosyasındaki 2. satırdaki verileri;
ekli görselde verilen formatla bire bir aynı (sütun başlıkları aynı) diğer excel dosyasının Data adındaki sayfaya eklemek için aşağıdaki kodu oluşturmuştum,
ekli hata mesajını alıyorum,
nasıl bir süzenleme yapmak gerekecektir?

Kod:
    Set My_Conn = VBA.CreateObject("AdoDb.Connection")
    Set My_RS = VBA.CreateObject("AdoDb.Recordset")
 
 
    My_Conn.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
    myFile & ";Extended Properties=""Excel 12.0;Hdr=Yes"""
    
    
    str1 = "'" & SH.Cells(2, 1) & "'"
    str2 = SH.Cells(2, 2)
    str3 = SH.Cells(2, 3)
    str4 = "'" & SH.Cells(2, 4) & "'"
    str5 = "'" & SH.Cells(2, 5) & "'"
    str6 = SH.Cells(2, 6)
    str7 = SH.Cells(2, 7)
    str8 = SH.Cells(2, 8)
    
    
   strSQL = "INSERT INTO [Data$] VALUES (str1, str2, str3, str4, str5, str6, str7, str8)"
                                    
    Set My_RS = My_Conn.Execute(strSQL)
Teşekkürler,
iyi Çalışmalar.
 

Ekli dosyalar

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Açık bulunan excel dosyasındaki 2. satırdaki verileri;
ekli görselde verilen formatla bire bir aynı (sütun başlıkları aynı) diğer excel dosyasının Data adındaki sayfaya eklemek için aşağıdaki kodu oluşturmuştum,
ekli hata mesajını alıyorum,
nasıl bir süzenleme yapmak gerekecektir?

Kod:
    Set My_Conn = VBA.CreateObject("AdoDb.Connection")
    Set My_RS = VBA.CreateObject("AdoDb.Recordset")


    My_Conn.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
    myFile & ";Extended Properties=""Excel 12.0;Hdr=Yes"""
   
   
    str1 = "'" & SH.Cells(2, 1) & "'"
    str2 = SH.Cells(2, 2)
    str3 = SH.Cells(2, 3)
    str4 = "'" & SH.Cells(2, 4) & "'"
    str5 = "'" & SH.Cells(2, 5) & "'"
    str6 = SH.Cells(2, 6)
    str7 = SH.Cells(2, 7)
    str8 = SH.Cells(2, 8)
   
   
   strSQL = "INSERT INTO [Data$] VALUES (str1, str2, str3, str4, str5, str6, str7, str8)"
                                   
    Set My_RS = My_Conn.Execute(strSQL)
Teşekkürler,
iyi Çalışmalar.
Sorun 1. nolu syntax şekilde çözüldü.
Hız açısından 1. nolu yöntem ile 2 nolu yöntem arasında hangisi avantajlıdır. sizce hangisini tercih etmeliyim.

teşekkürler, iyi akşamalar.

1.
Kod:
    veri = str1 & "," & str2 & "," & str3 & "," & str4 & "," & str5 & "," & str6 & "," & str7 & "," & str8 
   strSQL = "INSERT INTO [Data$] VALUES (" & veri & ")"

2
.
Kod:
   strSQL = "SELECT * FROM [Data$]"
                                    
   My_RS.Open strSQL, My_Conn, 1, 3
   
 With My_RS
    .AddNew
    
    .Fields(0) = str1
    .Fields(1) = Format(Now, "dd.mm.yyyy hh:mm:ss")
    .Fields(2) = str3
      ......
      .............
    .Update
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,249
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İki kodun başına "Zaman" sayacı koyarak işlem süresinde olabilecek farkı test edebilirsiniz.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
İki kodun başına "Zaman" sayacı koyarak işlem süresinde olabilecek farkı test edebilirsiniz.
Korhan Hocam bahsetmiş olduğunuz testi yapınca;
Kod:
 strSQL = "INSERT INTO [Data$] VALUES (" & veri & ")"
biraz daha hızlı görünüyor. 15%-20% gibi...
teşekkürler,
 
Üst