Kleines Problem mit einem SQL INSERT
Hallo mal ne kleine Frage
wen ich folgenden Code (nach diesem Text) eintrage wird mir immer angezeigt Syntaxfehler irgendwo ist ein Fehler aber wo
Function kundeAnlegen()
SQL_ExecDirect "INSERT INTO [dbo].[kundendaten] (id, vorname, nachname, plz, ort, telefon, email, kundennummer) " & _
"VALUES ('" & id & "','" & vorname & "','" & nachname & "','" & plz& "' , '" & ort & "','" & telefon & "','" & email & "','" & kundennummer & "')"
SQL_ExecDirect "exec dbo.proc_UserAnlegen"
MsgBox "Der Kunde wurde angelegt"
End Function
wen ich folgenden Code (nach diesem Text) eintrage wird mir immer angezeigt Syntaxfehler irgendwo ist ein Fehler aber wo
Function kundeAnlegen()
SQL_ExecDirect "INSERT INTO [dbo].[kundendaten] (id, vorname, nachname, plz, ort, telefon, email, kundennummer) " & _
"VALUES ('" & id & "','" & vorname & "','" & nachname & "','" & plz& "' , '" & ort & "','" & telefon & "','" & email & "','" & kundennummer & "')"
SQL_ExecDirect "exec dbo.proc_UserAnlegen"
MsgBox "Der Kunde wurde angelegt"
End Function
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 185840
Url: https://administrator.de/forum/kleines-problem-mit-einem-sql-insert-185840.html
Ausgedruckt am: 15.05.2025 um 02:05 Uhr
1 Kommentar
Moin Maikomani,
willkommen im Forum.
Um deine Frage sauber beantworten zu können müssten wir die Datentypen deiner Tabelle kennen.
Vermutlich sind ja alle Felder außer id ("vorname", "nachname", "Plz", "ort"...) vom Typ her Stringfelder.
Die hast du auch richtigerweise in einfache Anführungszeichen eingemummelt.
Bei der (numerischen) "id" darfst du das nicht.
Wobei ich unterstelle, dass die Funktion "kundeAnlagen()" woher auch immer die Variablen "id", "vorname" etc kennt. Für wartbar halte ich so einen Code eher nicht.
BTW - mögliche Fehler lassen sich auch in der Funktion abprüfen - in der Praxis wahrscheinlicher als ein Syntaxfehler ist doch ein "normaler" PK/FK-Constraintfehler (kann Satz nicht anlegen, weil doppelt oder weil PLZ nicht in meiner PLZ/Ort-Tabelle).
Das muss die funktion abfackeln und nicht einfach bei Erfolg oder Misserfolg gleichmaßen die nächste Funktion "UserAnlegen" aufrufen.
Grüße
Biber
willkommen im Forum.
Um deine Frage sauber beantworten zu können müssten wir die Datentypen deiner Tabelle kennen.
Vermutlich sind ja alle Felder außer id ("vorname", "nachname", "Plz", "ort"...) vom Typ her Stringfelder.
Die hast du auch richtigerweise in einfache Anführungszeichen eingemummelt.
Bei der (numerischen) "id" darfst du das nicht.
Function kundeAnlegen()
SQL_ExecDirect "INSERT INTO [dbo].[kundendaten] (id, vorname, nachname, plz, ort, telefon, email, kundennummer) " & _
"VALUES (" & id & ", '" & vorname & "', '" & nachname & "', '" & plz & "', '" & ort & "', '" & telefon & "', '" & email & "', '" & kundennummer & "')"
SQL_ExecDirect "exec dbo.proc_UserAnlegen"
MsgBox "Der Kunde wurde angelegt"
End Function
BTW - mögliche Fehler lassen sich auch in der Funktion abprüfen - in der Praxis wahrscheinlicher als ein Syntaxfehler ist doch ein "normaler" PK/FK-Constraintfehler (kann Satz nicht anlegen, weil doppelt oder weil PLZ nicht in meiner PLZ/Ort-Tabelle).
Das muss die funktion abfackeln und nicht einfach bei Erfolg oder Misserfolg gleichmaßen die nächste Funktion "UserAnlegen" aufrufen.
Grüße
Biber