Tôi đã thử một số các câu trả lời trên , đặc biệt là câu trả lời của Martin Thompson mà tôi có một số lỗi với, và do đó sửa đổi nó như sau:
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
Sau fininshing này, Chuyển Tiếp cận Ribon> Create> Macro Từ menu thả xuống chọn "RunCode", sau đó trong các loại tên hàm "reLinkTables" mà chúng tôi đã gõ ở đây. Sau đó lưu macro với tên "AutoExec". Mỗi khi bạn mở cơ sở dữ liệu, tất cả các bảng được nối kết sẽ được liên kết lại với đường dẫn ban đầu. Điều này rất hữu ích nếu bạn đặt cơ sở dữ liệu của bạn trong một phương tiện di động.
Nguồn
2017-01-22 14:28:34
Thật lố bịch khi Access không hỗ trợ đường dẫn tương đối ra khỏi hộp. Làm thế nào là một người nào đó phải gửi một khách hàng một cơ sở dữ liệu tách với đường dẫn tuyệt đối trong nó ?! –
Giới hạn có thể do Access là đa người dùng - bởi vì nhiều người dùng có thể sử dụng cùng một tệp và có khóa tệp - sau đó là đường dẫn đủ điều kiện là bắt buộc. Giải pháp đơn giản là khởi động kiểm tra giao diện người dùng của bạn nếu đầu cuối có sẵn (và kiểm tra đó có thể là tương đối). Nếu liên kết sai, thì mã của bạn chỉ cần liên kết lại khi khởi động. Điều này có nghĩa là ứng dụng của bạn sẽ chạy tốt nếu nó được di chuyển. –