Apakah nama tabel dinamic selalu berubah2?
Jika fix, dan dia berubah hanya lokasi saja (semula di C:\DB01.mdb, lalu di
install tempat lain di C:\Data\DB01.mdb), maka relink saja dengan vba
seperti berikut:

Link biasa saja dengan cara normal untuk link tabel, kita butuhkan koneksi
stringnya. Untuk memperoleh koneksi string, gunakan fungsi berikut yang akan
mengeluarkan connection string setiap tabel:

dim td as dao.tabledef
for each td in currentdb.tabledefs
  debug.print td.name, td.connect
next td

anda sekarang bisa melihat list connection string yang ada, contoh kalau
link ke Access MDB di saya keluar seperti ini:

;DATABASE=C:\Documents and Settings\Aksan.KOBELCO\Desktop\test.mdb

Bentuk connection string akan bervariasi, sesuai dengan jenis link table
(dbf, xls, txt, odbc, sql server, dll). Sesuaikan.

Modul berikut bisa untuk merefresh connection string ke lokasi yang baru:



Public Sub UpdateLinkTable(NewConString as string)
    Dim td As DAO.TableDef
    Dim db As DAO.Database

    On Error GoTo errHandle

    Set td = New DAO.TableDef
    Set db = CurrentDb

    For Each td In db.TableDefs
        If Left(td.Name, 4) <> "MSys" Then
            td.Connect = NewConString
            td.RefreshLink
        End If
    Next td

    MsgBox "All table has reconected to current server.", vbInformation
    Set td = Nothing
    Set db = Nothing

    Exit Sub

errHandle:
    MsgBox Err.Description & vbCrLf & "Reconnection failed to server !!!!"
    Set td = Nothing
    Set db = Nothing
End Sub




2009/1/13 Teguh JAP <[email protected]>

>   Semangat Pagi semuanya..
>
> To The Point
>
> Coding :
> 1. Delete Tabel
> DoCmd.DeleteObject acTable, "nama_tabel"
>
> 2. Linking Tabel
> DoCmd.TransferDatabase acLink, , "C:\DB01.mdb", acTable,
> "nama_tabel", "nama_tabel"
>
> Jika kita punya 5 tabel kita cukup menuliskan kode diatas sebanyak 5
> X, kita cukup mengganti nama tabel tersebut dengan nama tabel yg
> dibutuhkan.
>
> Tapi jika kita (misalkan) punya 50 tabel, ga mungkin kan kita tulis
> kode diatas sebanyak 50 kali.
>
> Apakah ada cara yg lebih praktis ?
>
> Terima kasih sebelumnya
>  
>



-- 
Aksan Kurdin

Kirim email ke