Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Syntaxfehler bei INSERT INTO (Nullwerte)

Begonnen von Doming, Oktober 08, 2025, 11:49:47

⏪ vorheriges - nächstes ⏩

Doming

Hallo,

mein VBA-Code meckert über meinen SQL-String (Syntaxfehler)
cDB.Execute "INSERT INTO tbl_Laderaum(fsPal, fsLKW, LPLaenge, " _
                                            & "LPBreite, LPHoehe, LPGewicht, LPPack) " _
                          & "VALUES (0" _
                          & ", " & rsTmp!FSLKW _
                          & ", " & rsTmp!Laenge _
                          & ", " & rsTmp!Breite _
                          & ", " & rsTmp!Hoehe _
                          & ", " & rsTmp!Gewicht _
                          & ", " & rsTmp!PackID & ")"
Das Direktfenster übersetzt den String so:
INSERT INTO tbl_Laderaum(fsPal, fsLKW, LPLaenge, LPBreite, LPHoehe, LPGewicht, LPPack) VALUES (0, 414, , , , , 1)Die Feldeigenschaften sind alle auf Zahl gesetzt
Sie dürfen in diesem Board keine Dateianhänge sehen.

Wieso darf ich keine Nullwerte einfügen?

Knobbi38

Hallo Doming,

hat mit dem Einfügen von NULL-Werten sicherlich nichts zu tun, aber m.W.n. muss für jedes angegebene Feld auch ein Wert angegeben werden; daher könnte auch der Syntaxerror herrühren. Sie dir nochmal in der Jet-SQL Hilfe die genaue Beschreibung und Anmerkungen zu der SQL-Anweisung "INSERT INTO ..." an. Ich meine, dort wäre das auch so erklärt.

Knobbi38
 

Beaker s.a.

@Ulrich
Anzahl Felder und Values stimmen überein.

@Doming
Ich könnte mir vorstellen, dass es am Datentyp der Felder mit den
Massen liegt; - kann man nicht erkennen.
Bei LongInteger (wie bei den FK-Felder) dürfte nix falsch laufen,
ausser das evtl. vorhandene Nachkommastellen verschwinden.
Bei Zahlentypen mit Nachkommastellen kann es sein, dass das Dezimal-
zeichen den Fehler auslöst.
Da müssten m.E. die Values angepasst werden
...
& ", " & Str(rsTmp!Laenge) _
...
Die anderen Felder entsprechend.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

PhilS

Zitat von: Doming am Oktober 08, 2025, 11:49:47Wieso darf ich keine Nullwerte einfügen?
Klar darfst du Nullwerte einfügen. Du tust es nur nicht. Das würde so aussehen:

INSERT INTO tbl_Laderaum(fsPal, fsLKW, LPLaenge, LPBreite, LPHoehe, LPGewicht, LPPack) VALUES (0, 414, NULL, NULL, NULL, NULL, 1)
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Knobbi38

@Beaker s.a.

Zitat von: Beaker s.a. am Oktober 08, 2025, 13:27:48@Ulrich
Anzahl Felder und Values stimmen überein.

Nein, die Anzahl stimmt nicht überein.

In dem Beispiel wird für das Feld "LPLaenge" kein Value angegeben (",,"). Eine Auslassung eines Wertes durch weglassen, so daß nur 2 Kommas stehen bleiben um somit den Wert einfach über die Position zu bestimmen, wie es bei einem Funktionsaufruf in VBA möglich ist, gibt es m.M.n. nicht in SQL. Deshalb der Syntaxerror. Wenn du für den Feld keinen Wert angegeben möchtest, müsste man eventuell explizit den Wert "NULL" angeben, so wie es Phil schon vorgeschlagen hat.

Gruß Ulrich