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