Home > Artikel > Ausgabe 3/2015 > Textdateien exportieren und einlesen

Textdateien exportieren und einlesen

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Wenn Sie Daten zwischen Access und anderen Anwendungen austauschen, dann ist der Weg über Textdateien oft der überschaubarste, wenn nicht gar der einzige. Der Import oder Export läuft als Zwischenschritt über ein Format, das einfach und kontrollierbar ist. Doch manchmal ringen Sie hier auch mit undurchsichtigen Problemen, denn Text ist nicht gleich Text ...

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1503_Textumwandlung.mdb.

Import und Export in Access

Möchten Sie eine Tabelle aus Access in eine andere Anwendung exportieren, die nur mit Textdateien umgehen kann, so verwenden einfach Sie den Export-Assistenten, welchen Sie über den Ribbon und dessen Register Externe Daten erreichen. Klicken Sie hier auf Exportieren|Textdatei.

Zuvor haben Sie die Tabelle oder Abfrage mit den gefragten Daten im Navigationsfenster markiert – etwa die tblAddressen der Beispieldatenbank. Im nun erscheinenden Dialog geben Sie den Pfad für die zu erstellende Textdatei an (siehe Bild 1). Sollte das Kontrollkästchen mit der Beschriftung Exportieren mit Formatierung und Layout aktiviert werden? Davon ist abzuraten, wenn die Textdatei später als Datenquelle herhalten soll, denn die Formatierung macht unter Umständen die Struktur zunichte und ist nur dann sinnvoll, wenn Sie die Textdatei anschließend lediglich in einem Texteditor betrachten wollen.

Der Textexport-Assistent von Access

Bild 1: Der Textexport-Assistent von Access

Mit Klick auf OK gelangen Sie zu weiteren Seiten des Assistenten-Dialogs, über die Sie das Feldtrennzeichen und andere Einstellungen für das Format angeben können. Access belegt alles mit Voreinstellungen, die mehr oder weniger nützlich sind (Bild 2), aber meist der Modifikation bedürfen. So sollte ein Häkchen auf Feldnamen in erste Zeile einbeziehen gesetzt werden, denn sonst ist beim späteren Import unbekannt, wie die Spalten der Tabelle lauten.

Einstellungenseite des Assistenten für den Textexport

Bild 2: Einstellungenseite des Assistenten für den Textexport

Möchten Sie etwa die Textdatei mit Adressen in Outlook importieren, dann fragt dieses für jede Spalte die Zuordnung zu seinen internen Adressfeldern ab. Da ist es optimaler, wenn gleich die Feldnamen der Tabelle ohne Begutachtung deren Inhalts ersichtlich werden. Dasselbe gilt für den Reimport der Textdatei in Access.

Beim Feldtrennzeichen sind andere Überlegungen anzustellen. Das vorgeschlagene Semikolon ist oft ungeeignet. Nämlich immer dann, wenn Textinhalte der Tabelle selbst Semikola enthalten könnten.

Diese würden später ebenfalls als Feldtrenner verstanden werden, was den Import fehlschlagen lässt. Günstiger ist da das Tabulatorzeichen, welches sicher selten in Textfeldern auftauchen wird – schließlich bewegen Sie sich mit der Tab-Taste in einem Datenblatt zur nächsten Spalte, anstatt ein Tab-Zeichen einzugeben.

Allerdings kommt es auch auf die Zielanwendung an. Oft wird eben gerade das Semikolon als Trennzeichen erwartet, und dann müssen Sie dieses auch aktivieren, aber zuvor sicherstellen, dass die Tabelle selbst keine Semikola enthält.

Beim Textbegrenzungszeichen sieht es ähnlich aus. Die Anführungszeichen sind zwar Standard, erfordern aber ebenfalls, dass solche nicht im Text selbst vorkommen dürfen. Sollte das jedoch nicht gegeben sein, so wählen Sie aus dem Kombinationsfeld den Eintrag {kein} aus. Eine Fremdanwendung kann dann beim Import zwar nicht so leicht erkennen, dass es sich bei einer Spalte um ein Textfeld handelt, aber dieser Umstand ist weniger problematisch, als falsch positionierte Textbegrenzungszeichen.

