maikomani
Goto Top

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

Content-Key: 185840

Url: https://administrator.de/contentid/185840

Printed on: April 25, 2024 at 20:04 o'clock

Member: Biber
Biber Jun 03, 2012 updated at 11:58:02 (UTC)
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