Asumsi sbb:
Aplikasi_yono.mdb -- Front End
Database_yono.mdb -- Back End
- tblSatu
- tblDua
- tblTiga
- dst
- dst
- ...
- tblSeratus
Jadi anggap saja back end tsb mengandung 100 tabel.
Cara praktis yang mudah dilakukan adalah sbb.
1. Gunakan Get External File Link dari file Aplikasi_yono.mdb
2. Buat Link Table untuk semua tabel di database_yono.mdb.
3. Buka immediate window, kemudian ketikkan :
?currentdb.TableDefs("tblSatu").Connect
;DATABASE=D:\Data\BelajarAccess\yokonan\database_yono.mdb
4. Perhatikan string koneksi tsb.
Kita akan pecah menjadi beberapa bagian.
";DATABASE=" & LokasiFolderBackEnd & "\database_yono.mdb"
5. String tsb di rekonstruksi lagi sbb.
strKoneksi=";DATABASE=" & LokasiFolderBackEnd & "\database_yono.mdb"
6. Naah di sini baru ditentukan apakah database_yono akan selalu satu folder
dengan aplikasinya atau ada di sub folder tertentu
a. Aplikasi_yono.mdb selalu satu folder dengan Database_yono.mdb
Gunakan : CurrentProject.Path
CurrentProject.Path akan mengembalikan Folder dimana aplikasi_yono.mdb
berada. Keuntungannya adalah kita bisa memindahkan aplikasi
dan folder di manapun yang kita mau. Di simpan di flash disk
jalan.
Dicopy ke folder manapun aplikasi_yono.mdb dan
database_yono.mdb
akan selalu bisa berhubungan.
Langkahnya sbb.
LokasiFolderBackEnd=CurrentProject.Path
strKoneksi=";DATABASE=" & LokasiFolderBackEnd & "\database_yono.mdb"
b.database_yono.mdb selalu berada di sub folder dari aplikasi_yono.mdb.
Misalnya. Aplikasi_yono.mdb terletak di C:/Aplikasi, databasenya
terletak di C:/Aplikasi/Database.
Gunakan : CurrentPRoject.Path digabung dengan nama Subfoldernya.
Subfolder="Database"
LokasiFolderBackEnd=CurrentProject.Path & "\" & NamaSubFolder
strKoneksi=";DATABASE=" & LokasiFolderBackEnd & "\database_yono.mdb"
7. Untuk membuat selalu terkoneksi, connection string dari tabel link
tersebut haruslah dibuat dinamis, artinya selalu diperbaharui setiap
kali aplikasi di buka. Anda bisa menggunakan macro bernama Autoexec
atau meletakkan command button misalnya refreshlink.
Cara melakukannya begini.
a. Buat query. Namanya misalnya: qry_DaftarTabel.
Isi dengan SQL String sbb: Select * from msysobjects where database
is not null
b. Anda bisa gunakan data ini untuk merefresh tabel link.
Buat sebuah Procedure / Function di Module.
Parameter dari prosedur ini adalah NamaTabel dan string Koneksi.
Contohnya sbb:
Public Sub Relink_Table(byval NamaTabel as string, _
byval strKoneksi as string)
With Currentdb
strKoneksi_asal=.tabledefs(NamaTabel).connect
If strKoneksi_asal<> strKoneksi then
.tabledefs(NamaTabel).connect=strKoneksi
.tabledefs(NamaTabel).refreshLInk
End if
End with
End sub
c. Procedure di bagian b, digunakan untuk merefresh hanya satu tabel
dengan string koneksi yang tersedia. Anda harus mengulangi untuk
setiap tabel yang terdaftar di query qry_DaftarTabel.
Buat satu function sbb. Kenapa Function, karena Procedure tdk
muncul di list function dalam makro.
Function Jalankan_Relink()
Dim cnn As ADODB.Connection
Set cnn = CurrentProject.Connection
Dim rst As New ADODB.Recordset
Dim subfolder As String, LokasiFolderBackEnd As
String, strKoneksi As String, strKoneksi_asal As String
'jika database_yono.mdb terletak di subfolder
\Database
'subfolder = "Database"
'LokasiFolderBackEnd = CurrentProject.Path & "\" &
NamaSubFolder
'jika database_yono.mdb terletak di folder yang sama
dengan
'aplikasi_yono.mdb
LokasiFolderBackEnd = CurrentProject.Path
strKoneksi = ";DATABASE=" & LokasiFolderBackEnd &
"\database_yono.mdb"
With rst
.Open "qry_DaftarTabel", cnn, adOpenKeyset,
adLockPessimistic, adCmdTable
If Not (.EOF Or .BOF) Then
.MoveLast
.MoveFirst
For i = 1 To .RecordCount
Relink_Table !Name, strKoneksi
.MoveNext
Next
End If
End With
rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Function
8. Anda tinggal menaruh function ini di makro autoexec.
Pilih RunCode; kemudian tuliskan : =Jalankan_Relink()
Selesai.
Salam Hangat dan Jabat Erat
Murid Belajar Access
EdyWiyono
________________________________________
From: [email protected] [mailto:[email protected]]
On Behalf Of yokananwahyono
Sent: Friday, July 16, 2010 07:32
To: [email protected]
Subject: [belajar-access] Koneksi ODBC dari MS Access ke MS Access Lain
Dear Teman - teman
Bagaimana membuat koneksi ODBC dari MS Access ke MS Access Lain?
Misal "database1.mdb" adalah data dan "Aplikasi.mdb" adalah program untuk
update data
Bagaimana mengkoneksikan aplikasi.mdb dengan database1.mdb dengan skrip
(kode)?
Sepertinya dah pernah di bahas, tapi saya acari - cari kok belum ketemu
Salam
Yokanan Wahyono