Beitrag aus SmartTools Access Weekly
Sonderzeichen nach Datenübernahme von Excel nach Access löschen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Ich muss in meiner Access-Datenbank regelmäßig Daren aus Excel verarbeiten. Nach dem Import von Exceldaten befinden sich in einigen Text- oder Memofeldern immer wieder kleine Quadrate oder andere nutzlose Sonderzeichen. Vor allem in Memofeldern kommt es außerdem vor, dass Leerzeichen fehlen und zum Beispiel ein Satz "Dies ist ein Testtext" als "Dies ist einTesttext" angezeigt wird. Wie kann ich diese Importprobleme lösen?
Diverse Anfragen
ANTWORT In Excel-Zellen können Sie mit Alt + Return einen Zeilenumbruch erzwingen. Daraus ergibt sich für die Zeilentrennung ein Sonderzeichen mit dem ASCII-Code "10", der in Access keine Bedeutung hat und daher als Quadrat, dem Äquivalent für "Chr$(10)" im jeweiligen Zeichensatz erscheint oder ignoriert wird, so dass der Eindruck fehlender Leerzeichen entsteht. Um diese Zeichen in Ihren Feldern zu entfernen bzw. das Leerzeichenproblem zu lösen, erstellen Sie eine Aktualisierungsabfrage und fügen die Felder, in denen diese Zeichen vorkommen oder vermeintlich Leerzeichen verschwinden, per Doppelklick in die Feldliste zum Abfrageentwurf hinzu. Geben Sie dann in der Zeile "Aktualisieren:" der Felder den folgenden Ausdruck ein:
=Ersetzen([Feldname];Zchn(10);" ")
"Feldname" ersetzen Sie dabei durch den entsprechenden Feldnamen. Speichern Sie diese Abfrage beispielsweise unter dem Namen "UpdateExcelImport" und führen Sie sie künftig nach Abschluss des Excel-Imports per Doppelklick aus. Damit werden in den betreffenden Feldern die Zeilentrenner mit dem ASCII-Code "10" entfernt und durch Leerzeichen ersetzt, so dass der Text einwandfrei angezeigt werden kann. Möchten Sie die in Excel vorgenommene Zeilentrennung 1:1 übernehmen, verwenden Sie den folgenden Ausdruck zur Aktualisierung:
=Ersetzen([Feldname];Zchn(10);Zchn(13) & Zchn(10))
Das ersetzt die Excel-Zeilentrenner durch die in Access üblichen Zeilentrenner (vbCrLf).