Kann jemand erklären, warum das erste Codebeispiel funktioniert, das zweite aber nicht?
Dieser Re-Link-Code FUNKTIONIERT:
Dim db As Database
Dim sNewLinkAddress As String
sNewLinkAddress = "C:\temp\backend.accdb"
Set db = CurrentDb
db.TableDefs("table1").Connect = ";Database=" & sNewLinkAddress
db.TableDefs("table1").RefreshLink
Dieser Re-Link-Code funktioniert NICHT, aber es werden keine Fehlermeldungen angezeigt:
Dim sNewLinkAddress As String
sNewLinkAddress = "C:\temp\backend.accdb"
CurrentDb().TableDefs("table1").Connect = ";Database=" & sNewLinkAddress
CurrentDb().TableDefs("table1").RefreshLink
Was mich beunruhigt, ist, dass es einen grundlegenden Unterschied zwischen der Verwendung des Datenbankobjekts, das direkt von CurrentDB() zurückgegeben wird, und der Verwendung einer Variablen 'db', die auf das von CurrentDB() zurückgegebene Datenbankobjekt gesetzt wird, gibt, dessen ich mir nicht bewusst bin. Meiner Meinung nach sollten beide Wege identisch sein, aber offensichtlich liege ich falsch!
In der Vergangenheit habe ich CurrentDB() direkt für verschiedene Dinge wie das Öffnen eines Recordsets ohne Probleme verwendet. Es scheint ein spezielles Problem mit der Neuverknüpfung von Tabellen zu geben. Irgendwelche Ideen, was hier los ist?
Ich verwende Access 2007, aber das gleiche Problem gilt auch für 2003.