Cara menggunakan ADOX dengan Data Excel dari Visual Basic atau VBA

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 303814 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Objek Data ActiveX ekstensi untuk Data definisi bahasa dan keamanan (ADOX) memberikan pengembang objek Data ActiveX (ADO) kemampuan yang hadir dalam objek akses Data (DAO) untuk memanipulasi database, meja, bidang dan objek database lain pemrograman. Sejak rilis Microsoft OLE penyedia DB untuk Jet versi 4.0, yang mendukung pengandar Islam TERPADU yang menggunakan mesin Jet dengan desktop database selain Microsoft Access, ADO pengembang telah mampu menggunakan ADO dan ADOX dengan buku kerja Microsoft Excel dan lembar kerja.

Namun, karena lembar kerja Excel tidak biasa database, ADO memiliki beberapa keterbatasan bila digunakan dengan Excel. Khususnya, banyak ADOX metode tidak bekerja atau memberikan hasil yang tak terduga ketika mereka sedang digunakan dengan Excel. Artikel ini dokumen banyak keterbatasan ADOX dan Excel. Untuk informasi tambahan tentang penggunaan ADO dengan Excel, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
257819 Bagaimana menggunakan ADO dengan Data Excel dari Visual Basic atau VBA
Artikel ini dibagi menjadi bagian berikut:

CATATAN: Pengujian untuk artikel ini dilakukan pada Microsoft Windows 2000 Server Service Pack 2 (SP2) dengan Microsoft Data akses komponen (MDAC) 2.6 SP1, Microsoft Visual Basic 6 SP5, dan Microsoft Excel 2002 (XP). Artikel ini tidak dapat mengakui atau mendiskusikan perbedaan dalam perilaku yang pengguna dapat mengamati dengan versi yang berbeda dari Windows, MDAC, Visual Basic, atau Excel.

INFORMASI LEBIH LANJUT

ADOX katalog

Dalam model objek ADOX, Katalog objek mewakili database atau, dalam kasus Excel, buku kerja.
  • Anda dapat menggunakan ADO Sambungan objek atau sambungan string untuk membuat atau membuka Katalog objek. Contoh kode berikut menggambarkan bagaimana membuka Book1.xls sebagai ADOX Katalog:
    Dim cat As ADOX.Catalog
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"
    					
  • The Katalog objek telah Buat metode tetapi tidak memiliki Hapus metode.

Menciptakan sebuah katalog

Anda tidak dapat menggunakan Buat metode ADOX Katalog objek untuk membuat buku kerja Excel baru. Jika Anda mencoba untuk melakukannya, Anda akan menerima pesan galat berikut ini:
Operasi tidak didukung untuk jenis objek.
Anda dapat, namun, buat buku kerja Excel baru dengan menentukan nama file buku kerja baru untuk katalog Anda dan menambahkan setidaknya satu meja ke katalog baru, menggunakan teknik-teknik yang dibahas di bawah ini. Metode ini akan membuat buku kerja baru dengan hanya lembar kerja yang telah dibuat sebagai ADOX tabel; dengan kata lain, jumlah default lembaran kosong yang ditetapkan untuk buku kerja Excel baru melalui Excel Opsi kotak dialog tidak bisa ditambahkan.

ADOX Tables

ADOX Tabel objek dengan salah satu objek Excel (, lembar kerja atau rentang) yang dapat berfungsi sebagai wadah untuk data.

Membuat tabel

