Ik heb een antwoord gevonden met behulp van dit microsoft-artikel . In plaats van de RefreshLink-methode te gebruiken, verwijdert u de link en maakt u deze opnieuw met de optie dbAttachedODBC:
Public Sub relink_mysql_tables(mysql_connection As String)
Dim db As Database
Dim tblDef As TableDef
Dim sLocalTableName As String
Dim sRemoteTableName As String
' new collection '
Dim newTableDefs As New Collection
' current database '
Set db = CurrentDb()
' create new table defs '
For Each tblDef In db.TableDefs
If (tblDef.Attributes And TableDefAttributeEnum.dbAttachedODBC) Then
sLocalTableName = tblDef.Name
sRemoteTableName = tblDef.SourceTableName
' create new linked table def '
Set tblDef = db.CreateTableDef(sLocalTableName, dbAttachSavePWD, sRemoteTableName, mysql_connection)
newTableDefs.Add tblDef
End If
Next
' delete old table defs '
For Each tblDef In newTableDefs
db.TableDefs.Delete tblDef.Name
Next
' add new table defs to current database '
For Each tblDef In newTableDefs
db.TableDefs.Append tblDef
Next
De verbindingsreeks is hetzelfde als voorheen, maar met de toevoeging van het voorvoegsel "ODBC;":
ODBC;DRIVER={MySQL ODBC 5.1 Driver};Server=myserver;Database=mydatabase;Uid=myusername;Pwd=mypassword;Option=3