Discussion:
DoCmd.RunSQL was ist falsch?
(zu alt für eine Antwort)
michael karajan
2004-08-16 12:40:43 UTC
Permalink
Hallo Leute!
Ich habe wiedereinmal ein Syntax-Problem. Ich verwende
ACCESS 2002. Ich möchte Werte die ich in einem
ungebundenen Formular eingebe in der Tabelle überschreiben!
Ich komme nicht klar! Was ist falsch an dieser Zeile:

DoCmd.RunSQL "UPDATE Tabelle SET Feld1=" & Wert1 & "WHERE
Feld2=" & Wert2 & ";"

Wobei Feld1 und Feld2 bzw. Wert1 und Wert2 sind Zahlen!

Im voraus vielen Dank für Eure Antworten.

Gruß
Michael
Karl Donaubauer
2004-08-16 12:55:27 UTC
Permalink
Post by michael karajan
Ich habe wiedereinmal ein Syntax-Problem. Ich verwende
ACCESS 2002. Ich möchte Werte die ich in einem
ungebundenen Formular eingebe in der Tabelle überschreiben!
DoCmd.RunSQL "UPDATE Tabelle SET Feld1=" & Wert1 & "WHERE
Feld2=" & Wert2 & ";"
Wobei Feld1 und Feld2 bzw. Wert1 und Wert2 sind Zahlen!
Vor dem WHERE fehlt ein Leerzeichen. Also: ... " WHERE...
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
+ Info zur 7. Access-Entwickler-Konferenz 25./26.9. in Nürnberg
a***@discussions.microsoft.com
2004-08-16 13:31:43 UTC
Permalink
Habe wie unten vorgeschlagen geändert. Ich erhalte immer
noch "Syntaxfehler in Update Anweisung!
:-(?
Michael
Post by Karl Donaubauer
Post by michael karajan
...
DoCmd.RunSQL "UPDATE Tabelle SET Feld1=" & Wert1
& "WHERE
Post by Karl Donaubauer
Post by michael karajan
Feld2=" & Wert2 & ";"
Wobei Feld1 und Feld2 bzw. Wert1 und Wert2 sind Zahlen!
Vor dem WHERE fehlt ein Leerzeichen. Also: ... " WHERE...
Peter Doering
2004-08-16 14:10:24 UTC
Permalink
Hallo,
Post by a***@discussions.microsoft.com
Post by Karl Donaubauer
Post by michael karajan
DoCmd.RunSQL "UPDATE Tabelle SET Feld1=" & Wert1 & "WHERE
Feld2=" & Wert2 & ";"
Wobei Feld1 und Feld2 bzw. Wert1 und Wert2 sind Zahlen!
Vor dem WHERE fehlt ein Leerzeichen. Also: ... " WHERE...
Habe wie unten vorgeschlagen geändert. Ich erhalte immer
noch "Syntaxfehler in Update Anweisung!
Poste mal das aktuelle Statement NACH der Aenderung.

Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
michael karajan
2004-08-16 15:52:09 UTC
Permalink
Post by Peter Doering
Post by a***@discussions.microsoft.com
....
immer
Post by Peter Doering
Post by a***@discussions.microsoft.com
noch "Syntaxfehler in Update Anweisung!
Poste mal das aktuelle Statement NACH der Aenderung.
Gruss - Peter
DoCmd.RunSQL "UPDATE Tabelle SET Feld1 = " & Wert1 & "
WHERE Feld2 = " & Wert2 & ";"
Peter Doering
2004-08-16 16:50:16 UTC
Permalink
Hallo,
Post by michael karajan
Post by Peter Doering
.... immer
noch "Syntaxfehler in Update Anweisung!
Poste mal das aktuelle Statement NACH der Aenderung.
DoCmd.RunSQL "UPDATE Tabelle SET Feld1 = " & Wert1 & "
WHERE Feld2 = " & Wert2 & ";"
Die Syntax an sich ist ok. Falsch wird sie, wenn Wert1 oder Wert2 leer
sind, bzw. Feld1 oder Feld2 nicht numerisch waeren (dann gaeb's aber eine
andere Meldung).

Falls Feld1 vom Typ Text ist:
... SET Feld1 = '" & Wert1 & "'" ...

Falls Feld1 und Wert1 vom Typ Datum sind:
... SET Feld1 = #" & Format(Wert1, "MM\/DD\/YYYY" & "#" ...

Falls Wert1 leer oder Null ist, siehe auch Henry's Antwort (die fuer den
Typ numerisch gilt).

Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Henry Habermacher [MVP Access]
2004-08-16 15:07:59 UTC
Permalink
Hallo Michael
Post by a***@discussions.microsoft.com
Habe wie unten vorgeschlagen geändert. Ich erhalte immer
noch "Syntaxfehler in Update Anweisung!
Post by Karl Donaubauer
Post by michael karajan
DoCmd.RunSQL "UPDATE Tabelle SET Feld1=" & Wert1
& "WHERE
Post by Karl Donaubauer
Post by michael karajan
Feld2=" & Wert2 & ";"
Wobei Feld1 und Feld2 bzw. Wert1 und Wert2 sind Zahlen!
Vor dem WHERE fehlt ein Leerzeichen. Also: ... " WHERE...
Haben die Variablen Wert1 und Wert2 allenfalls NULL-Werte drin? Falls
ja, dann sieht das Statement leicht anders aus:

