Terima kasih Mr. Kid atas penjelasannya yang tidak mudah kami dapatkan dari 
internet.
Sebagian Code dari file yang saya kirim terdahulu, "scon" nya (huruf miring 
berrwarna) ada tambahan "Xml" di belakang versi Excel (Excel 12.0),cn.Open 
"Provider=Microsoft.ACE.OLEDB.12.0;" & _            "Data Source=" & 
ThisWorkbook.FullName & ";" & _            "Extended Properties=""Excel 12.0 
Xml;HDR=YES"";"Saya menggunakan Excel 2013.
Yang ingin saya tanyakan:Apa fungsi "Xml" di sini ?
Terima kasih.
Salam,HK

    On Monday, 15 January 2018, 7:56:38 PM GMT+7, 'Mr. Kid' mr.nm...@gmail.com 
[belajar-excel] <belajar-excel@yahoogroups.com> wrote:  
 
     

Wa'alaikumussalam wr wb

Hai Tio,

1. Contoh ADO dan DAO
> File kerja wbkApp.xlsm; File Data E:\wbkDT.xls sheet DATA
   hasil di wbkApp.xlsm sheet HASIL, dengan record pertama di range A2> ADO 
   'pakai 3 baris berikut jika di VBE -> Tools -> references -> sudah dipilih 
Ms ActiveX Data Object versi tetrtinggi yang ada   '>> kalau dicentang sendiri 
di references, lalu komputer lain tidak punya, maka akan error.
       dim cn as adodb.connection, rs as adodb.recordset,sCon as string, sQ as 
string
       set cn=new adodb.connection       set rs=new adodb.recordset
   'kalau tidak mau repot pakai centang references, pakai 3 baris ini : [late 
binding]   '>> untungnya, references selalu dipilihkan yang terbaru oleh OS 
       dim cn as adodb.connection, rs as adodb.recordset,sCon as string, sQ as 
string       set cn=createobject("adodb.connection")       set 
rs=createobject("adodb.recordset")
   'connection string dan query untuk koneksi data   'Connection string : 
[ganti path dan nama file sesuai kebutuhan] [pilih salah satu]
       scon="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, 
*.xlsb)};DBQ=E:\wbkDT.xls;"     'driver ODBC (direkomendasikan)

       'driver OLEDB,xl2007 ke atas, ganti 8.0 menjadi 12.0, sesuaikan 
OLEDB.12.0 dengan yang ada di komputer setempat       
scon="Provider=Microsoft.ACE.OLEDB..12.0;Data Source=E:\wbkDT.xls;Extended 
Properties=""Excel 8.0;HDR=YES"";"    

   'query      sq="SELECT a.* FROM [DATA$] as a"
   'buka koneksi dan ambil recordset      cn.open scon      rs.open sQ, cn , 1 
, 3       '1 : cursor type Open Keyset ; 3 : lock type Optimistic

   'paste ke range a2      sheets("hasil").range("a2").copyfromrecordset rs
    'tutup      rs.close      cn.close
    'jika perlu cleanup      set rs=nothing      set cn=nothing
> DAO [sangat cepat untuk data MS Access, Excel, dan text file]   'A. khusus 
> untuk file xl2003 ke bawah saja 
    'pastikan referensi yang dicentang adalah Ms Data Access Object terbaru 
(3.6 kalo gak salah)
       dim db as DAO.database, rs as DAO.recordset

    'buka db file dan ambil recordset [sesuaikan nama file]
       set db=OpenDatabase( "E:\wbkDT.xls" , false, true , "Excel 8.0;HDR=YES;" 
)     'kalau data tidak punya header, set HDR dengan NO, false : opsi untuk 
shared mode, true : read only       set rs=db.openrecordset( "DATA$" )      
'nama sheet bisa diganti query, cursor type juga bisa dtentukan, tapi contoh 
ini pakai default-nya
   'B. untuk file xl2002 ke atas
    'pastikan referensi yang dicentang adalah Ms Data Access Object terbaru 
(3.6 kalo gak salah)
       dim db as DAO.database, rs as DAO.recordset
       dim ws as DAO.workspace
    'buka db file dan ambil recordset [sesuaikan nama file]
       set ws=createworkspace( "" , "" , "" , 1 )      ' nama workspace : "" , 
