2016-03-21 7 views
1
strSQLzm1a = "INSERT INTO dbGrafikTest (imieNazwisko, numerTelefonu, zmiana, praca, data) VALUES ('" & Me!listZM1a.Column(0) & "', '" & Me!listZM1a.Column(1) & "', 'zm1', 'automatyk', #" & Me!txtData & "#);" 

Diese SQL-Anweisung gibt Fehler:Short Date aus Textfeld in SQL-Anweisung ms Zugriff

Syntax error in date in query expression '#21.03.2016'.

txtData ist ein text field und seine als Short Date formated. Ich suche googles, um die Antwort zu finden, wo ich einen Syntaxfehler machte und ich wirklich nicht verstehe, wo ich es tat.

Die Datenbankspalte data wird auch als Date/Time formatiert.

+0

Sie haben ein '#' am Ende Ihrer Insert-Anweisung. Ist das Absicht? – ChrisF

+0

Ich bin nicht verpflichtet, '#' am Anfang und am Ende des 'Objekts' zu setzen, um sein Datumsfeld zu bestimmen? – Eska

+0

Ah - Habe gerade entdeckt, dass es Access ist, also kenne ich die Antwort nicht, aber es scheint, dass das führende '#' ein Problem sein könnte. Was passiert, wenn Sie es verpassen? – ChrisF

Antwort

0

Die db-Engine kann 21.03.2016 nicht als Datumsliteral verarbeiten.

Format es in einer Weise, die der db-Motor verwenden kann.

Ändern Sie diese ...

& Me!txtData & 

dazu ...

& Format(Me!txtData, "yyyy-m-d") & 

Oder Sie könnten eine Parameter-Abfrage verwenden und dann ohne Format betrifft die benötigte Datum/Zeit-Wert liefern.

+0

Danke, etwas Neues zu lernen. Das hat mein Problem behoben. Ich nahm an, dass, wenn ich alles als Datum formatiere, keine Formatierung in der SQL-Anweisung benötigt wird. – Eska