Falls Wert2 nicht NULL ist:
UPDATE Tabelle SET Feld1 = " & Nz(Wert1, "NULL") & _
" WHERE Feld2 = " & Wert2

Falls Wert2 NULL ist:
UPDATE Tabelle SET Feld1 = " & Nz(Wert1, "NULL") & _
" WHERE Feld2 IS NULL"

HTH
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/AccessFAQ.htm
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
michael karajan
2004-08-16 16:07:52 UTC
Permalink
...
Post by Henry Habermacher [MVP Access]
Haben die Variablen Wert1 und Wert2 allenfalls NULL-Werte
drin?

Nein.
Post by Henry Habermacher [MVP Access]
Falls
UPDATE Tabelle SET Feld1 = " & Nz(Wert1, "NULL") & _
" WHERE Feld2 = " & Wert2
UPDATE Tabelle SET Feld1 = " & Nz(Wert1, "NULL") & _
" WHERE Feld2 IS NULL"
Feld2 ist ein AutoWert in der Tabelle. Feld1 ist
Verkaufspreis. Es muß jeweils eingegeben werden um ein
Bericht auszudrucken!
Um hier in der NG anderen wissensdurstigen es zu
erleichtern fals sie gleiches Problem haben habe ich
algemine bezeichnungen gewählt. In meiner DB heißen sie
anders!
Karl Donaubauer
2004-08-16 16:23:03 UTC
Permalink
Post by michael karajan
...
Feld2 ist ein AutoWert in der Tabelle. Feld1 ist
Verkaufspreis. Es muß jeweils eingegeben werden um ein
Bericht auszudrucken!
"Verkaufspreis" klingt nach Dezimalzahl.
s. Access-FAQ 6.21 Dezimalzahl an SQL-String übergeben
Post by michael karajan
Um hier in der NG anderen wissensdurstigen es zu
erleichtern fals sie gleiches Problem haben habe ich
algemine bezeichnungen gewählt. In meiner DB heißen sie
anders!
Das ist bei einem Syntaxfehler keine so gute Idee.
Der kann auch mit Bezeichnern zu tun haben.
Poste mal den echten, relevanten Code-Abschnitt
(inkl. Variablendeklarationen).
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
+ Info zur 7. Access-Entwickler-Konferenz 25./26.9. in Nürnberg
michael karajan
2004-08-16 16:48:25 UTC
Permalink
Schon mal hier vielen Dank an alle Tipp-geber!
-----Originalnachricht-----
Post by michael karajan
...
Feld2 ist ein AutoWert in der Tabelle. Feld1 ist
Verkaufspreis. Es muß jeweils eingegeben werden um ein
Bericht auszudrucken!
"Verkaufspreis" klingt nach Dezimalzahl.
eigentlich nicht. Im Code Eigenschaften (Alt-F11) als
Textbox bezeichnet.
s. Access-FAQ 6.21 Dezimalzahl an SQL-String übergeben
Trotzdem habe ich nachdem ich ^^^ gelesen habe auch
folgendes porbiert, aber wieder syntaxfehler angezeigt
bekommen:

DoCmd.RunSQL "UPDATE KfZ-Daten SET KfZVKPreis= (" & str
(VKBrutto) & ") Where KfZNr= " & AnkKfZNr & ";"
Post by michael karajan
Um hier in der NG anderen wissensdurstigen es zu
erleichtern fals sie gleiches Problem haben habe ich
algemine bezeichnungen gewählt. In meiner DB heißen sie
anders!
Das ist bei einem Syntaxfehler keine so gute Idee.
Der kann auch mit Bezeichnern zu tun haben.
KfZVKPreis wird in der Tabelle KfZ-Daten zwar berechnet
aber nur wenn bei berechnen ein häckchen gesetzt wird.
Hier ist es nicht der Fall! VKBrutto wird im Ungebundenen
Formular (PopUp) eingegeben.
KfZNr ist in der Tabelle KfZ-Daten ein AutoWert. AnkKfZNr
wird ebenfalls im ungebundenen Formular (PopUp) eingegeben.
Bei diesem ungebundenen Formular werden zum Druck des
Kaufvertrages noch einige Daten wie Kd-Nr. etc. eingegeben.
Poste mal den echten, relevanten Code-Abschnitt
(inkl. Variablendeklarationen).
Deklarationen gibt es nicht! Ich habe nur zum Teil Code
verwendet!

