Supportnet / Forum / Datenbanken
A97 - Text-File importieren, umwandlen in die Tbl speichern
Frage
Hallo liebe Experten,
ich habe folgendes Problem.
GEGEBEN:
a) In einem bestimmten Verzeichnis c:/daten habe ich jeden Tag eine Text-Datei mit einem Namen meinedatei20031008.txt. Das heißt der dateiname ändert sich jeden Tag nur um das Datum.
b) Diese Textdatei besteht aus einer konstanten Anzahl von Spalten mit semikolongetrennten Daten. Einzelne Zellen sind mit Zahlen oder Text gefüllt. Ist eine Zelle nicht gefüllt, steht dort ein $-Zeichen.
Beispiel:
Feld1; Feld2; Feld3; Feld4; Feld5
Bla; 4567; $;$; test
WAS ICH WILL:
Ich möchte in einem Formular einen Button haben, der beim Klicken folgendes macht:
Daten aus dieser Textdatei jeden Tag einliest, in eine Access-Tabelle importiert und die "$"-Zeichen durch Leerzeichenfolge (also "") ersetzt.
Vielen Dank und Gruß
mb
Antwort 1 von LowNoise
...in einem Formular... heisst das das Du das ganze in eine Access Datenbank haben willst die dann anschliessend ein Formular generiert oder soll das ganze einfach in eine Excel Tabelle eingelesen werden?
Antwort 2 von martin boll
LowNoise,
richtig, ich will das schon in einer Access-Tabelle speichern.
mb
richtig, ich will das schon in einer Access-Tabelle speichern.
mb
Antwort 3 von martin boll
Hallo Leute,
ich habe das Importieren mit einer Funktion und DoCmd.TransferText hingekriegt.
Das Problem mit dem Umwandeln von $-Zeichen in ""-Zeichen bleibt aber noch!
Hat jemand eine Idee?
Vielen Dank
mb
ich habe das Importieren mit einer Funktion und DoCmd.TransferText hingekriegt.
Das Problem mit dem Umwandeln von $-Zeichen in ""-Zeichen bleibt aber noch!
Hat jemand eine Idee?
Vielen Dank
mb
Antwort 4 von DatenKay
Hi Martin,
sind die $-Zeichen immer in der/den gleichen Spalte(n) oder können sie an beliebiger Stelle der DS in der Tabelle auftauchen? Wie viele Spalten enthält die Tabelle? Das entscheidet nämlich darüber, ob man das Problem mit einer einfachen Aktualisierungsabfrage erschlagen kann oder ob eine Funktion erstellt werden muss, die jede Spalte der Tabelle nacheinander nach $-Zeichen abklappert und diese ersetzt.
Gruß,
DatenKay
sind die $-Zeichen immer in der/den gleichen Spalte(n) oder können sie an beliebiger Stelle der DS in der Tabelle auftauchen? Wie viele Spalten enthält die Tabelle? Das entscheidet nämlich darüber, ob man das Problem mit einer einfachen Aktualisierungsabfrage erschlagen kann oder ob eine Funktion erstellt werden muss, die jede Spalte der Tabelle nacheinander nach $-Zeichen abklappert und diese ersetzt.
Gruß,
DatenKay
Antwort 5 von martin boll
Hi DatenKay,
die Tabelle enthält insgesamt 30 Spalten, die $-Zeichen können in jeder beliebiger Zelle eines Datensatzes erscheinen.
Man muß sich so vorstellen: bei dieser Tabelle handelt sich um die Anzeige von Änderungen zwischen zwei Tagen. Ändert sich ein Feldinhalt, so steht da ein/e Text/Zahl, ändert sich nichts, so steht ein $-Zeichen drin.
Gruß
M
die Tabelle enthält insgesamt 30 Spalten, die $-Zeichen können in jeder beliebiger Zelle eines Datensatzes erscheinen.
Man muß sich so vorstellen: bei dieser Tabelle handelt sich um die Anzeige von Änderungen zwischen zwei Tagen. Ändert sich ein Feldinhalt, so steht da ein/e Text/Zahl, ändert sich nichts, so steht ein $-Zeichen drin.
Gruß
M
Antwort 6 von DatenKay
Hi Martin,
eine Lösung, die keinen Programmieraufwand wohl aber einen geringen täglichen Arbeitsaufwand bedeutet ist:
öffne Deine Tabelle in der Datenblattansicht und verwende die Accessfunktion "Suchen/Ersetzen" (Fernglas in der Menuzeile).
Hört sich platt an (ist es ja auch) kostet aber nicht viel Zeit.
Wenn das so nicht reicht, weil es unbedingt automatisiert werden muss, dann heisst es fleißig programmieren (ich grübel 'mal druber nach)
Gruß,
DatenKay
eine Lösung, die keinen Programmieraufwand wohl aber einen geringen täglichen Arbeitsaufwand bedeutet ist:
öffne Deine Tabelle in der Datenblattansicht und verwende die Accessfunktion "Suchen/Ersetzen" (Fernglas in der Menuzeile).
Hört sich platt an (ist es ja auch) kostet aber nicht viel Zeit.
Wenn das so nicht reicht, weil es unbedingt automatisiert werden muss, dann heisst es fleißig programmieren (ich grübel 'mal druber nach)
Gruß,
DatenKay
Antwort 7 von Peter K
Hi,
falls die $ Zeichen als einzige Zeichen in einem Feld stehen, sollte man das Problem mit nem SQL-Statement erschlagen koennen...
Etwa so:
Update TABLENAME set FELDNAME1 = 'leer' where FELDNAME1 = '$';
Hope this helps
Peter
falls die $ Zeichen als einzige Zeichen in einem Feld stehen, sollte man das Problem mit nem SQL-Statement erschlagen koennen...
Etwa so:
Update TABLENAME set FELDNAME1 = 'leer' where FELDNAME1 = '$';
Hope this helps
Peter