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


Kirim email ke