Oleh : Wahyu Primadi,S.Kom, S Med
Pada artikel berikut saya akan mencoba share mengenai cara melakukan Compact & Repair database Microsoft Access 2010 (*.accdb) melalui pemrograman Visual Basic.NET (Visual Studio 2010 - .NET Framework 4.0). Berbeda dengan format database Microsoft Access 2003 dan sebelumnya (*.mdb) yang dapat dengan mudah melakukan Compact & Repair database melalui pemrograman. Untuk format Microsoft Access 2010 (dan 2007) yang menggunakan ekstensi file *.accdb ini terbilang agak susah melakukannya tanpa menggunakan engine dari Microsoft Access sendiri.
Pada artikel berikut saya akan mencoba share mengenai cara melakukan Compact & Repair database Microsoft Access 2010 (*.accdb) melalui pemrograman Visual Basic.NET (Visual Studio 2010 - .NET Framework 4.0). Berbeda dengan format database Microsoft Access 2003 dan sebelumnya (*.mdb) yang dapat dengan mudah melakukan Compact & Repair database melalui pemrograman. Untuk format Microsoft Access 2010 (dan 2007) yang menggunakan ekstensi file *.accdb ini terbilang agak susah melakukannya tanpa menggunakan engine dari Microsoft Access sendiri.
Menggunakan engine Microsoft Access??? Yup, benar sekali, pada contoh ini saya akan memberikan cara untuk melakukan Compact & Repair database Microsoft Access dengan memanfaatkan engine dari Microsoft Access itu sendiri. Berarti itu termasuk pada kategori Otomatisasi Microsoft Office? Ya, betul. Ok, sebelumnya pernah saya tulis artikel mengenai "Otomatisasi Microsoft Office Merupakan Ide Buruk". Maksudnya bukan tidak boleh hanya saja jika ada cara yang lain tanpa harus mengotomatisasi engine-engine Microsoft Office tentu hal tersebut akan jauh lebih baik. Namun dalam kasus ini (melakukan compact & Repair database Microsoft Access 2010) saya belum menemukan caranya untuk melakukannya secara murni tanpa harus mengotomatisasi engine Microsoft Access.
Pemrograman yang saya gunakan adalah Microsoft Visual Basic .NET (Visual Studio .NET 2010), lalu apakah juga mungkin melakukannya menggunakan Visual Basic 6? Tentu saja memungkinkan, karena object engine Microsoft Access tersebut merupakan komponen COM yang juga dapat dengan mudah diakses dan digunakan pada Visual Basic 6. Langsung saja, berikut requirement yang dibutuhkan untuk mencobanya:
Jika requirement tersebut sudah terpenuhi maka saatnya jalankan Microsoft Visual Studio .NET anda dan buat project Visual Basic .NET baru. Secara default biasanya Visual Studio .NET akan memberika sebuah form kosong kepada anda setiap kali memulai project baru, gunakan form tersebut dan ikuti langkah-langkah berikut ini:
1. Tambahkan referensi "Microsoft Office 14.0 Access database engine Object Library" ke dalam project anda.
Pemrograman yang saya gunakan adalah Microsoft Visual Basic .NET (Visual Studio .NET 2010), lalu apakah juga mungkin melakukannya menggunakan Visual Basic 6? Tentu saja memungkinkan, karena object engine Microsoft Access tersebut merupakan komponen COM yang juga dapat dengan mudah diakses dan digunakan pada Visual Basic 6. Langsung saja, berikut requirement yang dibutuhkan untuk mencobanya:
- Microsoft Access 2010 / Microsoft Access Database Engine 2010 Redistributable
- Minimal anda memiliki satu buah database yang dibuat dengan Microsoft Access 2010 dengan format
- Microsoft Visual Studio .NET 2010
- Memahami (atau pernah menggunakan) bahasa pemrograman Microsoft Visual Basic .NET
Jika requirement tersebut sudah terpenuhi maka saatnya jalankan Microsoft Visual Studio .NET anda dan buat project Visual Basic .NET baru. Secara default biasanya Visual Studio .NET akan memberika sebuah form kosong kepada anda setiap kali memulai project baru, gunakan form tersebut dan ikuti langkah-langkah berikut ini:
1. Tambahkan referensi "Microsoft Office 14.0 Access database engine Object Library" ke dalam project anda.
2. Import namespace "Microsoft.Office.Interop.Access" pada bagian paling atas code anda:
3. Tambahkan sebuah button pada form dan tuliskan code berikut pada sub prosedure button anda:
Selesai sudah, mudah kan? Hal yang sama juga dapat anda lakukan untuk database Microsoft Access 2007 yang juga berekstensi *.accdb hanya saja anda harus merubah referensi "Microsoft Office 14.0 Access database engine Object Library" menjadi "Microsoft Office 12.0 Access database engine Object Library" (kalau saya tidak salah dan lupa).
Sekarang untuk masalah pendistribusian aplikasi ke komputer end-user. Karena kita tadi menggunakan engine Microsoft Access database dengan cara mengotomatisasinya maka secara otomatis di komputer end-user (atau client) harus terinstall aplikasi Microsoft Access 2010. Pertanyaannya, client mana yang mau membeli lisensi Microsoft Access dan meng-install-nya pada setiap komputer yang dimiliki? tentunya dengan pertimbangan harga dan kemudahaan cara seperti itu bisa dipastikan tidak dapat diterima oleh client. Lalu bagaimana? ada ide? Sebetulnya walaupun aplikasi yang kita bangun menggunakan engine Microsoft Access database namun tidak harus kita juga menyertakan atapun meng-install aplikasi Microsoft Access tersebut pada setiap pendistribusiannya agar aplikasi kita dapat berjalan. Lalu bagaimana? Tenang, Microsoft sendiri sudah menyediakan runtime Microsoft Access database engine terpisah yang dapat dengan bebas kita sertakan dalam setiap pendistribusian aplikasi kita.
Untuk artikel ini, karena menggunakan Microsoft Access 2010 maka anda dapat menyertakan "Microsoft Access Database Engine 2010 Redistributable" untuk menjamin aplikasi anda dapat berjalan dengan baik tanpa perlu terinstall aplikasi Microsoft Access pada komputer tujuan. Hebatnya lagi database engine tersebut tersedia dalam dua pilihan, yaitu untuk platform 32bit (x86) dan 64bit (x64). Jika anda menggunakan database Microsoft Access 2007 berarti anda harus menyertakan "2007 Office System Driver: Data Connectivity Components" atau "2007 Microsoft Office System Update: Redistributable Primary Interop Assemblies" (pilih salah satu). Database engine tersebut tentunya juga dapat anda sertakan dalam program setup untuk aplikasi anda.
Sekarang untuk masalah pendistribusian aplikasi ke komputer end-user. Karena kita tadi menggunakan engine Microsoft Access database dengan cara mengotomatisasinya maka secara otomatis di komputer end-user (atau client) harus terinstall aplikasi Microsoft Access 2010. Pertanyaannya, client mana yang mau membeli lisensi Microsoft Access dan meng-install-nya pada setiap komputer yang dimiliki? tentunya dengan pertimbangan harga dan kemudahaan cara seperti itu bisa dipastikan tidak dapat diterima oleh client. Lalu bagaimana? ada ide? Sebetulnya walaupun aplikasi yang kita bangun menggunakan engine Microsoft Access database namun tidak harus kita juga menyertakan atapun meng-install aplikasi Microsoft Access tersebut pada setiap pendistribusiannya agar aplikasi kita dapat berjalan. Lalu bagaimana? Tenang, Microsoft sendiri sudah menyediakan runtime Microsoft Access database engine terpisah yang dapat dengan bebas kita sertakan dalam setiap pendistribusian aplikasi kita.
Untuk artikel ini, karena menggunakan Microsoft Access 2010 maka anda dapat menyertakan "Microsoft Access Database Engine 2010 Redistributable" untuk menjamin aplikasi anda dapat berjalan dengan baik tanpa perlu terinstall aplikasi Microsoft Access pada komputer tujuan. Hebatnya lagi database engine tersebut tersedia dalam dua pilihan, yaitu untuk platform 32bit (x86) dan 64bit (x64). Jika anda menggunakan database Microsoft Access 2007 berarti anda harus menyertakan "2007 Office System Driver: Data Connectivity Components" atau "2007 Microsoft Office System Update: Redistributable Primary Interop Assemblies" (pilih salah satu). Database engine tersebut tentunya juga dapat anda sertakan dalam program setup untuk aplikasi anda.