Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Anzeige Gesamtpreis außerhalb des Unterformulars

Begonnen von marius1900, Dezember 03, 2024, 20:54:31

⏪ vorheriges - nächstes ⏩

marius1900

Wie kriege ich aus meinem frmRechnung in Access in einem Textfeld außerhalb des Unterformulars den Gesamtpreis angezeigt?
Im Textfeld außerhalb des Unterformular steht "Name?"

Wichtige Beobachtungen:
Name des Unterformulars:
Der Name des Unterformular-Steuerelements im Hauptformular ist korrekt als sfmRechnungspositionen benannt.

Summenfeld im Unterformular:
Das Textfeld im Formularfuß des Unterformulars heißt txtGesamtsummeUnterformular.

Die Berechnungsformel =Summe([Gesamtpreis]) scheint korrekt zu sein, um die Gesamtsumme (Netto) zu berechnen.

Referenz im Hauptformular:
Im Hauptformular nutzt du die Referenz:
plaintext
Code kopieren
=[sfmRechnungspositionen].[Form]![txtGesamtsummeUnterformular]

Sämtliche Lösungsverusche aus chatgpt blieben erfolglos!

Hat einer eine Idee? Wäre sehr dankbar!

Vielen Dank

MzKlMu

#1
Hallo,
mit einem rechtsklick im Feld für den Ausdruck kannst Du "Aufbauen" wählen und den richtigen Ausdruck einfach zusammenklicken.

Ich würde das Summenfeld aber im Formaularkopf des Ufos anordnen. Das lässt sich (fast) so gestalten, als ob das Feld im Hafo wäre. Das spart Dir die Bezüge.
Gruß Klaus

Knobbi38

Hallo,

ZitatDer Name des Unterformular-Steuerelements im Hauptformular ist korrekt als sfmRechnungspositionen benannt.
Stimmt das wirklich? So würde man eher ein Unterformular benennen und nicht das Steuerelement selbst.

Unabhängig davon gibt es ein Problem damit, daß es keine Garantie dafür gibt, in welcher Reihenfolge Ausdrücke in den Formularen berechnet werden. Somit kann es sein, daß erst die Aktualisierung im Hauptformular gemacht wird und dann die Summe im Unterformular berechnet wird. Abhängige Ausdrücke sind also keine gute Idee.

Stelle im Unterformular eine VBA-Funktion zur Verfügung, welche die Gesamtsumme berechnet und rufe diese dann aus dem Hauptformular auf, dann sollte es immer korrekt sein.

Alternativ geht es natürlich auch anders herum. Dafür bildet eine Prozedur die Summe im Unterformular und ruft dann ein Ereignis mit der Summe als Argument auf. Damit kann dann jeder, der an dieser Summe "interessiert" ist, dieses auswerten und entsprechend darstellen.

Gruß
Knobbi38


gsaccess

Hallo Ulrich,

ZitatStelle im Unterformular eine VBA-Funktion zur Verfügung, welche die Gesamtsumme berechnet und rufe diese dann aus dem Hauptformular auf, dann sollte es immer korrekt sein.

Alternativ geht es natürlich auch anders herum. Dafür bildet eine Prozedur die Summe im Unterformular und ruft dann ein Ereignis mit der Summe als Argument auf. Damit kann dann jeder, der an dieser Summe "interessiert" ist, dieses auswerten und entsprechend darstellen.

Mit der Summe aus Unterformularen in Hauptformularen darzustellen schlage ich mich auch immer herum.
Aktuell in einem Hf mit einem UF Registersteuerelement.
Im Unterformular gibt es die ein Feld "AZSumme" als Zeilensumme. Im Kopf ein Feld "Stundensumme" mit dem Steuerelementinhalt Summe(AZSumme)
Bereits dieses Feld zeigt #Fehler an.
Im Hauptformular sollte dann diese Summe auch angezeigt werden.
=[sfmAuftragDetail].[Formular]![AZSumme]*[sfmAuftragDetail].[Formular]![StundensatzVerrAuftrag]oder
=[sfmAuftragDetail].[Formular]![Stundensumme ]
Mit welcher vba Funktion kann ich das Problem lösen? Mit VBA wie von dir angeregt müsste das doch eigentlich funktionieren und ich muss nicht immer einen refresh oder requery aufrufen.

Günther



Knobbi38

#4
Hallo Günther,

dafür gibt es in VBA keine spezielle Funktion, es wird schlichtweg nur addiert. Wenn man die Summe über DS ermitteln möchte, kann man entweder die DSum() Funktion verwenden oder per SQL-Anweisung mit der Aggregatfunktion Sum().

Warum der Ausdruck "=Summe(AZSumme)" einen Fehler  meldet, lässt sich nicht sagen, weil nicht erkennbar ist, was AZSumme ist. Mit dem Ausdruck Summe lässt sich nur die Summe von Feldern bilden.

Gruß
Ulrich

gsaccess

Hallo Ulrich,

das Feld AZsumme wird errechnet aus den Feldern AZStunden + AZMinuten/60.
Also müsste =summe(AZSumme) die Summe aus diesem Feld im Formular bilden.
Mit DSum() bin ich am testen bei welchem Ereignis diese Berechnung immer gestartet werden soll.

Gruß
Günther

Knobbi38

Hallo Günther,

wenn AZSumme schon ein berechneter Ausdruck ist, kannst du das dann nicht mehr als Argument in einem anderen Ausdruck verwenden. Entweder du berechnest AZSumme bereits in der Abfrage oder du verwendest dafür VBA.

Gruß
Ulrich