Medien & Phantastik > Multimedia - Software & Betriebsysteme
[Access] Formel im Formular zur Gesamtkostenberechnung
Ludovico:
Hey Leute!
Ich muß wieder mal nerven. Es geht mir jetzt nicht darum, daß ich die Lösung auf einem Silbertablett serviert haben will, sondern ich brauch gerade einfach etwas Input. Mein Kopf qualmt beim Anblick der Formel.
Es geht darum, daß die Formel einen Fehler bei der Währungsumrechnung macht, aber ich nicht weiß, wo ich ansetzen soll. Der Fehler sitzt definitiv in der Formel.
Hier ist sie:
--- Zitat ---=[Currency] & " " & Runden(Nz(DomSumme("Qty*Round(Round(SellingPrice,2) /" & [Rate] & ",2)","tbquoteproduct","QuoteID =" & [QuoteID]),0),2)+Runden(([AdditionalCostTotal]+[VAT]-[Discount])/[Rate],2)
--- Ende Zitat ---
[Currency] gibt nur das Währungssymbol wider. [AdditionalCostTotal] ist die Gesamtsumme aus einem Nachbarfeld. [VAT] ist die Steuer (der Betrag wird auch in einem anderen Feld berechnet). [Discount] ist die Rabattsumme. [Rate] ist die Umrechnungsrate basierend auf der Währung.
tbquoteproduct ist die Tabelle, in der die Informationen des Angebots gespeichert werden und QuoteID die zugehörige Nummer.
Also zuerst wird das Währungssymbol widergegeben. Dann kommt ein Leerschritt und dann... dann kommt der Abschnitt, den ich nicht so recht verstehe:
--- Zitat ---Runden(Nz(DomSumme("Qty*Round(Round(SellingPrice,2) /" & [Rate] & ",2)","tbquoteproduct","QuoteID =" & [QuoteID]),0),2)
--- Ende Zitat ---
Den letzten Teil versteh ich.
Jetzt versuche ich gerade die Bedeutung dieses Abschnitts genau auseinanderzupfriemeln, aber ich hab eine ziemlich ätzende Denkblockade. Ich weiß nur, daß er den Verkaufspreis pro Stück mit Verkaufsmenge (Qty) multipliziert und durch die Umrechnungsrate teilt.
6:
Nz() und DomSumme() scheinen zwei benutzerdefinierte Funktionen oder Makros zu sein. Schau mal, in den Makros oder in den Modulen, ob Du die entsprechenden Funktionen dort findest. Es scheint so, als würde an die DomSumme ein Teil einer SQL-Abfrage wahrscheinlich das Kriterium weitergegeben.
Ludovico:
--- Zitat von: Christian Preuss am 4.05.2007 | 11:23 ---Nz() und DomSumme() scheinen zwei benutzerdefinierte Funktionen oder Makros zu sein. Schau mal, in den Makros oder in den Modulen, ob Du die entsprechenden Funktionen dort findest. Es scheint so, als würde an die DomSumme ein Teil einer SQL-Abfrage wahrscheinlich das Kriterium weitergegeben.
--- Ende Zitat ---
Hab nach den beiden Funktionen schon geschaut. Es sind offizielle Access-Funktionen.
DomSumme oder DSum
Nz
PS: Ich probier es gerade mal über Try and Error. Mal schaun, was dabei rauskommt.
Die Formel, die ich einsetzen will lautet:
--- Zitat ---=[Currency] & " " & Runden(Nz(DomSumme("[Qty]*[SellingPrice]","tbquoteproduct","QuoteID =" & [QuoteID]),2)+(([AdditionalCostTotal]+[VAT]-[Discount])/[Rate]),2)
--- Ende Zitat ---
6:
Oki.
Round(SellingPrice,2) heisst: Der Inhalt aus dem Feld SellingPrice soll auf 2 Stellen nach dem Komma gerundet werden
Der Therm Round(Round(SellingPrice,2) /" & [Rate] & ",2) heisst dann dass das gerundete SellingPrice durch die Umrechnungsrate dividiert werden soll.
Dieses Ergebnis wiederum muss dann mit dem Inhalt aus dem Feld Qty (Menge?) multipliziert werden.
Dieses Ergebnis wiederum soll mit allen Ergebnissen summiert werden, der QuoteID die Richtige ist.
Die Werte bekommt die Funktion DomSumme aus der Tabelle "tbquoteproduct".
Wenn ich es richtig interpretiere, dann wird bei Deiner Formel alle Positionspreise (Einzelpreis * Menge) des Angebots währungsbeglichen angezeigt.
EDIT: Deine neue Formel sollte den Komplettpreis des Angebots ohne Währungsabgleich anzeigen.
Ludovico:
Mist! Die Formel hatte einen kleinen Fehler. Sie sollte die Umrechnung zum Schluß vornehmen und nicht zwei Währungsabgleiche (einmal für den Verkaufspreis und einmal für die Zusatzkosten abzüglich Rabatt).
Was ich zum einen an der Formel nicht verstehe: Warum beinhaltet sie dreimal die Runden-Funktion?
Und warum 2mal die Währungsumrechnung?
Das ist jetzt die Formel, die ich austesten will. Die zweite Währungsumrechnung ist rausgestrichen. Es gibt nur noch eine. Es gibt auch nur noch eine Rundungs-Funktion.
--- Zitat ---=[Currency] & " " & Runden(Nz(DomSumme(("[Qty]*[SellingPrice]","tbquoteproduct","QuoteID =" & [QuoteID]),2)+([AdditionalCostTotal]+[VAT]-[Discount])/[Rate]),2)
--- Ende Zitat ---
Edit: Danke für die Erklärung! Das hat mir schon mal sehr geholfen.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln