Autor Thema: [Access] Formel im Formular zur Gesamtkostenberechnung  (Gelesen 2481 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Ludovico

  • Gast
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)

[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)

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.
« Letzte Änderung: 4.05.2007 | 11:15 von Ludovico »

Offline 6

  • Der Rote Ritter
  • Titan
  • *********
  • So schnell schiesst der Preuß nicht
  • Beiträge: 30.954
  • Geschlecht: Männlich
  • Username: Christian Preuss
    • Miami Files
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #1 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.
Ich bin viel lieber suess als ich kein Esel sein will...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nicht Sieg sollte der Zweck der Diskussion sein, sondern
Gewinn.

Joseph Joubert (1754 - 1824), französischer Moralist

Ludovico

  • Gast
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #2 am: 4.05.2007 | 11:33 »
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.

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)
« Letzte Änderung: 4.05.2007 | 11:54 von Ludovico »

Offline 6

  • Der Rote Ritter
  • Titan
  • *********
  • So schnell schiesst der Preuß nicht
  • Beiträge: 30.954
  • Geschlecht: Männlich
  • Username: Christian Preuss
    • Miami Files
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #3 am: 4.05.2007 | 11:52 »
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.
« Letzte Änderung: 4.05.2007 | 11:53 von Christian Preuss »
Ich bin viel lieber suess als ich kein Esel sein will...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nicht Sieg sollte der Zweck der Diskussion sein, sondern
Gewinn.

Joseph Joubert (1754 - 1824), französischer Moralist

Ludovico

  • Gast
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #4 am: 4.05.2007 | 11:57 »
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)

Edit: Danke für die Erklärung! Das hat mir schon mal sehr geholfen.
« Letzte Änderung: 4.05.2007 | 12:06 von Ludovico »

Offline 6

  • Der Rote Ritter
  • Titan
  • *********
  • So schnell schiesst der Preuß nicht
  • Beiträge: 30.954
  • Geschlecht: Männlich
  • Username: Christian Preuss
    • Miami Files
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #5 am: 4.05.2007 | 12:15 »
Was ich zum einen an der Formel nicht verstehe: Warum beinhaltet sie dreimal die Runden-Funktion?
Ich weiss nicht wie es bei Euch ist, aber in Deutschland muss der Endpreis mit den Werten (also Summe aus Menge * Einzelpreis / Rabatt) auf der Rechnung passen.
Beispiel:

Auf der Rechnung steht:
Öl          Menge 0,30         Einzelpreis 7,66         Positionspreis 2,30 (ungerundet 2,298)
Luftfilter Menge 1,00         Einzelpreis 35,47    Rabatt 15%   Positionspreis  30,15 (ungerundet 30,1495)
Ich bin viel lieber suess als ich kein Esel sein will...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nicht Sieg sollte der Zweck der Diskussion sein, sondern
Gewinn.

Joseph Joubert (1754 - 1824), französischer Moralist

Ludovico

  • Gast
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #6 am: 4.05.2007 | 12:22 »
Hmm...daran habe ich nicht gedacht.
Danke!
Die Formel hat übrigens nicht gefunzt.
Ok, dann muß ich mal nachsehen, wo der Fehler liegt. Ich vermute, daß er mathematischer Natur ist.

Ludovico

  • Gast
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #7 am: 4.05.2007 | 16:00 »
Hey Christian!

Danke für die Hilfe! Ich denke, ich habe eine Möglichkeit gefunden, das Problem zu umgehen. Mir ist erst jetzt aufgefallen, daß direkt neben dem Feld noch ein Feld mit der Gesamtsumme in Rand ist. Also hab ich einfach den Inhalt des Feldes kopiert und drangesetzt, daß er es durch die Umrechnungsrate teilen soll. Natürlich hab ich noch die Rundungsfunktion und auch NZ vorne dran gesetzt.

Die ersten Tests sehen gut aus. Aber mal sehen, ob es auch den richtigen Test besteht.

Zitat
=Round(NZ(([ProdSampleTotal]+[AdditionalCostTotal]+[VAT]-[discount])/[Rate],0),2)

Offline 6

  • Der Rote Ritter
  • Titan
  • *********
  • So schnell schiesst der Preuß nicht
  • Beiträge: 30.954
  • Geschlecht: Männlich
  • Username: Christian Preuss
    • Miami Files
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #8 am: 4.05.2007 | 18:40 »
Vorsicht bei Summenfelder, die in Datenbanken stehen! Achte genau drauf, ob diese Felder auch wirklich gefüllt werden! Ich habe da schon böse Überraschungen erlebt!
Ich bin viel lieber suess als ich kein Esel sein will...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nicht Sieg sollte der Zweck der Diskussion sein, sondern
Gewinn.

Joseph Joubert (1754 - 1824), französischer Moralist

Ludovico

  • Gast
Re: [Access] Formel im Formular zur Gesamtkostenberechnung
« Antwort #9 am: 5.05.2007 | 13:22 »
Danke fuer den Hinweis! Ich will erstmal sehen, ob es klappt. Wenn nicht, wechsel ich einfach die Formel wieder zurueck und zerbrech mir weiter den Kopp.