Anda dapat menggunakan ADOX untuk membuat tabel baru di Excel. Karena Anda tidak dapat membuat tabel tanpa juga membuat kolom, sampel kode muncul di "ADOX kolom"bagian.
  • Membuat tabel ADOX yang baru menciptakan lembar kerja yang baru dan baru kisaran bernama pada lembar kerja baru dengan nama yang ditentukan. Kisaran bernama baru meliputi hanya judul kolom. Sebagai contoh, jika Anda membuat sebuah tabel (lembar kerja) yang bernama MyTable dengan dua kolom, kisaran bernama MyTable, yang didefinisikan sebagai MyTable!$ $1:$ B$ 1, juga dibuat.
  • Anda dapat menentukan nama tabel yang mencakup ruang; Namun, ADOX menggantikan ruang dengan tanda garis bawah lembar kerja dan berbagai nama yang Anda buat.
  • Lembar kerja baru dibuat sebagai lembar terakhir di buku kerja, nomor default kosong lembar yang ditentukan dalam Excel pilihan untuk buku kerja baru.
  • Jika Anda mencoba untuk membuat sebuah tabel baru jika buku kerja terbuka di Excel, Anda menerima pesan galat berikut:
    Unspecified error.
  • Jika Anda mencoba untuk membuat sebuah tabel yang memiliki kolom tidak didefinisikan, tampaknya untuk berhasil, tetapi sebenarnya tidak dibuat.
  • Jika Anda mencoba untuk mengubah nama tabel yang ada, Anda akan menerima pesan galat berikut ini:
    Operasi tidak didukung untuk jenis objek.

Menghapus tabel

Anda tidak dapat menggunakan ADOX untuk menghapus tabel (lembar kerja) atau bernama kisaran di Excel, apakah atau tidak ADOX menciptakannya.
  • Jika Anda mencoba untuk menghapus lembar kerja (MyTable$), tampaknya berhasil tanpa kesalahan, tetapi tetap lembar kerja di buku kerja. Anda dapat menghubungi Hapus metode berulang kali tanpa kesalahan, tetapi tidak berpengaruh.
  • Jika Anda mencoba untuk menghapus kisaran (MyTable), tampaknya berhasil tanpa kesalahan, tetapi kisaran tetap di buku kerja. Namun, jika Anda mencoba untuk menghapus kisaran kedua kalinya, Anda menerima galat 3265:
    Item tidak dapat ditemukan dalam koleksi sesuai dengan nama diminta atau urutan.
  • Jika Anda mencoba untuk menghapus kisaran bernama, meninggalkan definisi kisaran bernama utuh, tapi data dalam kisaran dihapus.

ADOX kolom

Kolom ADOX sesuai dengan kolom atau kolom di database dan rapi sesuai dengan kolom lembar kerja Excel.

Tipe Data BASI yang digunakan dengan Excel

ADO mengakui enam jenis data dalam Excel datasource yang dapat Anda gunakan untuk menciptakan kolom:

  • adDouble, ketik 5
  • adDate, ketik 7
  • adCurrency, ketik 6
  • adBoolean, tipe 11
  • adVarWChar, ketik 202
  • adLongVarWChar ("memo"), ketik 203

