Ein Feldname erscheint kodiert, oder die Verknüpfung scheitert
In einer verknüpften Tabelle heißt ein Feld etwa Pos_x002E_ Nr_x002E_ statt Pos. Nr., oder Access
bricht das Verknüpfen ab und fragt nach einer Spalte, die es nicht gibt.
Umgebung
Access und DAO; Spalten, deren Name in der Datenbank Sonderzeichen enthält oder länger als 64 Zeichen ist.
Ursache
OData erlaubt in Namen nur Buchstaben, Ziffern und den Unterstrich; ein Dienst muss andere Zeichen
kodieren (R&I wird R_x0026_I). Der Treiber übersetzt die Namen für Access zurück – mit Ausnahme der
Zeichen, an denen Access eine Verknüpfung ablehnt, auch über den Treiber von SQL Server:
| Name enthält | Ergebnis |
|---|---|
!, ", ., [, ], `, Steuerzeichen, Leerzeichen am Anfang | Feld erscheint mit kodiertem Zeichen, etwa Pos_x002E_ Nr_x002E_ – über den Treiber von SQL Server ließe sich die Tabelle gar nicht verknüpfen |
jedes andere Zeichen, auch Umlaute, &, /, -, Leerzeichen innen | Feld heißt wie in der Datenbank |
| mehr als 64 Zeichen | Access kürzt den Namen und findet die Spalte nicht – wie über den Treiber von SQL Server |
Behebung
- Verwenden Sie für kodiert erscheinende Felder den angezeigten Namen; Werte, Filter und Schreiben funktionieren unverändert.
- Wollen Sie einen lesbaren Namen, legen Sie in der Datenbank eine Sicht mit einem Alias an (
SELECT [Pos. Nr.] AS PosNr …) und verknüpfen Sie die Sicht. - Für Namen über 64 Zeichen gibt es nur diesen Weg: eine Sicht mit kürzerem Alias.
Prüfung
Die verknüpfte Tabelle oder Sicht öffnet sich, und die Felder zeigen dieselben Werte wie in der Datenbank.
Verwandte Themen
de/wiki/data-conectivity/odata-odbc/troubleshooting/field-name-encoded-or-too-long.txt · Zuletzt geändert: von Wolfgang van der Stille