Script untuk melink table secara otomatis (taruh di sebuah module umum):
'Written by John Hawkins 20/9/99 www.fabalou.com
Public Function RelinkTables(ByVal newDataFile) As Boolean
Dim NewPathname As String
Dim dbs As Database
Dim Tdf As TableDef
Dim Tdfs As TableDefs
Set dbs = CurrentDb
Set Tdfs = dbs.TableDefs
'
NewPathname = newDataFile
If IsFileExists(NewPathname) Then
dbPassword = ""
'Loop through the tables collection
On Error Resume Next 'just to ignore the error message, relinking process still be done
For Each Tdf In Tdfs
If ((Tdf.Attributes And dbSystemObject) = 0) And (Tdf.Connect <> vbNullString) And Not (Tdf.Name Like "~*") Then
'If Tdf.SourceTableName <> "" Then 'If the table source is other than a base table
'Tdf.Connect = ";DATABASE=" & NewPathname & ";Pwd=" & dbPassword 'Set the new source
Tdf.Connect = ";DATABASE=" & NewPathname 'Set the new source
Tdf.RefreshLink 'Refresh the link
RelinkTables = True 'paling tidak pernah lewat sini
End If
Next 'Goto next table
Set Tdfs = Nothing
Set dbs = Nothing
'
If IsMDE() Then
SecuringTables
End If
End If
End Function
Function untuk memeriksa keberadaan file:
'taken from: http://www.tek-tips.com/faqs.cfm?fid=4116 (by Bowers74)
'6 Jan 2010
Function IsFileExists(pFilePath) As Boolean 'modified by Haer
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
IsFileExists = fso.FileExists(pFilePath)
Set fso = Nothing
End Function
Function untuk test MDE:
Function IsMDE()
IsMDE = Right(Application.CurrentProject.Name, 1) = "E"
End Function
Procedure untuk menyembunyikan table:
Sub SecuringTables(Optional nHide As Boolean = True)
Dim db As Database
Set db = CurrentDb
On Error Resume Next
For i = 0 To db.TableDefs.Count - 1
If Left(db.TableDefs(i).Name, 4) = "mSys" Or _
Left(db.TableDefs(i).Name, 1) = "~" Or _
Left(db.TableDefs(i).Name, 4) = "Usys" Then
'Not a Table
Else
db.TableDefs(i).Attributes = IIf(nHide, 1, 0) ' 1=Hide, 0=Normal
End If
Next
Set db = Nothing
End Sub
Cara Pemakaian:
If Not RelinkTables(vPath & tDatabaseFile) Then
MsgBox "File database tidak bisa dibuka!"
End If
Tidak ada komentar:
Posting Komentar