jump to navigation

Membuka berbagai object dari database external ke current database 27 Juli, 2006

Posted by saya in FAQ.
trackback

Dear all,
Apakah ada code VBA nya untuk membuka suatu form/report atau object-object lainnya dari database luar ke current database (current database = database yang sedang digunakan) ? Namun object external tersebut bukan diimport, dan seandainya current databasenya diclose, otomatis object external tersebut diclose juga dan tidak disave didalam current database.
Rencananya, saya ingin membangun suatu database, dimana ada 1 file database pusat, dan juga ada beberapa database yang menyimpan object-object yang telah dikelompokan, sehingga database pusat ini berfungsi sebagai *media pemanggil* untuk database-database lainnya. Juga dengan dibuat seperti ini tujuannya agar file-file database saya tidak terlalu besar.
Please help me…
Trim*s
Jawaban:

1. Download dahulu sample program disini. Sample program ini terdiri atas 2 buah file, yaitu:

– Child_Database.mdb è Sebagai database anak, yaitu database yang berisi object-object yang akan dibuka di central database.

– Main_Database.mdb è Sebagai central database, yaitu database pusat yang akan memanggil object-object di child database.

2. File yang telah didownload tersebut dibuat dalam format WinZip, Anda harus meng-ekstrak dahulu ke folder C:\MyDatabase semua file tersebut. Sekali lagi, harap diingat, disimpannya di folder : C:\MyDatabase.
3. Buka database “Child_Database.mdb” menggunakan Microsoft Access 2000/XP.
4. Didalamnya sudah tersedia berbagai object, diantaranya 3 buah table, 1 buah query, 1 buah form, 1 buah report, dan 1 buah module.
5. Silahkan dibuka module yang terdapat di “Child_Database.mdb”, maka akan terlihat program sbb:

Option Compare Database

Public Function OpenTable_Product()

DoCmd.OpenTable *Products*

End Function

Public Function OpenQuery_qryProducts_Detail()

DoCmd.OpenQuery *qryProducts_Detail*

End Function

Public Function OpenForm_frmProducts_Detail()

DoCmd.OpenForm *frmProducts_Detail*

End Function

Public Function OpenReport_rptProducts_Detail()

DoCmd.OpenReport *rptProducts_Detail*, acViewPreview

End Function

6. Module diatas digunakan untuk membuka onject-object yang terdapat di child database. Tapi kita tidak akan memanggil module ini disini. Kita akan menggunakannya nanti di central database.
7. Buka database “Main_Database.mdb”. Disini hanya terlihat 1 buah form dan 1 buah module. Bukalah module tersebut. Maka akan terlihat program sbb:

Option Compare Database

Public Function Connect_To_Child_Database()

*Copyright (c) 2004, by Sofyan Efendi, All rights reserved.

On Error GoTo nol

References.AddFromFile (*C:\MyDatabase\Child_Database.mdb*)

nol:

End Function

Public Function Disconnect_To_Child_Database()

*Copyright (c) 2004, by Sofyan Efendi, All rights reserved.

On Error GoTo nol

Dim Ref As Reference

Set Ref = References!Child_Database

References.Remove Ref

Disconnect_To_Child_Database = True

nol:

End Function

8. Program diatas digunakan untuk menghubungkan semua module yang terdapat pada child database ke central database, dengan demikian semua prosedur di child database langsung terhubung dan dapat dijalankan di central database.
9. Bukalah dalam mode design form yang terdapat pada “Main_Database.mdb” ini. Lihat semua code On Click pada semua tombol yang ada. Maka akan terlihat code-code sbb:

Option Compare Database

Private Sub cmdConnect_Click()

Call Connect_To_Child_Database

End Sub

Private Sub cmdDisconnect_Click()

Call Disconnect_To_Child_Database

End Sub

Private Sub cmdOpenForm_Click()

Call OpenForm_frmProducts_Detail

End Sub

Private Sub cmdOpenQuery_Click()

Call OpenQuery_qryProducts_Detail

End Sub

Private Sub cmdOpenReport_Click()

Call OpenReport_rptProducts_Detail

End Sub

Private Sub cmdOpenTable_Click()

Call OpenTable_product

End Sub

10. Lihatlah! Semua code diatas memanggil semua prosedur yang sudah dibuat di child database. Contoh, pada tulisan yang berwarna merah dan tebal diatas, Anda tidak akan menemukan prosedur OpenReport_rptProducts_Detail di database “Main_Database.mdb”.
11. Sekarang Run form ini, lalu klik tombol “Connect to Child Database”.
12. Silahkan diklik tombol-tombol yang ada, kecuali tombol “Disconnect to Child Database”. Tombol ini digunakan untuk memutuskan hubungan dengan child database.
13. Nah sekarang kita bahas apa keuntungan penggunaan metode ini didalam program database yang kita buat. Keuntungan yang diperoleh diantaranya:

– Memori yang digunakan lebih sedikit, karena Access yang digunakan hanya 1. Coba lihat di Task Manager, MSACCESS.EXE yang muncul hanya 1.

– Sangat memungkinkan untuk membuat lebih banyak object di database-database yang terpisah, sehingga file database menjadi terkelompok sesuai dengan kategorinya.

– Size database menjadi lebih kecil, karena object-objectnya sudah dipisahkan.

– Lebih simple, karena Anda tidak perlu membuka Microsoft Access lagi untuk menjalankan program didatabase lain.

14. Jika Anda hendak membuat database yang sangat kompleks, seperti ERP/MRP, maka penggunaan metode ini sangat dianjurkan agar file database Anda tidak terlalu besar, dan terkelompok sesuai kategorinya.
15. Terakhir, jangan lupa memodifikasi lagi program-program diatas agar lebih baik. Ini hanya contoh, Anda dapat membuatnya lebih kompleks lagi.

Sofyan Efendi

Komentar»

No comments yet — be the first.

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: