Problem:
Ich habe als FE eine Access2007 ACCDB und als BE eine SQL2005-Datenbank.
In meiner FE habe ich ebenfalls eine Excel-Datei verknüpft. Aus dieser werden Auftragsdaten, die vom Kunden kommen in die SQL-Datenbank importiert.
Da, sich nun der Speicherort und der Dateiname der Excel-Datei ändern können, muss der Anwender die Möglichkeit haben, die Excel-Datei neu einbinden zu können.
(BTW der Name des Excel-Tabellenblattes bleibt aber immer gleich!).
Ich versuche das mit folgendem Code zu ermöglichen:
- CODE:
Public Function ExcelNeuEinbinden(AcTabName As String, FullPathName As String)
Dim ConStr As String
ConStr = CurrentDb.TableDefs(AcTabName).Connect
CurrentDb.TableDefs(AcTabName).Connect = Mid(ConStr, 1, InStr(ConStr, "DATABASE=") + 8) & FullPathName
CurrentDb.TableDefs(AcTabName).RefreshLink
End Function
Die Funktion läuft ohne Probleme ab, es kommt keine Fehlermeldung und mit DebugPrint konnte ich feststellen, dass alle Variablen richtig gefüllt werden.
ABER:
Es passiert nichts
Soll heißen, die Connect-Eigenschaft meiner verknüpften Excel-Tabelle bleibt gleich.
Lösung:
Eine wirkliche Lösung für den „Fehler“ im Code habe ich nicht,
aber dafür habe ich eine Lösung des Problems!!!
Ich mach’s jetzt mit:
- CODE:
Public Sub ExcelNeuEinbinden()
Dim db As Database
Set db = CurrentDb
db.TableDefs.Delete Tabellenname
db.TableDefs.Refresh
DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel8, Tabellenname, PfadZurExceldatei, True, Tabellenblatt
Set db = Nothing
End Sub
Und schon geht’s!!!