Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: DaveWilli am Februar 22, 2022, 09:05:53

Titel: Tabelle über Abfrage aktualisieren
Beitrag von: DaveWilli am Februar 22, 2022, 09:05:53
Hallo Zusammen,
ich habe jetzt schon alles mögliche versucht und bin auf keinen grünen Zweig gekommen.

Ich habe eine Tabelle (tblA), welche die selbe Struktur hat wie eine Abfrage (qryA). Die Abfrage berechnet anhand von einer Formel Nährstoffwerte für einen Boden. Diese Werte wurden in die tblA anhand von der qryA angefügt.

Hier nun mein Problem:
Durch das ändern von bestimmten Werten haben sich auch die Ergebnisse in der qryA verändert, jedoch ändern sie sich ja nicht in der tblA. Ich habe versucht eine Aktualisierungsabfrage zu erstellen, welche die tblA mit der qryA verküpft. Jedoch ohne Erfolg.
Die Werte in tblA sollten nach der Aktuallisierung die  Werte aus qryA übernehmen.

Hier mal mein Ansatz:
UPDATE tblA INNER JOIN qryA
ON tblA.tID = qryA.qID
SET tblA.wert = [qryA]![wert];

Danke.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: MzKlMu am Februar 22, 2022, 09:14:00
Hallo,
die berechneten Werte in Tabelel zu schreiben dürfte überflüssig sein. Im Regelfall speichert man keine berechneten Werte, sondern verwendet immer die Abfrage.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: DaveWilli am Februar 22, 2022, 10:15:22
Zitat von: MzKlMu am Februar 22, 2022, 09:14:00die berechneten Werte in Tabelel zu schreiben dürfte überflüssig sein. Im Regelfall speichert man keine berechneten Werte, sondern verwendet immer die Abfrage.

Danke für deine Antwort.
Es ist aber tatsächlich so, dass das so sein muss (denke ich zumindest).

Ich habe einfach das Problem, dass die Werte in der Abfrage aus einer Kreuztabelle übernommen wurden, wo 3 Werte aufsummiert werden. Hier haben die einzelnen Werte Ihre Grund-ID verloren. Deshalb habe ich sie in eine Tabelle eingefügt, damit sie wieder eine ID bekommen, womit ich weiter mit arbeiten kann.

Ich hoffe, das das verständlich ist.

Kann man so eine Aktualisierung nun machen oder nicht?

Ich bin Dankbar für alle Antworten die ich bekomme.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: MzKlMu am Februar 22, 2022, 10:25:04
Hallo,
zeige mal ein Bild des Beziehungsfensters, damit man mal sehen kann wie die Tabellenstruktur aussieht.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: ebs17 am Februar 22, 2022, 13:49:32
ZitatJedoch ohne Erfolg
Zu einem guten Stil gehört es, eine zugehörige Fehlermeldung mitzuliefern. Der Fakt des Scheiterns an sich zeigt sich ja schon durch die Existenz des Themas.

Technischer Aspekt: Jet hat Probleme bei Aktualiserungsabfragen mit verknüpfter Abfrage, ist zu doof trotz richtiger Syntax. Umgehen kann man solch ein Problem oft mit einer Domänenaggregatfunktion.
UPDATE tblA
SET tblA.wert = DLOOKUP("wert", "qryA", "qID = " & tblA.tID)

ZitatIch habe einfach das Problem, dass die Werte in der Abfrage aus einer Kreuztabelle übernommen wurden
Das Problem ist größer als Du hier beschreibst. Eine Kreuztabelle ist hübsch für eine Ansicht (Darstellung als Schwerpunkt), aber schlecht geeignet als Datenherkunft für Abfragen.

Mit ordentlichen Tabellen fallen Abfragen und damit Liveberechnungen leichter.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: DaveWilli am Februar 23, 2022, 08:57:25
Danke für deine Antwort.

