• DİKKAT

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

Sayfadaki verileri kapalı Excel tablosuna ekleme

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,202
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

  • 12.JPG
    12.JPG
    72.4 KB · Görüntüleme: 9
  • 10.JPG
    10.JPG
    29.3 KB · Görüntüleme: 9
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
 
İki kodun başına "Zaman" sayacı koyarak işlem süresinde olabilecek farkı test edebilirsiniz.
 
İ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,
 
Geri
Üst