|
|
Thema:
|
Access 97/2000 |
Frage: |
Ich möchte per VBA-Prozedur eine Textdatei ohne Feldnamen
einlesen und an eine vorhandene Access-Tabelle anhängen. Beim
Einlesen über die Methode "TransferText" erscheint die
folgende Fehlermeldung:
"Das Feld 'F1' gibt es in der Zieltabelle 'Tabelle1' nicht.
Microsoft Access konnte die Tabelle nicht anfügen."
Werden die Felder in der Access-Tabelle in F1 ... Fx umbenannt,
funktioniert das ganze, aber das ist natürlich keine Lösung. Wie
komme ich an meine Daten? |
Lösung: |
Die eigentliche Frage müsste lauten: Ist es wirklich ein Bug oder
vielleicht ein gewolltes Feature, denn dieses Problem gab es bereits
in Access 97 und wurde auch in Access 2000 nicht behoben. Die
Ursache ist in den Importspezifikationen zu suchen: Wenn Sie keine
Spezifikationen angeben, verwendet Access die Standardeinstellungen
und die sehen vor, dass die Felder der eingelesenen Datei mit
"Feld1" bzw. "F1",
"Feld2"/"F2" usw. benannt sind.
In der Access-Tabelle, an die die Daten angehängt werden sollen,
sind diese Felder natürlich nicht vorhanden und da die Zuordnung
ausschliesslich über den Feldnamen und nicht über die Reihenfolge
der Spalten durchgeführt wird, kommt es zu dem Fehler. Die Lösung
ist einfach, denn Sie müssen lediglich eine Importspezifikation mit
den korrekten Feldnamen anlegen. Dazu führen Sie den Import über Datei-Externe
Daten-Importieren einmal manuell durch und klicken dabei
im ersten Schritt des Assistenten auf Weitere.
Geben Sie dann unter "Feldinformationen" die
entsprechenden Feldnamen ein und sichern Sie die Einstellungen über
die Schaltfläche Speichern unter.
Diesen Schritt müssen Sie nur ein einziges Mal durchführen, denn
die Spezifikation ist damit gespeichert und Sie können sie als
zweiten Parameter der "TransferText"-Methode angeben. Zum
Beispiel:
DoCmd.TransferText acImportDelim,
"Spezifikationsname", _
"Zieltabelle","c:\Import.txt"
|
|