maikomani

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

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

Biber
Biber 03.06.2012 aktualisiert um 13:58:02 Uhr
Goto Top
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.

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
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