Office: (Office 2003) Textfile importieren

Helfe beim Thema Textfile importieren in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo allerseits, seit einigen Tagen sitze ich hier und versuche ein Textfile mit folgendem Aufbau (trennzeichen zwischen Spalten TAB, am Ende der... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Seyfert, 11. Juli 2010.

  1. Textfile importieren


    Hallo allerseits,
    seit einigen Tagen sitze ich hier und versuche ein Textfile mit folgendem Aufbau (trennzeichen zwischen Spalten TAB, am Ende der Zeile ENTER) in eine Tabelle zu importieren:

    DAbei handelt es sich bei "WPM..." um die PatID, 83/396/154/404/- sind die entsprechenden Spaltenwerte. Die Spalten nach der PatID bis zu den eigentlichen WErten brauche ich nicht, können aber beim Exportieren am messenden Gerät nicht unterdrückt werden.

    Mein letzter Stand des Codes sieht wie folgt aus:
    Code:
    Ich habe bereits das Forum bis ins kleinste durchforstet und verschiedene Lösungsansätze versucht. Doch leider komme ich nicht so ganz weiter. Im Anhang ist das derzeitige Ergebnis des o.g. Codes.

    Ich hoffe es kann mir jemand helfen.
    Vielen Dank schon mal im voraus.....

    Viele Grüße
    Tanja

    :)
     
    Seyfert, 11. Juli 2010
    #1
  2. Hallo Tanja,

    ähnliche Probleme habe ich schon des öfteren auf dem Tisch gehabt.

    Ich gehe da in der Regel so vor, dass ich die Textdatei einlese und noch einmal in eine hmm saubere CSV-Datei schreibe, diese würde dann bei Dir so aussehen:

    PatID;QRS;QT;PR;QTc;B Zeit
    WPM50358;83;396;154;404;-
    WPM50358;83;396;154;397;-
    WPM50358;83;400;150;416;-
    WPM50358;79;396;150;414;-
    WPM50358;79;396;154;414;-
    WPM50358;83;396;154;409;-
    WPM50358;83;396;146;409;-
    WPM50358;83;396;150;401;-
    WPM50358;79;388;154;412;-
    WPM50358;83;396;150;408;-
    WPM50358;83;396;150;416;-

    Danach importiere ich die Daten mit dem Domd.Transfertext.

    Man kann schon auc wie du das vorhattest die Daten beim Interpretieren der Textdatei gleich in eine Tabelle schreiben.

    Erfahrungsgemäß gehtz es aber schneller eine Textdatei zu lesen, eine neue zu schreiben und dann auf einen Rutsch zu importieren.
    Je Zeile einen RecordSet.AddNew ... und - Update durchzuführen
    kann bei großen Datenmengen sehr viel Zeit kosten.

    Wenn Du eine Datendatei zur Verfügung stellst kann ich Dir gerne die Lösung basteln.

    Schöne Grüße

    Frank
     
    fhentzsc, 13. Juli 2010
    #2
  3. Hallo Tanja,

    eigentlich sollte das Problem mit einer Import-Spezifikation ohne Problem zu lösen sein, oder Du importierst die komplette Textdatei in eine temporäre Tabelle die Du dann Datensatz für Datensatz abarbeiten, und in die Originaltabelle speichern kannst.
    Wenn Du Lust hast, dann lade eine Textdatei hoch.

    Servus
    Peter
     
    peterffw, 13. Juli 2010
    #3
  4. Textfile importieren

    Hallo,
    danke für die Vorschläge. Mir würde die Lösung mit der Import-Spezifikation besser gefallen, zumal es zukünftig eine Importgeschichte mit mehreren Textfiles und nicht nur der einen, werden wird. D.h. ich habe mehrere Textfiles (aufbau wie diese) und lese diese nacheinander auf einen Rutsch ein.

    Hier aber das Textfile, wie gewünscht.

    Bin gespannt wie das aussehen wird mit der Spezifikation, hab eine solche noch nicht selbst geschrieben.

    Viele Grüße
    Tanja
     
    Seyfert, 13. Juli 2010
    #4
  5. Hallo Tanja,

    wenn ich das richtig sehe sind die Werte in deiner Datei nicht mit Tab sondern n Leerzeichen getrennt. Lässt sich auch lösen aber man muß es eben wissen.

    Per Importspezfikation kenne ich dazu den Lösungsweg nicht, bei Excel kann man Bereiche angeben, bei textdateien meines Wissens nicht. Aber ich lasse mich gerne eines Besseren belehren.

    Ich sehe mal ob ich dir dir Lösung bald zuwerfen kann.

    Gruß

    Frank
     
    fhentzsc, 13. Juli 2010
    #5
  6. Hallo Tanja,

    eine Importspezifikation wird sowieso benötigt, so sagen wir dem Import welche Trenzeichen verwendet werden sollen und ob es Besonderheiten gibt.

    Weißt du wie du so eine Spzifikation anlegen kannst?

    Ich habe hier den Code zum Importieren der Datei in die Tabelle. Das ist auch so programmiert, dass du diese Prozedur n mal mit verschiedenen Dateinamen aufrufen könntest:

    Code:
     
    fhentzsc, 13. Juli 2010
    #6
  7. Hi Tanja,

    anbei ein kleines Beispiel - ohne Importspezifikation, da die nicht so sehr geeignet ist bei dem Format der Textdatei.


    Servus
    Peter
     
    peterffw, 13. Juli 2010
    #7
  8. Textfile importieren

    Habe interessehalber mal versucht, die Schleife von Tanja zum Laufen zu bringen. Hier das Ergebnis:
    Code:
     
    maikek, 13. Juli 2010
    #8
  9. Optimierungen zum guten Code von Maike:

    1) Die Anzahl der Leerzeichen ist unterschiedlich. Darauf muss man reagieren.
    Code:
    2) Die Verwendung von CurrentDb erzeugt eine jedesmalige Neuinstanzierung der aktuellen DB - das ist in einer Schleife ungünstig. Daher Verwendung von CurrentDbC bevorzugen oder zumindest eine Objektvariable setzen:
    Code:
    3) Beim Einfügen von mehreren jeweils einzelnen Datensätzen sollte eine Insert-Anweisung per Recordset besser abschneiden als eine jedesmalige Anfügeabfrage, weil nur einmal eine Referenz zur Zieltabelle aufgebaut werden muss.

    Das Einfügen eines Bindestrichs in ein Date-Feld bzw. Long-Feld (time) kommt sicher nicht gut. Da wäre eine Zusatzbehandlung nötig.
     
    ebs17, 13. Juli 2010
    #9
  10. Du kannst auch mit einer Importspezi (feste Breite) arbeiten und anschließend per Trim() alle überflüssigen Leerzeichen entfernen. Vielleicht ist das schneller?
     
    achtelpetit, 13. Juli 2010
    #10
  11. Hier wäre eine weitere Variante:
    Code:
    Hier werden von der Textdatei die ersten vier Zeilen entfernt, dabei die erste Zeile "gemerkt". Dann werden die Datensätze direkt aus der Texttabelle in die Zieltabelle geschrieben. Dabei wird eine Importspezifikation Ekg_Spec (mit fester Spaltenbreite) verwendet und unterstellt, dass das Zielfeld XTIME für Zeit in Minuten vom Typ Long ist (Double wäre auch in Ordnung).

    Da auf zeilenweises Neuschreiben der Textdatei sowie auch auf zeilenweises Schreiben der Datensätze in die Zieltabelle verzichtet wird, würde ich eine ordentliche Performance erwarten.

    Die Schleife, um weitere Textdateien einzulesen, ist bereits vorhanden.
     
  12. \@Eberhard:
    Danke für die Blumen *wink.gif* .
    Eine Frage hätt' ich noch: Ich war der Meinung, durch Set db = CurrentDb erzeuge ich eine neue Instanz? Und wenn ich einfach nur "zugreife", dann nicht?
    (Der Bindestrich wird übrigens ebenso wie das überflüssige Leerzeichen in der ersten Spalte "sauber" ignoriert, wenn die Tabellenfelder das entsprechende Format Long oder Date haben, aber besser ist es natürlich, das ordentlich zu behandeln ...)
    maike
     
    maikek, 13. Juli 2010
    #12
  13. Textfile importieren

    \@Maike: Vergleiche Performance in VBA+Formularen von Josef Pötzl, Seite 8 unten

    Mit der Objektvariablen wird eine Instanz erzeugt (die dann genutzt wird), mit CurrentDb "wird jedes Mal eine neue Instanz eines Datenbankobjektes erzeugt".

    Die Unterschiede werden aber recht klein und zu vernachlässigen sein, wenn die Datensatzzahlen im unteren Bereich sind. Andere Begleitumstände des Imports sollten größeren Einfluss auf die benötigte Zeit haben.

    Das Gleiche wie für CurrentDb gilt übrigens auch für mein verwendetes Objekt oFSO (#11). Das würde man bei größeren Dateizahlen nicht jedesmalig instanzieren, sondern vorab einmalig mit einem Freigeben nach letzter Nutzung. Wenn man unmittelbar mehrere Fahrten mit dem Auto hintereinander unternimmt, würde man auch kaum auf die Idee kommen, zwischendurch das Auto in die Garage zu fahren, die Garage abzuschließen und den Schlüssel an das heimische Schlüsselbrett zu hängen, um dann die nächste Fahrt zu starten.
     
  14. \@Eberhard
    dann hatte ich es bisher genau falsch herum verstanden, danke.
    maike
     
    maikek, 13. Juli 2010
    #14
  15. Hallo allerseits,
    sorry, dass ich mich erst jetzt wieder melde, war in den letzten Tagen in andere Projekte sehr eingespannt.

    Ich war richtig geplättet, wieviele vorschläge und Codes von Euch allen kamen. Ich werde mir diese alle mal ansehen und entsprechend in meine DB reinbasteln.

    Vielen vielen Dank für EUre Unterstützung.

    Viele Grüße
    Tanja
     
    Seyfert, 15. Juli 2010
    #15
Thema:

Textfile importieren

Die Seite wird geladen...
  1. Textfile importieren - Similar Threads - Textfile importieren

  2. Datei als OLE-Objekt importieren

    in Microsoft Excel Hilfe
    Datei als OLE-Objekt importieren: Hallo zusammen, leider funktioniert im nachfolgenden Code, um eine Word-Datei via Dateiauswahl/FilePicker auszuwählen und als OLE-Objekt zu speichern, der Teil des Importierens nicht. Fehler...
  3. Word-Datei als OLE-Objekt in XLSM importieren

    in Microsoft Excel Hilfe
    Word-Datei als OLE-Objekt in XLSM importieren: Hallo zusammen, ich habe bereits eine Word-Datei (mit Textmarken sowie Kopf-und Fußzeilen) als OLE-Objekt in meine XLSM-Datei importiert und kann diese auch exportieren. Wenn ich dann aber Daten...
  4. Import Daten aus Access Abfrage klappt nicht

    in Microsoft Excel Hilfe
    Import Daten aus Access Abfrage klappt nicht: Moin, ich habe ein Problem. Ich habe eine Datenbank in Access mit diversen Tabellen und Abfragen. Jetzt habe ich eine neue Abfrage erstellt und muß das Ergebnis täglich in eine Exceldatei...
  5. huge PDF to EXCEL

    in Microsoft Excel Hilfe
    huge PDF to EXCEL: Hi, was wäre die schnellste Möglichkeit (außer Acrobat) einen großen PDF (2.000 bis 10.000 Seiten in Excel umzuwandeln? es geht um große TRX Berichte die ich nicht teilen kann..
  6. bestimmte Zellen von Excel in Textfile exportieren

    in Microsoft Excel Hilfe
    bestimmte Zellen von Excel in Textfile exportieren: Hallo zusammen Ich möchte aus Excel den Inhalt zweier nebeneinander liegenden Spalten (In meinem Fall Spalte R und Spalte S) in eine Textdatei exportieren. Die Textdatei sollte folgendermaßen...
  7. Verknüpfung mit Textfile

    in Microsoft Access Hilfe
    Verknüpfung mit Textfile: Liebes Forum! Ich habe mehrere Textfiles, die ich in Access einzeln reinverknüpfen möchte. Die Textfiles werden immer wieder ausgetauscht. Die Reihenfolge der Spalten im Textfile kann sich ändern,...
  8. x2000: textfile-import mit ";" getrennt _und_ fest

    in Microsoft Excel Hilfe
    x2000: textfile-import mit ";" getrennt _und_ fest: Hallo, allerseits! Ich hab da seit einiger Zeit ein Problem, daß, dank immer länger werdender Liste, immer lästiger wird. Von einem Großrechner bekomme ich eine Datei, die einerseits mit...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden