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-Key: 7685824140

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

Printed on: May 9, 2024 at 12:05 o'clock

Member: em-pie
em-pie Jun 29, 2023 at 10:03:08 (UTC)
Goto Top
Zeile 4 ist dein Problem.
Du kannst das Feld ja nicht Setzen mit
Feld = x = y
Member: jensgebken
jensgebken Jun 29, 2023 updated at 10:23:18 (UTC)
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
Member: SlainteMhath
SlainteMhath Jun 29, 2023 at 10:23:22 (UTC)
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
Member: em-pie
em-pie Jun 29, 2023 at 10:23:30 (UTC)
Goto Top
Reservierungen.[Anzahlung 1]="", Reservierungen.[Anzahlung 2] = resa.accom_price   
Member: em-pie
em-pie Jun 29, 2023 at 10:26:29 (UTC)
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....
Member: jensgebken
jensgebken Jun 29, 2023 at 10:27:01 (UTC)
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");  
Member: em-pie
em-pie Jun 29, 2023 at 10:29:21 (UTC)
Goto Top
Dein Join sitzt obendrein auch noch an der falschen Stelle:
https://www.sqlservertutorial.net/sql-server-basics/sql-server-update-jo ...
Member: jensgebken
jensgebken Jun 29, 2023 at 10:34:12 (UTC)
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;
Member: jensgebken
jensgebken Jun 29, 2023 at 10:45:10 (UTC)
Goto Top
Komisch, wenn ich die runden Klammern in der SET Zeile weglasse, dann geht es
Member: SlainteMhath
SlainteMhath Jun 29, 2023 at 10:51:54 (UTC)
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
Member: em-pie
Solution em-pie Jun 29, 2023 at 10:55:18 (UTC)
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)
Mitglied: 7426148943
7426148943 Jun 29, 2023 updated at 11:13:59 (UTC)
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"  
Member: jensgebken
jensgebken Jun 29, 2023 at 11:54:29 (UTC)
Goto Top
super klasse - lieben Dank für die weiteren Informationen
Member: jensgebken
jensgebken Jun 29, 2023 at 11:55:59 (UTC)
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
Mitglied: 7426148943
Solution 7426148943 Jun 29, 2023 updated at 12:10:31 (UTC)
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