Berikut adalah 3 poin penting yang perlu diperhatikan dan diperhatikan saat melakukan pengkodean dengan Access VBA menggunakan DAO atau ADO untuk terhubung dengan database lain.
Ada jebakan umum dan tip berguna yang harus diwaspadai saat menggunakan kode Access VBA bekerja dengan objek recordset dan dalam artikel ini (bagian 1) saya akan membahas tiga poin pertama di sini dan saat ini.
1. Perpustakaan mana yang menggunakan DAO atau ADO?
Jika Anda telah menggunakan Access VBA selama beberapa waktu, Anda mungkin menemukan dua opsi perpustakaan (DAO atau ADO). Kedua perpustakaan mendukung Kumpulan rekaman objek tetapi mereka memiliki anggota yang berbeda (yaitu properti, metode dan peristiwa).
DAO adalah referensi asli ke database Microsoft Access dan merupakan pilihan alami saat mengkode ke sistem database Access lainnya karena merupakan koneksi implisit ke tabel di Access.
Namun ADO digunakan untuk tipe database lain di luar kerangka Microsoft Access ketika ingin menyambung ke sumber data eksternal dan dianggap fleksibel dari keduanya.
Ada pro dan kontra antara kedua jenis perpustakaan tersebut, tetapi terkadang keduanya bisa ada bersama-sama dalam lingkungan database yang sama yang mungkin menyebabkan kebingungan. Jika hal ini terjadi, urutan kemunculannya dalam daftar referensi akan diutamakan. Untuk menghindari referensi yang ambigu, praktik terbaik (jika Anda bersikeras memiliki keduanya) adalah secara eksplisit dalam pengkodean Anda. Misalnya,
Redupkan rs sebagai Recordset – dapat merujuk ke salah satu perpustakaan tetapi menggunakan
Redupkan rsDAO Sebagai DAO.Recordset
Redupkan rsADO As ADODB.Recordset – akan membuat kedua objek menjadi eksplisit.
2. Mencoba berpindah antar record ketika tidak ada record
Jika Anda tidak membuat kode untuk menangkap dan menguji kumpulan objek recordset dan Anda mencoba menavigasi dalam array ini, kesalahan akan terjadi.
Metode seperti Pindah Pertama, Pindah Terakhir, Pindah Berikutnyaatau PindahSebelumnya akan menyebabkan kesalahan ketika tidak ada catatan yang ditemukan. Oleh karena itu, pastikan Anda menambahkan Jika tes sebelum mengulangi catatan menggunakan sesuatu seperti:
Jika Bukan rs.BOF Dan Bukan rs.EOF Lalu
3. Tipe default Recordset dapat bervariasi antara koneksi tabel dan kueri
Jika Anda menggunakan metode OpenRecordset ke kueri atau tabel terlampir (tabel tidak disimpan secara lokal), tipe argumen defaultnya adalah dbOpenDynaset dibandingkan dengan tabel tunggal lokal yang menggunakan dbOpenTable.
Jika Anda telah mengembangkan database Access Anda di lingkungan yang berdiri sendiri di mana defaultnya adalah dbOpenTable dan kemudian membagi database Access menjadi lingkungan front-end dan back-end, kode akan gagal dijalankan.
Oleh karena itu ubahlah default dari dbOpenTable ke dbOpenDynaset.Misalnya:
Setel rs = db.OpenRecordset(“MyLocalTable”, dbOpenDynaset)
Saya memiliki jebakan dan tip lain yang perlu diingat dengan Access VBA DAO dan ADO dan akan mempublikasikannya di artikel saya berikutnya, jadi terus nantikan!