Kolom secara umum

  • Anda dapat menambahkan kolom tambahan ke meja diciptakan sebelumnya selama tabel tidak berisi setiap baris data.
  • Anda dapat menentukan nama kolom yang menyertakan spasi.
  • ADOX selalu menciptakan judul kolom yang diawali dengan tanda kutip tunggal ('), misalnya, ' F1, ' Col1, ' Col2. Namun, ini tidak muncul untuk menimbulkan masalah kemudian karena nama diperoleh tanpa tanda kutip.

Menciptakan kolom ketika membuat tabel

Menciptakan kolom terbaik bila dilakukan pada waktu yang sama sebuah tabel baru dibuat dengan menggunakan ADOX.

Kode berikut menciptakan tabel baru (lembar kerja) yang berisi dua kolom (satu angka dan satu teks):
    Dim cat As ADOX.Catalog
    Dim tbl As ADOX.Table
    Dim col As ADOX.Column
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"
    Set tbl = New ADOX.Table
    tbl.Name = "TestTable"
    Set col = New ADOX.Column
    With col
        .Name = "Col1"
        .Type = adDouble
    End With
    tbl.Columns.Append col
    Set col = Nothing
    Set col = New ADOX.Column
    With col
        .Name = "Col2"
        .Type = adVarWChar
    End With
    tbl.Columns.Append col
    cat.Tables.Append tbl
				

Menciptakan kolom di lembar kerja yang ada

Menambahkan kolom untuk pra-ada, kosong lembar kerja menghasilkan hasil yang tidak biasa. Ketika kolom ADOX pertama ditambahkan ke koleksi kolom tabel, ADOX pertama menciptakan kolom header bernama F1 di kolom a lembar kerja dan kemudian membuat header kolom ADOX baru dalam kolom b dari lembar kerja. Dengan demikian, kode ADOX yang menambahkan dua kolom baru hasil dalam tiga kolom header. Jika Anda mencoba untuk menghapus ini yang tidak diinginkan, kolom pertama dari koleksi kolom sebelum Anda menambahkan kolom ADOX pertama, tampaknya untuk berhasil, tetapi tidak diinginkan kolom dibuat tetap.

Menghapus kolom

Anda tidak dapat menghapus kolom dari tabel ADOX di Excel.
  • Jika kolom memiliki tidak ada data, ini tampaknya berhasil tanpa kesalahan, tetapi kolom dan kolom header tetap.
  • Jika kolom berisi data, Hapus operasi gagal dengan pesan galat berikut:
    Operasi tidak sah.

Mengubah jenis Data yang ada kolom

Setelah kolom telah ditambahkan ke meja, jika Anda mencoba untuk mengatur dengan.Tipe properti ke tipe data yang berbeda, Anda menerima pesan galat berikut:
Operasi tidak diperbolehkan dalam konteks ini.

Menambahkan Data untuk tabel Excel dan kolom

Bila Anda menguji ADO kode dengan Excel dalam lingkungan desain Visual Basic, pertama kalinya bahwa Anda menjalankan operasi recordset, Anda mungkin menerima pesan galat berikut:
Dipilih menyusun urutan tidak didukung oleh sistem operasi.
Anda dapat mengabaikan pesan galat ini; kesalahan ini tidak terjadi setelah aplikasi dikompilasi. Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
246167 PRB: Collating urutan kesalahan pembukaan ADODB Recordset pertama kalinya melawan Excel XLS

Menambahkan Data ke Excel kolom yang dibuat oleh ADOX

Ketika Anda menggunakan ADO untuk memasukkan atau mengubah data di tabel dan kolom yang telah Anda buat di Excel menggunakan ADOX, ADO menghormati tipe data yang Anda tentukan untuk kolom tersebut, meskipun tidak jelas di mana informasi ini disimpan.
  • Semua nilai-nilai string teks yang disimpan didahului oleh tanda kutip tunggal. Namun, ini tidak muncul untuk menimbulkan masalah kemudian karena nilai diperoleh tanpa tanda kutip.
  • Jika Anda mencoba untuk memasukkan string teks ke dalam kolom yang didefinisikan sebagai angka, atau angka ke dalam kolom teks, Anda menerima galat 80040e21:
    Operasi multi-langkah menghasilkan kesalahan. Periksa status setiap nilai.

Menambahkan Data ke biasa Excel kolom

Ketika Anda menggunakan ADO untuk memasukkan atau mengubah data di lembar kerja Excel atau rentang yang tidak diciptakan atau diubah menggunakan ADOX, tidak ada larangan diberlakukan pada jenis data yang Anda dapat menyisipkan.
  • Teks string disimpan tanpa tanda kutip tunggal sebelumnya.
  • Nomor muncul selaras kiri. Di Excel 2002, nomor yang ditandai dengan Tag pintar yang memperingatkan "Nomor disimpan sebagai teks". Ini dapat menyebabkan masalah kemudian ketika Anda bekerja dengan data, terutama jika data telah tersimpan di Excel untuk analisis numerik.

Menggunakan SQL membuat, mengubah, dan DROP pernyataan

Anda dapat menjalankan Microsoft SQL Data definisi bahasa (DDL) pernyataan seperti membuat, mengubah, dan DROP terhadap Excel database objek atas ADO Sambungan untuk menghasilkan hasil yang sama sebagai sesuai ADOX metode yang dijelaskan di atas.

Kesimpulan

  • ADOX works terbaik dengan Excel ketika sebuah tabel baru dan kolom yang semua dibuat pada waktu yang sama.
  • ADO works terbaik dengan Excel Dados ketika data yang disimpan dalam lembar kerja yang dibuat menggunakan ADOX.

Properti

ID Artikel: 303814 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
Kata kunci: 
kbdatabase kbhowto kbiisam kbmt KB303814 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:303814

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com