2 Stimmen

Warum kann ich eine Tabelle mit vba nicht direkt mit der CurrentDB()-Methode neu verknüpfen?

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X