[ACCESS] Insert Into - Syntaxfehler!

meilon

Erfahrenes Mitglied
Hiho,
ich sitz gerade in der Schule und schreibe mit VB ein Programm. Datenbank is Access 2000 format und ich gehe über ADO an die Daten. Jetzt ist die Zeit rum, immer nur auszugeben, jetzt soll da auch mal was rein.

Hier der Query: INSERT INTO zwAuftrArt (AuftrNr, ArtikelNr, Menge, Position) VALUES (18111, 80133, 1, 1);

VB Meckert: "Syntaxfehler in INSERT INTO Anweisung", Fehlernummer: -2147217900 (80040e14) :D

Hab ich Tomaten auf den Augen oder spinnt da noch wer anders?

mfg
 
Ich hab mal selber nach dem Fehler geschauft (danke für den Link :D): DB_E_ERRORSINCOMMAND: The command contained one or more errors

Was soviel heißt wie Fehler im Syntax. Ich führe vorher ja auch einen ähnlichen Query aus, der eben in eine andere Tabelle etwas einfügt. Ich habe den Query davor auch mal deaktiviert, aber immernoch derselbe Fehler. Ich habe Feldgrößen überprüft, Beziehungen bearbeitet etc, aber es kommt immer dieser dumme Fehler!

Das regt mich langsam auf!

mfg
 
Was bezeichnest du als "vernünftig debuggen"? VB gibt mir diesen Fehler aus, und durch einen klick auf "Debuggen" springt er in die IDE und zeigt mir die Zeile, wo der Fehler liegt. Mit einem Hover über die Parameter der Aufrufes zeigt er mir auch keine Fehler an, es soll ja irgenwas an der INSERT INTO Anweisung falsch sein, nur was?

Hier mal die "kaputte" Zeile: oRecordset.Open sQueryS, oCon, adOpenForwardOnly, adLockReadOnly, 0

in sQueryS steht die oben genannte Abfrage

mfg
 
Mit oder mitohne, beides mag er nicht! Es ist ja auch nicht mein erster INSERT INTO Query mit VB über ADO in Access 2000. Ich habe auch versucht, mal einen Query so zu schreiben, ohne Variabeln einen Query aufbauen. Der selbe Fehler

Auch den vorherigen Query weglassen, also dass es der Erste nach dem Verbindung aufbauen - auch nix.

Ich verzweifele langsam

mfg
 
Okay, Problem gelöst! Warum auch immer, er mochte den Part "(AuftrNr, ArtikelNr, Menge, Position) " nicht!

Gelöcht und sofort gings :D

mfg
 
Uuudellelieeee,

lang, lang ist's her das diese Frage unbefriedigend behandelt wurde. Hier nun eine etwas ausführlichere Erläuterung inklusive Link zum MS Knowledge Base Artikel:

http://support.microsoft.com/kb/189220

Bei mir, wie auch bei dem Ersteller dieses Threads war wohl der springende Punkt, dass die Feldnamen ADO nicht geschmeckt haben. Keine Ahnung wieso - sie waren Ur-DEUTSCH :), also keine reservierten Namen und (eigentlich) ohne Leerzeichen.

Und hier der Lösung:
Einfach um jedes Feld in dem INSERT Statement eckige Klammern legen.
Bsp.: INSERT INTO Tabelle1([Feld1], [Feld2]) VALUES('Bla', 'Blabber');

Es könnte auch daran liegen, dass ADO die Leerzeichen zwischen den Kommata und den Feldnamen als Teil des Feldnamens interpretiert. Mit den eckigen Klammern wird dies behoben.

Ob das auch für reservierte Worte als Feldnamen funktioniert, weiß ich nicht.

Viele Grüße

Schlafor
 

Neue Beiträge

Zurück