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-ID: 50638

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

Ausgedruckt am: 24.11.2024 um 04:11 Uhr

Biber
Biber 04.02.2007 um 14:43:49 Uhr
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]
PCFJKG
PCFJKG 05.02.2007 um 13:13:07 Uhr
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
Biber
Biber 05.02.2007 um 18:05:25 Uhr
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
PCFJKG
PCFJKG 05.02.2007 um 19:31:32 Uhr
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
PCFJKG
PCFJKG 07.02.2007 um 10:24:24 Uhr
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