jensgebken
Goto Top

Access Query macht Probleme

Hallo Gemeinschaft,

habe bei einer query Probleme

so sieht sie aus und bekomme nur die Meldung, dass ein Fehler drin ist

UPDATE Reservierungen
JOIN resa
ON (Reservierungen.ReservierungsnummerHP = resa.id)
SET ([Reservierungen.Anzahlung 1]="" and [Reservierungen.Anzahlung 2] = resa.accom_price)  
where(Reservierungen.Veranstalter = "ED");  

seht ihr da vielleicht einen Fehler

habe die db so übernommen - Anzahlung 1 und Anzahlung 2 haben ein Leerzeichen dazwischen
habs auch so probiert
SET (Reservierungen.[Anzahlung 1]="" and Reservierungen.[Anzahlung 2] = resa.accom_price)

Content-ID: 7685824140

Url: https://administrator.de/forum/access-query-macht-probleme-7685824140.html

Ausgedruckt am: 20.04.2025 um 07:04 Uhr

em-pie
em-pie 29.06.2023 um 12:03:08 Uhr
Goto Top
Zeile 4 ist dein Problem.
Du kannst das Feld ja nicht Setzen mit
Feld = x = y
jensgebken
jensgebken 29.06.2023 aktualisiert um 12:23:18 Uhr
Goto Top
wie würdest du es machen - ich möchte ja zwei Felder beschreiben - oder zwei querys

so geht es auch nicht
SET (Reservierungen.[Anzahlung 2] = resa.accom_price)

Tabellennamen sind richtig - wie auch Spaltennamen
SlainteMhath
SlainteMhath 29.06.2023 um 12:23:22 Uhr
Goto Top
Moin,

der Fehler ist in Zeile 4, ersetze das "AND" durch ein Komma dann sollte es laufen

Quelle: https://learn.microsoft.com/de-de/office/client-developer/access/desktop ...

lg,
Slainte
em-pie
em-pie 29.06.2023 um 12:23:30 Uhr
Goto Top
Reservierungen.[Anzahlung 1]="", Reservierungen.[Anzahlung 2] = resa.accom_price   
em-pie
em-pie 29.06.2023 um 12:26:29 Uhr
Goto Top
Nachtrag: hast du, bei deinen ganzen Access-Fragen, mal drüber nachgedacht, dir mal die ganzen Grundlagen anzueignen?

https://www.amazon.de/Access-2016-Dummies-Laurie-Fuller/dp/3527711961

Gefühlt müssen wir alle deine Thema bearbeiten....
jensgebken
jensgebken 29.06.2023 um 12:27:01 Uhr
Goto Top
leider syntax Fehler
UPDATE Reservierungen 
JOIN resa
ON (Reservierungen.ReservierungsnummerHP = resa.id)
SET (Reservierungen.[Anzahlung 1]="", Reservierungen.[Anzahlung 2] = resa.accom_price )  
where(Reservierungen.Veranstalter = "ED");  
em-pie
em-pie 29.06.2023 um 12:29:21 Uhr
Goto Top
Dein Join sitzt obendrein auch noch an der falschen Stelle:
https://www.sqlservertutorial.net/sql-server-basics/sql-server-update-jo ...
jensgebken
jensgebken 29.06.2023 um 12:34:12 Uhr
Goto Top
laut deinem BSP eigentlich doch nicht oder?
UPDATE employees
        LEFT JOIN
    merits ON employees.performance = merits.performance 
SET 
    salary = salary + salary * 0.015
WHERE
    merits.percentage IS NULL;
jensgebken
jensgebken 29.06.2023 um 12:45:10 Uhr
Goto Top
Komisch, wenn ich die runden Klammern in der SET Zeile weglasse, dann geht es
SlainteMhath
SlainteMhath 29.06.2023 um 12:51:54 Uhr
Goto Top
wenn ich die runden Klammern in der SET Zeile weglasse, dann geht es
Ja, komisch, kaum hält man sich an die Syntaxregeln, dann geht's :D
em-pie
Lösung em-pie 29.06.2023 um 12:55:18 Uhr
Goto Top
So sollte es "konform" sein:
UPDATE Reservierungen 
SET 
  Reservierungen.[Anzahlung 1]=""  
  , Reservierungen.[Anzahlung 2] = resa.accom_price
FROM Reservierungen
JOIN resa ON Reservierungen.ReservierungsnummerHP = resa.id
WHERE Reservierungen.Veranstalter = "ED";  

Ich würde ohnehin nur da Klammern einsetzen, wo sinnvoll. Z. B. wenn man mit OR und AND arbeitet.
Denn where Field1 = 'toll' OR Field1 = 'auchtoll' and Field2 = 75 ist etwas anderes als where Field1 = 'toll' OR (Field1 = 'auchtoll' and Field2 = 75)
7426148943
7426148943 29.06.2023 aktualisiert um 13:13:59 Uhr
Goto Top
Zitat von @em-pie:

Dein Join sitzt obendrein auch noch an der falschen Stelle:
https://www.sqlservertutorial.net/sql-server-basics/sql-server-update-jo ...
Access ist da mal wieder eine Ausnahme, dort steht bei einer Update-Clause das JOIN hinter dem Update.
Sowas hier ist für Access bspw. konforme Syntax
UPDATE Tabelle1
INNER JOIN Tabelle2 ON Tabelle1.id = Tabelle2id
SET Tabelle1.spalte = "Wert"  
jensgebken
jensgebken 29.06.2023 um 13:54:29 Uhr
Goto Top
super klasse - lieben Dank für die weiteren Informationen
jensgebken
jensgebken 29.06.2023 um 13:55:59 Uhr
Goto Top
habe noch eine Frage, was ist in einer query der Befehl für den Wert nehmen bis zu einem Zeichen "/"

BSP
825,30/ERRH24B12879H
7426148943
Lösung 7426148943 29.06.2023 aktualisiert um 14:10:31 Uhr
Goto Top
Zitat von @jensgebken:

habe noch eine Frage, was ist in einer query der Befehl für den Wert nehmen bis zu einem Zeichen "/"

BSP
825,30/ERRH24B12879H

In Access geht z.B.
Left(SpalteX,Instr(1,SpalteX,"/",1)-1)  
Mit RTFM auch mal selbst damit beschäftigen:
https://www.w3schools.com/sql/sql_ref_msaccess.asp