Nicht verschwiegen werden sollte, dass Sie sich mit fehlendem Textbegrenzungszeichen neue Probleme einhandeln können. Da diese neben dem Trennzeichen den Inhalt einer Zelle eindeutig abgrenzen, kann ein enthaltener String beliebige Zeichen aufweisen. Fehlt das Begrenzungszeichen, so werden eventuell bestimmte Zeichen anders interpretiert. Häufige Kandidaten für das Schlamassel sind das Punktzeichen und das Komma, denn diese werden oft als Dezimalpunkt oder -komma für Zahlen verstanden. Schon beim Export aus Access kann es dabei zu Fehlern kommen, sofern Sie nicht über den Button Erweitert... ein anderes Dezimalsymbol bestimmten (Bild 3).

Exportspezifikationen

Bild 3: Exportspezifikationen

Soll die Textdatei später wieder in Access importiert werden, so können Sie hier ein Zeichen nehmen, dessen Vorkommen in der Tabelle ausscheidet. Solche Zeichen lassen sich mit die Tastatur über den Ziffernblock ausgeben. Nehmen Sie etwa für ein © die Kombination ALT-0169. Noch sicherer wäre die Kombination ALT-0253.

Mit einem Klick auf Weiter > im Export-Assistenten erstellen Sie schließlich die Textdatei.

Das Einlesen dieser Datei als Tabelle in Access übernimmt der Textimport-Assistent, der im weitgehend gleichen Gewand daherkommt, wie der Export-Assistent. Sie rufen ihn über den Ribbon und Externe Daten|Importieren und Verknüpfen|Textdatei auf. Auf den Seiten des Dialogs machen Sie dann exakt dieselben Angaben, wie beim Export. Es müssen Feldtrennzeichen, Begrenzungszeichen, Dezimalsymbol und Zeilenüberschriften übereinstimmen. Die so importierte Adressentabelle sollte dann die genau gleichen Daten zeigen, wie die Ursprungstabelle. Andere Eigenschaften der Tabelle, wie die Einstellungen zu Indizes, Default-Werten oder Beschränkungen, müssen Sie selbstverständlich manuell nachholen.

Import fremder Textdaten

Beim Export und Import von Tabellen über Textdateien aus Access heraus gibt es selten Probleme, wenn Sie die vorherigen Ausführungen beachten. Anders sieht das aus, wenn die Quelle der Textdatei eine fremde Anwendung ist. Vor allem dann, wenn diese etwa auf einem Mac oder unter Linux erstellt wurde, in einem anderen Land oder gar zu Zeiten, in denen MS-DOS noch das Maß der Dinge war. Zwar kann über den Assistenten und dessen Vorschau kontrolliert werden, welches die korrekten Trennzeichen oder Dezimalsymbole sind, aber das Ergebnis einer auf die Schnelle importierten Textdatei sieht dann unter Umständen aus, wie in Bild 4. Zwar fand der Import korrekt statt, weil der Import-Assistent erfolgreichen Vollzug meldete und sich keine Tabelle Einfügefehler bildete – was meist der Fall ist, wenn der Inhalt eines Textfelds mehr als 255 Zeichen enthielt, wofür ein Memofeld angelegt werden müsste –, aber die Texte zeigen seltsame Zeichen, die sich bei näherer Betrachtung als falsch konvertierte Umlaute herausstellen.

Fehlende Umlaute nach dem Import

Bild 4: Fehlende Umlaute nach dem Import

Grund dafür ist, dass sich Sprache und sogenannte Codepage zwischen Textdatei und Importspezifikation unterschieden. Was es damit im Detail auf sich hat, erläutern wir im nächsten Beitrag dieser Ausgabe, die sich mit dem Umgang mit Texten und Textdateien unter VBA beschäftigt. An dieser Stelle soll der Hinweis genügen, dass der Umlautfehler mit der richtigen Angabe der Codepage im Import-Assistenten leicht behoben werden kann. Klicken Sie also im Dialog den Button Erweitert... und ändern den Eintrag für die Codepage ab.

Hier setzt Access üblicherweise automatisch ein Westeuropäisch (Windows) ein, wenn es sich um eine Textdatei im ANSI-Format handelt. Access versucht zwar den Aufbau der Datei zu erraten, was in Bezug auf die Sprache jedoch meist misslingt. Versuchen Sie es mit Westeuropäisch (DOS), wie in Bild 5. Sobald Sie die Dialogseite über OK wieder schließen, ändert Access die Vorschau des Assistenten und verwendet die neu eingestellte Codepage (Bild 6). Tatsächlich finden sich nun auch korrekt dargestellte Umlaute in der Vorschau und schließlich auch in der importierten Tabelle.

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!