Forums Neueste Beiträge
 

Abfrage mit VALUES

04/03/2008 - 16:50 von Richard Hoelzel | Report spam
Hallo zusammen,

in meiner ACCESS XP Anwendung möchte ich aus einem Formular einige
Feldeintràge, also nicht alle, an eine Tabelle übertragen. Die Umsetzung mit
INSERT INTO …. VALUES funktioniert gut, aber nur, wenn alle zur Übertragung
vorgesehenen Felder Werte enthalten.

Mein Problem: es kommt zur Fehlermeldung "Syntaxfehler in der INSERT INTO
Anweisung" wenn ein Formular-Feld, oder auch mehrere, die zur Übertragung mit
INSERT INTO vorgesehen sind keinen Wert enthalten.

Mein Auszug aus der Prozedur AfterUpdate sieht wie folgt aus:
Damit der SQL-String übersichtlich bleibt, speichere ich die Werte der
relevanten Formfelder zunàchst in Variablen, die dann als VALUES im
SQL-String eingefügt werden.

mT_1 = Me![TERMIN_1]
mT_1 = " ' " & mT_1 & " ' "

mT_2 = Me![TERMIN_2]
mT_2 = " ' " & mT_2 & " ' "
und so weiter bis:
mT_12 = Me![TERMIN_12]
mT_12 = " ' " & mT_12 & " ' "

Einfügen der Variablen als VALUES in den INSERT-String

strSQL = "INSERT INTO tblTermine(TERMIN_A, TERMIN_B;…..TERMIN_L)"
strSQL = strSQL + " VALUES(" & mT_1 & ", " & mT_2 & ",.. " & mT_12 & "); "

DoCmd.RunSQL SQL

Das Problem tritt also auf, wenn ein Feld(er) aus der VALUES-Liste keinen
Wert enthàlt.
Die Frage ist somit, wie lassen sich leere Felder als VALUES in die Tabelle
einfügen.


Eine weitere Frage:
Kann man eigentlich im Abfragefenster eine Anfügeabfrage mit festen Werten,
also mit VALUES erstellen. Ich stelle die Frage, weil man darüber dann gut
den SQL-String ermitteln könnte.

Ich bedanke mich schon für die Anregungen und wünsche noch einen schönen
Abend.

Richard
 

Lesen sie die antworten

#1 Peter Doering
04/03/2008 - 17:05 | Warnen spam
Hallo,

Richard Hoelzel wrote:

in meiner ACCESS XP Anwendung möchte ich aus einem Formular einige
Feldeintràge, also nicht alle, an eine Tabelle übertragen. Die Umsetzung mit
INSERT INTO …. VALUES funktioniert gut, aber nur, wenn alle zur Übertragung
vorgesehenen Felder Werte enthalten.

Mein Problem: es kommt zur Fehlermeldung "Syntaxfehler in der INSERT INTO
Anweisung" wenn ein Formular-Feld, oder auch mehrere, die zur Übertragung mit
INSERT INTO vorgesehen sind keinen Wert enthalten.

Mein Auszug aus der Prozedur AfterUpdate sieht wie folgt aus:
Damit der SQL-String übersichtlich bleibt, speichere ich die Werte der
relevanten Formfelder zunàchst in Variablen, die dann als VALUES im
SQL-String eingefügt werden.

mT_1 = Me![TERMIN_1]
mT_1 = " ' " & mT_1 & " ' "



Probier mal so:

If Len(Me!Termin_1)=0 Then
mT_1 = "Null"
Else
mT_1 = "'" & Me!Termin_1 & "'"
End If

Genauso fuer die anderen Felder.


Eine weitere Frage:
Kann man eigentlich im Abfragefenster eine Anfügeabfrage mit festen Werten,
also mit VALUES erstellen. Ich stelle die Frage, weil man darüber dann gut
den SQL-String ermitteln könnte.



Kannst du, wenn du in die SQL-Ansicht wechselst.

Gruss - Peter

2. SQL Server-Entwickler-Konferenz
Nürnberg, 12./13.4.2008 + 19./20.4.2008
http://www.donkarl.com/SEK

Ähnliche fragen