DoCmd.RunSQL "UPDATE KfZ-Daten SET KfZVKPreis= " &
VKBrutto & " Where KfZNr= " & AnkKfZNr & ";"

Gruß
Michael
Karl Donaubauer
2004-08-16 17:15:37 UTC
Permalink
Post by michael karajan
Post by Karl Donaubauer
...
Poste mal den echten, relevanten Code-Abschnitt
(inkl. Variablendeklarationen).
Deklarationen gibt es nicht! Ich habe nur zum Teil Code
verwendet!
?
Post by michael karajan
DoCmd.RunSQL "UPDATE KfZ-Daten SET KfZVKPreis= " &
VKBrutto & " Where KfZNr= " & AnkKfZNr & ";"
Der Bindestrich in Objektnamen ist von Übel. Versuch mal
[KfZ-Daten]
und lies Access-FAQ 1.5 Benamsungen
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
+ Info zur 7. Access-Entwickler-Konferenz 25./26.9. in Nürnberg
a***@discussions.microsoft.com
2004-08-16 17:43:35 UTC
Permalink
Danke! Das war der Fehler! Ich mußte KfZ-Daten in [ ]-
Klammern setzen!

Noch eine Frage: Wie kann ich unterdrücken, dass Access
die Meldungen augibt, dass jetzt was überschrieben wird ob
das ok ist?

Gruß
-----Originalnachricht-----
Post by michael karajan
Post by Karl Donaubauer
...
Poste mal den echten, relevanten Code-Abschnitt
(inkl. Variablendeklarationen).
Deklarationen gibt es nicht! Ich habe nur zum Teil Code
verwendet!
?
Post by michael karajan
DoCmd.RunSQL "UPDATE KfZ-Daten SET KfZVKPreis= " &
VKBrutto & " Where KfZNr= " & AnkKfZNr & ";"
Der Bindestrich in Objektnamen ist von Übel. Versuch mal
[KfZ-Daten]
und lies Access-FAQ 1.5 Benamsungen
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email.
*********
Access-FAQ: http://www.donkarl.com
+ Info zur 7. Access-Entwickler-Konferenz 25./26.9. in
Nürnberg
.
Karl Donaubauer
2004-08-16 17:50:48 UTC
Permalink
Post by a***@discussions.microsoft.com
...
Noch eine Frage: Wie kann ich unterdrücken, dass Access
die Meldungen augibt, dass jetzt was überschrieben wird ob
das ok ist?
Access-FAQ 2.4 Warnmeldungen unterdrücken
--
HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
+ Info zur 7. Access-Entwickler-Konferenz 25./26.9. in Nürnberg
Henry Habermacher [MVP Access]
2004-08-17 01:22:25 UTC
Permalink
Hallo
Post by a***@discussions.microsoft.com
Danke! Das war der Fehler! Ich mußte KfZ-Daten in [ ]-
Klammern setzen!
Aber Du weisst schon, wieso Du das in Klammern setzen musst, oder? Du
verwendest ein - Zeichen im Namen, das ist ungünstig und wird vom Parser
eben als Minus-Zeichen gelesen, wenn Du keine Eckigen Klammern
verwendest. Daher der Verweis auf die Benamsungen in der FAQ und auch
die Hinweise, doch bitte den richtigen Code zu posten, weil das eben
genau nur dann auftritt, wenn man solche Basisregeln der Benamsungen
ignoriert.
Post by a***@discussions.microsoft.com
Noch eine Frage: Wie kann ich unterdrücken, dass Access
die Meldungen augibt, dass jetzt was überschrieben wird ob
das ok ist?
Verwende statt DoCmd.RunSQL einfach

CurrentDB.Execute "SQL Statement", dbFailOnError
Post by a***@discussions.microsoft.com
Post by Karl Donaubauer
Post by michael karajan
DoCmd.RunSQL "UPDATE KfZ-Daten SET KfZVKPreis= " &
VKBrutto & " Where KfZNr= " & AnkKfZNr & ";"
Der Bindestrich in Objektnamen ist von Übel. Versuch mal
[KfZ-Daten]
und lies Access-FAQ 1.5 Benamsungen
HTH
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/AccessFAQ.htm
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
Loading...