Das macht mich jetzt etwas nervös. Ich arbeite schon sehr lange an der Datenbank. Sie funktioniert auch super.

Zitat von: ebs17 am Februar 22, 2022, 13:49:32Das Problem ist größer als Du hier beschreibst. Eine Kreuztabelle ist hübsch für eine Ansicht (Darstellung als Schwerpunkt), aber schlecht geeignet als Datenherkunft für Abfragen.

Das mit der Keuztabelle war, in meinem Fall, die einzigste Lösung die ich gefunden habe. Ich musste Daten welche ich von einem Labor bekomme, von Zeilen in Spalten zusammenfassen.
So ungefähr sieht das Ganze aus:
Ich bekomme Daten von einem Labor als Excel. Diese enthalten Nährstoffanalysen in verschiedenen Bodentiefen (0-30 cm, 30-60 cm, 60-90 cm). Diese sind Werte sind einzeln mit den Werten in Excel in Zeilen aufgelistet.
Hier ein Bild von der Exceldatei:
0277.jpg
Mit diesen Werten findet, ahand von einer Abfrage, eine Berechnung statt. Nach dieser Berechnung müssen aber die Werte für die weitere Verwendung in einer Zeile stehen und nicht in drei separaten.
Hier ein Bild wie es nach der Berechnung aussehen soll:
0278.jpg
Das hat dann mit der Kreuztabelle wunderbar funktioniert. Jedoch verlieren die Daten dann, wie schon erwähnt, Ihre ID.

Vielleicht gibt es für das auch eine andere Lösung. Mir fällt aber keine andere Lösung ein, alls dass ich diese Kreuztabelle anlege und diese Daten in eine weiter angelegte Tabelle in der DB einfüge, damit die Daten wieder eine ID bekommen.

Das Ganze ist etwas konfus und hoffe, dass es so einigermaßen verständlich ist.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: MzKlMu am Februar 23, 2022, 09:30:54
Hallo,
eine KTA ist eine Zusammenfassung/Gruppierung, da gibt es keine IDs mehr.
Was ist dennn die Zahl 10,58.... Eine Summierung ?

Zeige mal die KTA (SQL) .

PS:
Bitte Bilder hier im Forum hochladen. Habe es oben geändert.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: DaveWilli am Februar 23, 2022, 10:30:16
Zitat von: MzKlMu am Februar 23, 2022, 09:30:54Was ist dennn die Zahl 10,58.... Eine Summierung ?

Ja, ist eine Summierung.

Das Problem hat sich jetzt gelöst.
Mein Chef meinte, dass die Tabelle doch nicht aktualisiert werden muss. D.h., die Daten müssen sogar so bleiben wie sie sind und sollten nicht aktualisiert werden. Also war der ganze Terz um sonst.
Sorry für das Ganze.

Ich danke aber trotzallem für euer Bemühen.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: ebs17 am Februar 23, 2022, 10:57:25
ZitatDas hat dann mit der Kreuztabelle wunderbar funktioniert. Jedoch verlieren die Daten dann, wie schon erwähnt, Ihre ID.
Wie gesagt, die Kreuztabelle hat schon ihre Funktion, vorwiegend zur Darstellung. Sie wird erstellt über ein Gruppieren und Aggregieren, was für sich auch seine Folgen hat.

Für die meisten echten Weiterrechnungen müsste man aber auf die Datenherkunft der Kreuztabellenabfrage aufsetzen, dort hat man noch die ID's sowie die SQL-gemäßen Tabellenstrukturen.
Titel: Re: Tabelle über Abfrage aktualisieren
Beitrag von: MzKlMu am Februar 23, 2022, 11:37:37
Hallo,
ZitatJa, ist eine Summierung.
Dein Vorhaben wäre dann ohnehin unmöglich gewesen. Aus einer Summierung kann man nicht mehr einen einzelnen Datensatz der Ausgangstabelle idendifizieren. Somit ist es nicht möglich an die ID des Ausgangsdatensatzes zu kommen.