2011-01-17 5 views
0

Ich habe eine Zugriffsdatei, die Server als Front-End zu einer MySQL-Datenbank ist. In der Zugangsdatei habe ich ein paar Tabellen und Abfragen gemacht. Das Problem ist, dass ich die MySQL-Datenbank von einem Host zu einem anderen geändert habe und der andere nicht existiert.Relink mySQL Datenbank in einer Access-Datei

Was ich tun möchte, ist die Relink die Tabellen/Abfragen in dieser Zugriffsdatei auf die Datenbank statt die alte Datenbank. Ich löschte den alten ODBC-Datensatz, den ich auf meinem Computer hatte, und erstellte den neuen. Aber was passiert, ist, dass jedes Mal, wenn ich versuche, auf eine der Abfragen zuzugreifen, die ODBC-Verbindungseigenschaften angezeigt werden und ich den Verbindungs-Hostnamen von meinem alten zu dem neuen ändern muss. Ich glaube, dass die alten Informationen irgendwo in der Datei gespeichert sind, so dass jede Information darüber, wo diese gespeichert ist oder wann ich sie manuell per VBA-Code machen muss, sehr geschätzt wird.

Antwort

1

Es gibt zwei mögliche Orte für die Informationen gespeichert werden:

  1. in den Verbindungszeichenfolgen für verknüpfte Tabellen.

  2. in den Verbindungszeichenfolgen für gespeicherte Abfragen.

Sie können mit dieser die Verbindungszeichenfolge für eine Tabelle finden Sie heraus:

?CurrentDB.TableDefs("MyTable").Connect 

... und für eine gespeicherte Abfrage mit:

?CurrentDB.QueryDefs("MyQuery").Connect 

für das ehemalige Aktualisierung Sie sollte nur die vorhandenen verknüpften Tabellen löschen und von Grund auf neu verknüpfen. Für Letzteres müssen Sie jedes einzeln bearbeiten oder Code schreiben, um die QueryDefs-Auflistung zu durchlaufen und die Connect-Zeichenfolgen mit dem neuen Wert zu ändern und zu speichern.

Sie können auch Doug Steele's code for DSN-less connect strings nützlich finden.

+0

Mein Zweifel hier ist, wie fange ich an, den Code zu schreiben. Können Sie mir Schritt für Schritt Anweisungen geben, wie ich es schreiben soll? (Nicht der Code für die Verknüpfung selbst, sondern wo. IE. Gehen Sie zu X Teil der Access-Datenbank, schreiben Sie eine Funktion mit dem Namen X, und dann können Sie es automatisch so ausführen) – Gotjosh

+0

Nun, Sie nicht eigentlich muss jeder Code schreiben - Sie könnten es manuell tun. Das erste, was zu tun ist, um festzustellen, wo die Verbindungszeichenfolgen sind. Wenn sie in den verknüpften Tabellen sind, dann mache ich wie gesagt und lösche die existierenden Links und benutze den Linked Table Manager, um sie neu zu erstellen (kein Code!). Wenn andererseits die Verbindungszeichenfolgen in den Abfragen enthalten sind, sollten Sie überprüfen, wie viele - wenn es nur ein oder zwei sind, dann ist es nicht viel Sinn, Code zu schreiben, um es zu beheben. –

Verwandte Themen