pcfjkg
Goto Top

UPDATE FROM in SQL-Anweisung verwenden

Bei UPDATE FROM fehlt angeblich ein Operator ?

Mit DoCmd.RunSQL = "UPDATE Tbl_PNRHeilfBeh SET PreisA = [D_2] FROM Tbl_PNRHeilfBeh WHERE Tbl_PNRHeilfBeh.Tarif = T_PosNrn.Tarif"
ist das Update nicht korrekt ausführbar.

Fehlermeldung: Syntaxfehler (fehlender Operator) in Abfrageausdruck '[D_2] FROM Tbl_PNRHeilfBeh' ...

Wer kann helfen ?

Content-Key: 50638

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

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

Member: Biber
Biber Feb 04, 2007 at 13:43:49 (UTC)
Goto Top
Moin PCFJKG,

dann versuche es bitte mal mit:

DoCmd.RunSQL = "UPDATE Tbl_PNRHeilfBeh SET PreisA = [D_2] _  
WHERE Tbl_PNRHeilfBeh.Tarif In (Select Tarif FROM T_PosNrn)"   

HTH
Biber
[Edit]
oder besser: .... "Select Distinct Tarif FROM T_PosNrn"
[/Edit]
Member: PCFJKG
PCFJKG Feb 05, 2007 at 12:13:07 (UTC)
Goto Top
Hallo Biber,

erst einmal Danke für die Hilfe. Werde sofort probieren. Inzwischen habe ich überlegt ob es daran liegen kann, dass DoCmd.RunSQL unter Access 2000 verwendet wird, also in einer *.mdb und nicht in einem Project *.adp welches mit einem SQL-Server verbunden ist. Möglicherweise ist der Befehlsumfang von MS-Accesss 2000 nicht mächtig genug und kennt die Nutzung von WHERE und FROM im Zusammenhang mit UPDATE nicht ???

Herzliche Grüße

PCFJKG
Member: Biber
Biber Feb 05, 2007 at 17:05:25 (UTC)
Goto Top
Na ja, PCFJGK,

Möglicherweise ist der Befehlsumfang von MS-Accesss 2000 nicht mächtig genug und kennt die Nutzung von WHERE und FROM im Zusammenhang mit UPDATE nicht ???

Ich bin sicherlich in diesem Forum nicht dafür bekannt, dass ich ständig unaufgefordert Lobgesänge über M$-Produkte anstimme (und bei Access trifft das erst recht zu!), aber...

wenn Access nicht mal das könnte, dann wären die einzigen verbleibenden Gründe, Access zu erwerben nach meiner Kenntnis:
- es verbraucht weniger als 7 Liter Normalbenzin und
- es ist auch für Diabetiker unbedenklich.

Aber sogar ich bin VOLLKOMMEN überzeugt davon, dass Access diese schwierige und komplexe Aufgabe mit WHERE und FROM ohne Stützräder bewältigen kann.

Probier doch im Klicki-Bunti-Abfrage-Dingens-Assistenten mal diese anderthalb Zeilen aus - Du hast doch die Tabellen da...

Herzliche Grüße zurück
Biber
Member: PCFJKG
PCFJKG Feb 05, 2007 at 18:31:32 (UTC)
Goto Top
Hallo Biber,

Du hast offensichtlich neben Humor auch noch Kentnisse. Solche Leute braucht die Welt (I mean it "ehrlich und erfreut").

Komme erst morgen zum Probieren und habe irgendwie eine Ahnung (ein bisschen sogar die Hoffnung), dass ich es mit Deiner Hilfe schaffe.

Best wishes

PCFJKG (Aber: vieleicht war ich doch zu optimistisch....)
'Also: Ich möchte in Tabelle Tbl_PNRHeilfBeh die dortige Spalte PreisA updaten. Quelle ist in der Tabelle T_PosNrn die dortige Spalte P_1. In beiden Tabellen _
gibt es eine Spalte Tarif, diese enthält eindeutige Werte. Die jeweilige Zeile der Spalte PreisA soll den Wert von P_1 übernehmen, wenn der _
Wert der Zeilen Tarif übereinstimmt. Beide Tabellen existieren in der aktiven Datenbank. _
Insoweit dürfte DoCmd.RunSQL UPDATE Tbl_PNRHeilfBeh SET PreisA = .... zur Anwendung kommen. Welche Variante ich auch ausprobiere, entweder in SELECT und/oder _
WHERE werden Syntaxfehler gemeldet oder es wird 'eine aktualisierbare Abfrage' angemahnt oder es wird beim Start der Abfrage eine Eingabe für D_1 verlangt usw.usf. _
Die Aufgabenstellung ist aber doch so typisch für die Arbeit mit Tabellen in Access, dass es nur noch an meinen offenbar recht bescheidenen oder kaum vorhandenen _
Fähigkeiten liegen kann. _
Danke für jede Hilfe _
_
PCFJKG
Member: PCFJKG
PCFJKG Feb 07, 2007 at 09:24:24 (UTC)
Goto Top
Hallo Biber, zum Schluss ist es wie immer, eigentlich ganz einfach. Letzten Endes hatte ich die Frage falsch (oder unvollständig) gestellt. Mein Problem ist nun gelöst. Ich hatte ine SELECT-Klausel angegeben, die nicht funktionieren konnte, wiel die Tabellenbeziehung über JOIN fehlte.

Mit UPDATE <Tbl_Name1> INNER JOIN <Tbl_Name2> ON Spalte1x = Spalte2x SET Spalte1y = Spalte2y WHERE -Klausel

ist nun alles geklärt.

Nochmals vielen Dank,

PCFJKG