Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Kinimod am Januar 06, 2020, 09:10:51

Titel: Problem mit Aktualisierungsabfrage
Beitrag von: Kinimod am Januar 06, 2020, 09:10:51
Hallo,

ich komme bei einer Aktualisierungsabfrage nicht weiter.
Ich habe 2 Tabellen, die erste enthält Bestellungen: tbl_Positionen(Positions_ID, Produkt, Preis, Anzahl), die zweite Abrechnungsmeldungen: tbl_Abrechnungsmeldungen (Abrechnungs_ID, Positions_ID_f, Anzahl). Bestellung müssen nicht auf einmal abrechnet werden, es kann 1 oder mehrer Abrechnungsmeldungen pro Bestellung geben.
Nun habe ich in der Tabelle Bestellungen ein Feld AnzahlAbgerechnet hinzugefügt, dieses soll die Summe der schon abgerechneten Einheiten der Bestellung angeben.
Dafür habe ich eine entsprechende Abfrage geschrieben:

SELECT tbl_Positionen.Positions_ID, Sum(tbl_Abrechnungsmeldungen.Items_abgerechnet) AS SummevonItems_abgerechnet
FROM tbl_Positionen INNER JOIN tbl_Abrechnungsmeldungen ON tbl_Positionen.Positions_ID = tbl_Abrechnungsmeldungen.PositionsID_f
GROUP BY tbl_Positionen.Positions_ID;

Diesen Summenwert möchte ich nun über eine Aktualisierungsabfrage in die Tabelle  tbl_Positionen übernehmen.
UPDATE tbl_Positionen INNER JOIN abf_SummeVonItemsAbgerechnet ON tbl_Positionen.Positions_ID = abf_SummeVonItemsAbgerechnet.Positions_ID SET tbl_Positionen.Items_abgerechnet = [abf_SummeVonItemsAbgerechnet].[SummevonItems_abgerechnet];

Ich bekomme jedoch immer die Fehlermeldung "Operation muss eine aktualisierbare Abfrage verwenden".
Weiß jemand was ich falsch mache?
Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: MzKlMu am Januar 06, 2020, 09:28:12
Hallo,
eine gruppierte Abfrage kann für eine Aktualisierungsabfrage nicht verwendet werden, da gibt es auch keinen Trick.

Die Summe in die Tabelle zu schreiben ist eh überflüssig, berechnete Werte werden nicht gespeichert.
Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: Kinimod am Januar 06, 2020, 09:35:58
ZitatDie Summe in die Tabelle zu schreiben ist eh überflüssig, berechnete Werte werden nicht gespeichert.

Ja, im Prinzip weiß ich das, das war als work-around gedacht. Wenn ich die Summe direkt in einer Abfrage verwende sind die Daten nicht mehr bearbeitbar. Das müssen sie aber sein.
Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: DF6GL am Januar 06, 2020, 09:58:00
Hallo,
wenn Du das weißt, warum fragst Du dann (so) ?

Ergebnisse zu bearbeiten und damit die Korrektheit (innerhalb der Db) der Ausgangsdaten in Frage zu stellen, ist eher nicht erstrebenswert.


Sollen die Ergebnisse, wie Du sagst,  weiter verarbeitet (verändert)  werden, dann exportiere sie aus der DB und manipuliere sie dort.


Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: Kinimod am Januar 06, 2020, 10:11:35
Zitatwenn Du das weißt, warum fragst Du dann (so) ?
Ich bin am rum probieren wie ich das Problem lösen kann, das war eine Idee nach dem Motto "Der Zweck heiligt die Mittel".

Die Werte berechneter Felder möchte ich nicht verändern, aber die anderer Felder.
SELECT tbl_Positionen.Positions_ID, tbl_Positionen.Unit_Price, tbl_Positionen.Quantity, tbl_Positionen.Item_Description, abf_SummeVonItemsAbgerechnet.SummevonItems_abgerechnet
FROM tbl_Positionen INNER JOIN abf_SummeVonItemsAbgerechnet ON tbl_Positionen.Positions_ID = abf_SummeVonItemsAbgerechnet.Positions_ID;

Hier möchte ich beispielsweise Unit_Price, Quantity, Item_Description verändern können.
Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: MzKlMu am Januar 06, 2020, 10:47:30
Hallo,
in einer gruppierten Abfrage können keine Daten geändert werden. Dein Vorhaben ist unmöglich.
Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: Kinimod am Januar 06, 2020, 11:18:53
In der gruppierten Abfrage möchte ich keine Werte ändern, ich möchte eine gruppierte Abfrage in einer andren Abfrage verwenden und dort Werte verändern. Ist das auch unmöglich?
Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: MzKlMu am Januar 06, 2020, 11:36:46
Hallo,
ZitatIst das auch unmöglich?
Ja, auch in einer Abfrage die eine gruppierte Abfrage verwendet ist es völlig ausgeschlossen Daten zu ändern.
Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: Kinimod am Januar 06, 2020, 12:17:47
Ok, danke, dann werde ich mir wohl einen anderen Weg suchen müssen.
Titel: Re: Problem mit Aktualisierungsabfrage
Beitrag von: PhilS am Januar 06, 2020, 13:17:01
Zitat von: Kinimod am Januar 06, 2020, 12:17:47
Ok, danke, dann werde ich mir wohl einen anderen Weg suchen müssen.
Anstelle der gruppierten Abfrage, kannst du die DSum-Funktion verwenden um die Summe zu ermitteln.
An dem grundlegenden Sachverhalt, dass es i.d.R. besser ist, berechnete Werte immer bei Bedarf in einer Abfrage zu ermitteln, anstatt sie zu speichern.