Office: (Office 2000) INSERT INTO Statement mit mehreren Datensätzen

Helfe beim Thema INSERT INTO Statement mit mehreren Datensätzen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Leute, ich habe eine Access 2000 Datenbank. Diese liest in einer Schleife ein Logfile Zeile für zeila aus. Alle Zeilen werden in eine Tabelle... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von theonlyrobi, 20. April 2010.

  1. INSERT INTO Statement mit mehreren Datensätzen


    Hallo Leute,

    ich habe eine Access 2000 Datenbank. Diese liest in einer Schleife ein Logfile Zeile für zeila aus. Alle Zeilen werden in eine Tabelle geschrieben (über die "db.Execute" Methode). Bisher wird das mit einer INSERT INTO Anweisung pro Zeile gemacht:
    Code:
    Mit zunehmender Zeilenanzahl (inzwischen ca. 2000) wird der Prozess aber sehr langwierig, man wartet inzwischen ca. 30-50 Sekunden.

    Darum möchte ich mit einem INSERT INTO Statement gleizeitig mehrere Zeilen in die Tabelle einfügen. Das SQL-Statement würde ja normalerweise so aussehen:
    Code:
    Allerdings quittiert mir Access den Versuch, diese Anweisung auszuführen, mit einem Fehler. Die Suche nach meinem Problem hat mich unter anderem zu diesem Beitrag gebracht, wo zwar mein Problem erläutert wurde, aber keine Antwort zu dem Problem geschrieben wurde. Jetzt meine Frage: Wie schaffe ich es, in Access 2000 mehrere Datensätze aus meiner Textdatei gleichzeitig in eine Tabelle zu füllen?

    Robert

    :)
     
    theonlyrobi, 20. April 2010
    #1
  2. erste Frage, die alle stellen werden:
    Was für eine Fehlermeldung?
     
    Micha_DU, 22. April 2010
    #2
  3. Hi,

    wenn deine Datei entsprechend aufgebaut ist, kannst du auf sie direkt in einer Abfrage zugreifen und es ist mit Abstand die schnellste Methode.

    Die Abfrage sieht prinzipell so aus:

    Code:
     
    J_Eilers, 22. April 2010
    #3
  4. INSERT INTO Statement mit mehreren Datensätzen

    ein anderer Ansatz:
    Hast du es schon mal mit Recordsets ausprobiert? Ich hab hier eine Lösung im Einsatz, die auch regelmäßig Textdateien importiert. Recordset öffnen, Textdatei zeilenweise in eine Variable auslesen, Datensatz im Recordset anfügen. Geschwindigkeitsprobleme hab ich dabei nie wirklich festgestellt. Hab aber auch keinen Vergleich wie es aussähe wenn ich die .AddNew Anweisungen durch Insert-Anweisungen ersetzen würde.
     
    Micha_DU, 22. April 2010
    #4
  5. Hallo Micha_DU,

    sorry, die Fehlermeldung habe ich vergessen: "Laufzeitfehler 3137: Fehlendes Semikolon (*wink.gif* am Ende der SQL-Anweisung".

    Versteht sich von selbst, dass das Semikolon gesetzt ist. Die nicht durchgeführte Anweisung hat die Syntax
    Code:
    Robert
     
    theonlyrobi, 22. April 2010
    #5
  6. Hallo Micha_DU,

    Wenn es so sein sollte, dass keine mehrzeiligen INSERT INTO Statements ausgeführt werden können, muss ich es mittels Recordset versuchen. Ich würde aber schon gerne einfach die SQL-Anweisungen ausführen, da ich mir nicht so richtig vorstellen kann, dass es nicht geht und ich außerdem dann nicht so viel umbauen muss im Quellcode.

    Hallo J_Eilers,

    Dann muss der Inhalt der Datei aber schon einer qültigen SQL-Syntax entsprechen oder? Es sind allerdings wie gesagt Logdaten, die erst mittels VBA umformatiert und gekürzt werden.

    Robert
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    theonlyrobi, 22. April 2010
    #6
  7. Hallo Robert,
    Die von dir verwendete Syntax ist nur zum Anfügen eines einzelnen Datensatzes geeignet! Zum Anfügen mehrerer Datensätze müsstest du, wie Jan es angedeutet hat und in der Hilfe zu finden ist, eine Syntax ala
    verwenden.
    Wenn du die anzufügenden Datensätze nicht mit einem SELECT erfassen kannst, ist das Arbeiten mit einem Recordset schneller:

    Code:
     
    Marsu65, 22. April 2010
    #7
  8. INSERT INTO Statement mit mehreren Datensätzen

    also viel umgebaut werden muss nicht, vor allem wenn du schreibst dass Daten umformatiert und gekürzt werden müssen bevor das Einfügen stattfindet.

    Grundsätzlich würde es so aussehen können
    Code:
    vielleicht kannste das ja mal testen *Smilie

    Edit:
    Marsu war schneller
     
    Micha_DU, 22. April 2010
    #8
  9. Nein, die Datei muss nur zB kommasepariert o.ä. sein.
     
    J_Eilers, 22. April 2010
    #9
  10. Hallo Marsu65,
    Bist du sicher? Die von mir beschriebene Syntax ist allgemein für SQL gültig, um mehrere Datensätze gleichzeitig einzufügen. Wenn Du diese bspw. in einer MySQL-Datenbank absetzt, wirst du merken, dass es klappt. Die Frage ist, ob man das auch in Access nutzen kann.

    Diese Anweisung kann ich doch nur verwenden, wenn die Quelldaten in einer anderen Tabelle liegen, oder? Weil ich kann ja nicht auf eine Textdatei oder eine Variable eine SELECT-Anweisung schicken.

    Das bleibt dann leider wohl die einzige Alternative :-(

    Robert
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    theonlyrobi, 22. April 2010
    #10
  11. Hallo Leute,

    danke für Eure Antworten. Ich probiere mal die Lösung mit einem Recordset zu implementieren.

    Robert
     
    theonlyrobi, 22. April 2010
    #11
  12. das kann man sehr wohl... es ist definitiv möglich, Textdateien als Tabelle zu verknüpfen. Und mit den Tabellen kannste dann recht viel anstellen *wink.gif*
     
    Micha_DU, 22. April 2010
    #12
  13. INSERT INTO Statement mit mehreren Datensätzen

    Hallo Marsu65 und Micha_DU,

    ich habe jetzt meinen Code mittels Recordset umgebaut. Das Ergebnis ist wirklich um ein vielfaches schneller. 2200 Datensätze werden jetzt in ca. 1 Sekunde eingefügt, wo die vorherige Methode mittels einzelner INSERT INTO Anweisungen 30-50 Sekunden gedauert hat.

    Danke noch einmal an Euch!

    Okay wieder was neues gelernt, das muss ich bei Gelegenheit mal ausprobieren :-) Allerdings dürfte sich diese Lösung trotzdem nicht für meinen Anwendungsfall eignen, da ich wie gesagt die Inhalte erst umformatieren muss und diese auch nicht kommasepariert vorliegen.

    Also danke noch mal! Robert
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    theonlyrobi, 22. April 2010
    #13
