SQL // Access'97 // Subselect mit Update

supersmu

Grünschnabel
Hi Leute!

Folgendes Problem:
Der User soll in einer Abfrage Artikel einfügen! Wobei in der Abfrage dann automatisch die Menge berechnet! Also so:

SELECT Tabelle1.[SP1], Tabelle1.[SP2], CCur([Tabelle1].[SP1]+[Tabelle1].[SP2]) AS SP3
FROM Tabelle1;

Der trägt also in Spalte1 (SP1) "50" ein, in Spalte2 (SP3) "30" und in Spalte3 (SP3) wird dann automatisch der Wert "80" erzeugt!

Jetzt wird aber natürlich kein berechneter Wert in die Tabelle geschrieben, weil SP3 ja nur virtuell besteht!
Tabelle:
SP1 | SP2 | SP3
50 | 30 | 0

Deswegen ergänze ich über eine Update-Funktion in einer 2. Abfrage die Tabelle:

UPDATE Tabelle1 SET Tabelle1.SP3 = CCur([Tabelle1].[SP1]+[Tabelle1].[SP2])
WHERE (((Tabelle1.[SP3]) = 0));

Das ganze möchte ich aber gerne in einer Abfrage haben, so das der User die Werte eingibt, sie in der Abfrage berechnet erscheinen und auch in die Tabelle eingtragen werden!

Kann man so etwas über ein Subselect realisieren, der erst die Berechnung durchführt und dann die Tabelle updatet, oder komplett was anderes?

Mit freundlichen Grüssen
-supersmu-


PS: Access'97 wegen der DB!
 
Hi!

So ganz hab ich das jetzt noch nicht geschnackelt, was Du willst.
Du willst den berechneten Wert also nicht in einer Tabelle Speichern, sondern der User soll ihn nur sehen (in einem Formularfeld z.B.) ?
Die Einzelwerte sollen aber nach Eingabe des zweiten Wertes in die Tabelle geschrieben werden?

Für diesen Fall erstelle ein ungebundenes TextFeld in dem Formular, das in den Eigenschaften unter "Daten" die entsprechende Formel enthält.
Nun fügst Du in den Eigenschaften des Textfeldes des 2. Wertes eine "Nach Aktualisierung"-Aktion ein. Frage den Datensatz neu ab (requery).

Das war jetzt mal so aus der Hüfte. Vielleicht hilft es ja weiter, wenn ich Dich überhaupt richtig verstanden habe:)

Solltest Du das ganze über ein HTML-Frontend machen wollen, ist das natürlich alles wieder ein bischen anders:rolleyes:
 
Zurück