user : "" , pwd : "" , type : odbc  [selainnya adalah 2, untuk Jet (khusus 
database engine MS Access)
       '  nama file db atau dsn odbc : ""  , options : kosong , readonly : 
kosong , connection string       set db=ws.opendatabase( "" ,  ,  ,  
"ODBC;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, 
*.xlsb)};Dbq=E:\wbkDT.xls;"  )  
       set rs=db..openrecordset( "SELECT a.* FROM [DATA$] as a" )

  '>langkah selanjutnya<'
   'paste ke range a2      sheets("hasil").range("a2").copyfromrecordset rs
    'tutup      rs.close      db.close
    'jika perlu cleanup      set rs=nothing      set db=nothing
2. Syarat : > ADO : 
       a. di komputer telah ter-install dan terregister library Ms ActiveX Data 
Objects       b. pilih connection string yang sesuai dengan driver-nya (ODBC 
atau OLEDB)    
       c. bisa semua versi Excel, dengan mengatur nilai parameter pada bagian 
ExtendedProperties jika pakai OLE DB> DAO       a. di komputer telah 
ter-install dan teregister library Ms Data Access Object       b. pastikan 
telah mencentang referensi library Ms Data Access Object, karena menggunakan on 
the fly pun sama beresikonya (kalau ADO bisa lebih luwes)
       c. khusus untuk koneksi ke database berupa file seperti MS Access, 
textfile, Excel versi 2003 ke bawah (yang di-save as versi 2003 ke bawah), 
pakai cara A
       d. khusus untuk koneksi ke database berupa file seperti MS Access, 
textfile, Excel versi 2002 ke atas (yang di-save as sesuai versinya), pakai 
cara B

3. Referensi yang harus dicentang bisa dilihat di nomor 1 dan nomor 2. ADO 
berpotensi tidak perlu mencentang, yaitu dengan createobject (lihat nomor 1)

4. Kecepatan :      DAO lebih cepat dari ADO ketika mengkoneksi MS Access, Text 
File, dan Excel
      ADO secara umum lebih cepat dari DAO ketika mengkoneksi DBMS Oracle, MS 
SQL Server, MySQL, dan beberapa DBMS lain      umumnya yang digunakan adalah 
ADO dengan driver ODBC. Untuk ADO dengan driver OLE DB ke produk Ms SQL Server 
lebih cepat dibanding ODBC kecuali saat mengeksekusi stored procedure

Wassalamu'alaikum wr wbKid


2018-01-15 11:45 GMT+07:00 Tio Adi Bayu Adjie tio.ad...@ptssb.co.id 
[belajar-excel] <belajar-excel@yahoogroups.com>:

     


Assalamu Alaikum Wr. Wb.

 

Dear Be-Exceller,

Saya tertarik dengan contoh consolidate terlampir yang diberikan Pak Hendrik 
sebelumnya tentang Consolidate dengan menarik data dari worksheet lain dengan 
ADO. Yg mau saya tanyakan.

1.      Adakah contoh sederhana tentang import data sederhana (bukan 
consolidate) dari workbook lain dengan ADO dan dengan DAO ?

2.      Apakah ada syarat tertentu, seperti excel versi 2010 atau versi yg 
lebih tinggi atau bisa dengan versi yang lebih rendah ?

3.      Apakah ada reference tertentu yang harus di centang, seperti Microsoft 
office 14.0 Object Library atau reference lainnya ?

4.      Import data mana yang lebih cepat, dengan ADO atau DAO ?

 

 

Terima Kasih

Wassalamu alaikum Wr. Wb.

 

Best Regards,

Tio Adi Bayu Adjie

 


   

    
  • Re: [belajar-exce... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
    • Re: [belajar... hendrik karnadi hendrikkarn...@yahoo.com [belajar-excel]
      • Re: [bel... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
        • Re: ... hendrik karnadi hendrikkarn...@yahoo.com [belajar-excel]
          • ... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
            • ... hendrik karnadi hendrikkarn...@yahoo.com [belajar-excel]
    • RE: [belajar... Tio Adi Bayu Adjie tio.ad...@ptssb.co.id [belajar-excel]
      • Re: [bel... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]

Kirim email ke