ich versucht habe, über einige der Antworten Dieser Code könnte auch aus dem Makro AutoExec für die Datenbank aufgerufen werden , insbesondere die Antwort von Martin Thompson, mit der ich einige Fehler bekommen habe, und so wie folgt modifiziert wurde:
Public Function reLinkTables() As Boolean
On Error GoTo ErrorRoutine
Dim sMyConnectString As String
Dim tdf As TableDef
Dim db_name As String
' The Main Answer is by Martin Thompson
' Modified by Dr. Mohammad Elnesr
'We will link all linked tables to an accdb Access file located in the same folder as this file.
'Replace the DATA file name in the following statement with the name of your DATA file:
sMyConnectString = ";DATABASE=" & CurrentProject.Path & "\"
For Each tdf In CurrentDb.TableDefs
If Len(tdf.Connect) > 0 Then
'It's a linked table, so re-link:
'First, get the database name
db_name = GetFileName(tdf.Connect)
' Then link the table to the current path
tdf.Connect = sMyConnectString & db_name
tdf.RefreshLink
End If
Next tdf
ExitRoutine:
MsgBox "All tables were relinked successfully"
Exit Function
ErrorRoutine:
MsgBox "Error in gbLinkTables: " & Err.Number & ": " & Err.Description
Resume ExitRoutine
End Function
Function GetFileName(FullPath As String) As String
Dim splitList As Variant
splitList = VBA.Split(FullPath, "\")
GetFileName = splitList(UBound(splitList, 1))
End Function
Nach fininshing dieses Springen Zugang Ribon> Erstellen> Makro aus der Dropdown-Option "RunCode", dann in den Funktionsnamen Typ "RelinkTables", die wir hier eingegeben haben. Dann speichern Sie das Makro mit dem Namen "AutoExec". Jedes Mal, wenn Sie die Datenbank öffnen, werden alle verknüpften Tabellen erneut mit dem ursprünglichen Pfad verknüpft. Dies ist sehr nützlich, wenn Sie Ihre Datenbanken auf einem tragbaren Datenträger speichern.
Wie lächerlich, dass Access nicht unterstützt relative Pfade aus der Box. Wie soll jemand einen Client eine geteilte Datenbank mit absoluten Pfaden darin versenden ?! –
Die Einschränkung ist wahrscheinlich darauf zurückzuführen, dass Access multi-user ist - da mehrere Benutzer die gleiche Datei verwenden können und eine Dateisperrung erfolgt - ist ein vollständig qualifizierter Pfad erforderlich. Die einfache Lösung ist beim Start Ihres Frontends überprüft, ob das Backend verfügbar ist (und diese Überprüfung kann relativ sein). Wenn die Verknüpfung falsch ist, wird der Code beim Start einfach neu verknüpft. Dies bedeutet, dass Ihre Anwendung problemlos ausgeführt werden kann, wenn sie verschoben wird. –