Tabellen werden beim Start nicht verknüpft
EnsureLinks (oder RelinkAll, Relink, Alle aktualisieren im Designer) löst wkeSourceError mit einer Meldung
wie „Profil “PROD”: 3 Tabellen verknüpft, nicht verknüpft:“ aus, gefolgt von einer Zeile je Tabelle, oder beim Start
erscheint ein Anmeldedialog des ODBC-Treibers.
Umgebung
WKL Forms Object Library mit WklLinkManager, in ACCDB, ACCDE oder Access Runtime.
Ursache
Der Linked Tables Manager verknüpft jede Tabelle, die er verknüpfen kann, und führt die übrigen auf, eine Zeile je Tabelle in
der Form „tblName: Grund“; LastMessage enthält dieselben Zeilen. Nach Grund:
| Die Zeile lautet | Ursache |
|---|---|
| „Eine lokale Tabelle dieses Namens steht im Weg; sie wird nicht ersetzt.“ | Eine lokale Tabelle hat den konfigurierten LocalName. Der Linked Tables Manager ersetzt nie lokale Tabellen, weil dabei Daten gelöscht würden. |
| Die Meldung des Treibers, zum Beispiel ein Anmelde- oder Netzwerkfehler | Die Quelle hat die Verknüpfung abgelehnt: Server nicht erreichbar, Datenbank fehlt, Anmeldung gescheitert, oder der Treiber aus Driver ist nicht in der Bitversion von Access installiert. |
| Fehler 3423 („ODBC … Microsoft Access- oder ISAM-Datenbanktabelle“) | Die Verbindung zeigt über ODBC auf eine Access-Datenbank. Access verknüpft Access-Datenbanken nicht über ODBC. |
Die Verbindung "Sales" hat keine Zeile für das Profil "PROD". oder Die Verbindung mit der ID 7 ist nicht vorhanden. | Keine Zeile von USysConnection hat den Namen der Verbindung und dieses Profil (oder kein Profil), oder ConnectionID zeigt auf eine gelöschte Zeile. |
Ein Anmeldedialog beim Start bedeutet, dass eine Verbindung weder die Windows-Anmeldung noch ein gespeichertes Kennwort hat; der Treiber fragt die Anmeldung ab, wenn die Tabelle verknüpft wird.
Lösung
- Lesen Sie
LastMessage(oder die Liste auf der Designerseite Prüfen und abgleichen) und behandeln Sie jede Tabelle nach ihrer Zeile. - Lokale Tabelle im Weg: Benennen Sie die lokale Tabelle um oder löschen Sie sie, oder ändern Sie
LocalNameinUSysLinkedTable. - Quelle hat abgelehnt: Wählen Sie die Verbindung auf der Seite Verbindungen aus und klicken Sie auf Verbindung testen; das zeigt die Meldung des Treibers ohne Dialog an. Prüfen Sie Server, Datenbank und den Treibernamen; ODBC-Treiber werden je Bitversion installiert (32-Bit-Access braucht den 32-Bit-Treiber).
- Access-Datenbank als Backend: Verknüpfen Sie Access-Backends mit dem Tabellenverknüpfungs-Manager von Access, nicht über ODBC.
- Fehlende Verbindung: Fügen Sie eine Zeile für das Profil hinzu, zum Beispiel mit Profil kopieren … auf der Seite Profile.
- Anmeldedialog: Verwenden Sie die Windows-Anmeldung oder entscheiden Sie bewusst (Festlegen, wie sich verknüpfte Tabellen anmelden).