Thema:

INSERT INTO Statement mit mehreren Datensätzen

Die Seite wird geladen...
  1. INSERT INTO Statement mit mehreren Datensätzen - Similar Threads - INSERT INTO Statement

  2. MS ACCESS Insert into Foto in Datenbank

    in Microsoft Access Hilfe
    MS ACCESS Insert into Foto in Datenbank: Hallo. Ich benutze MS ACCESS im Office 365. Habe eine Anwendung geschrieben, in der in einem Formular ein Foto im Typ Bild dargestellt wird. Ich möchte nun dieses Foto mittels einem "Insert...
  3. Info über SQL INSERT INTO

    in Microsoft Access Hilfe
    Info über SQL INSERT INTO: Hi, ich wollte gerne wissen ob man bei einem neuen Datensatz in der Haupttabelle gleich in die Untertabelle schreiben kann. Wenn ja, wie? Wenn nein, welche referenzen von der Haupttabelle muss...
  4. db.Execute " INSERT INTO

    in Microsoft Access Hilfe
    db.Execute " INSERT INTO: Hallo Leute, sehe den Wald vor lauter Bäumen nicht.... kann mir jemand helfen den Knopf zu lösen? Ich erhalte immer die Fehlermeldung: "ein Parameter wurde erwartet, aber es wurden zu wenig...
  5. Datum per Insert Into in Tabelle einfügen mit Where

    in Microsoft Access Hilfe
    Datum per Insert Into in Tabelle einfügen mit Where: Hallo, ich stehe mal wieder vor einem Problem, an dem ich nicht weiter komme und bereits fast den ganzen Tag ohne Erfolg rummgoogle. *entsetzt Ich habe in einer Tabelle Datensätze die jeweils...
  6. INSERT INTO klappt nicht

    in Microsoft Access Hilfe
    INSERT INTO klappt nicht: Hallo und guten Morgen zusammen, ich möchte den angezeigten/eingegebenen Formularinhalt in eine Tabelle speichern, erhalte jedoch den Laufzeitfehler '3075': Synaxfehler (fehlender Operator) in...
  7. Mehrwertige Felder: INSERT INTO von Zellinhalten mit recordset2

    in Microsoft Access Hilfe
    Mehrwertige Felder: INSERT INTO von Zellinhalten mit recordset2: Hallo versierte ACCESS-User und vielleicht Bezwinger der "Mehrwertigen Felder" Ziel der 'Sub': In der Tabelle T2_Ziel werden die Einträge von Tabelle T1_Quelle übernommen, die bzgl....
  8. INSERT INTO-Anweisung

    in Microsoft Access Tutorials
    INSERT INTO-Anweisung: INSERT INTO-Anweisung Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  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