Summenbildung Access falsch

  • #1
F

falke03

Mitglied
Themenersteller
Dabei seit
06.05.2003
Beiträge
5
Reaktionspunkte
0
In meiner Abfrage werden Tabellenwerte nach bestimmten Kriterien sortiert. Einzelwert zu jedem Kriterium 0,55 und 0,5 und 0,15. Wenn ich in der Funktion statt Gruppieren auf Summe umschalte, erscheint eine Summe von: 1,20000001788139. Das kann ich absolut nicht nachvollziehen. Woher dieser Krumme Wert? Jeder einfache Taschenrechner errechnte 1,2.
Sicherlich kann mit Festkommaformat die Zahl auf 1,2 gebracht werden, aber woher kommt dieser krumme Wert? Rechnet Access mit dem krummen Wert ??? weiter?
 
  • #2
Hallo,

ACCESS rechnet überhaupt etwas seltsam. Das kommt z.B. bei Währungsrechnungen zum Tragen, wenn man nicht etwas dagegen unternimmt.

Ich habe folgende Routine, die ich immer dann einsetze wenn ich einen Rechenvorgang durchführe (auch bei Zwischenschritte):

Public Function UBKRunden(Zahl, intStellen As Integer)
On Error GoTo ERR_UBKRunden

Dim intFact As Long
Dim addFact As Double
Dim intZahl As Double: intZahl = Zahl

Select Case intStellen
Case 0
addFact = 0.01
Case 1
addFact = 0.05
Case 2
addFact = 0.005
Case 3
addFact = 0.0005
Case 4
addFact = 0.00005
Case 5
addFact = 0.000005
Case Else
addFact = 0.0000005
End Select
If Zahl < 0 Then
addFact = addFact * -1
End If
intFact = intZahl * 10 ^ intStellen + addFact
UBKRunden = Int(intFact) / 10 ^ intStellen
Exit Function

ERR_UBKRunden:

MsgT2 = Runden-Funktion

Msg = Err.Description & vbCrLf & vbCrLf
Msg = Msg & cst_FehNr & Err & cst_FehZl & Erl
MsgBox (Msg), vbOKOnly, MsgT1 & cst_ER3 & MsgT2

Resume Next
Exit Function

End Function

Es wurden zwar schon andere Routinen in Fachkreisen gehandelt, diese aber hat mich bisher noch nicht im Stich gelassen und gibt sowohl bei positiven wie bei negative Zahlen mit Nachkommastellen immer das richtige Ergebnis.

Dabei ist Zahl das Argument, das ich übergebe für das Ergebnis einer Rechenoperation und intStellen die Anzahl der Nachkommastellen. Das Errorhandling etnspricht meinen Standardkonventionen und muß natürlich angepaßt werden.

Noch Fragen? Dann Bitte!

Gruß
Kurt Körner
 
  • #3
Hallo Kurt.
Vielen Dank für den Hinweis, aber wie binde ich so eine Public Funktion in eine Abfrage ein???
mfg
Dirk
 
  • #4
Hallo Falke03,

also in einer Abfrage kannst Du das nicht einsetzen, jedoch wird die Abfrage ja irgendwo zu einer Ausgabe; entweder in einem Bericht oder einem Formular. Dort kann man dann diese Funktion über ein passendes Ereignis einbinden (z.B. beim Öffnen).

Im übrigen ist dieser Fehler darauf zurückzuführen, daß ACCESS mit mindestens 4 Nachkommastellen (beim Währungsformat) arbeitet und keine korrekte Rundungsfunktion enthält. In EXCEL muß man ja auch wenn man was ausrechnet sehr auf's Runden achten. Doch dort gibt es den Befehl Runden.

Ich hoffe das hilft, ansonsten mußt Du schon mal Deine Problemstellung und Deine Lösung genauer schildern.

Gruß
Kurt Körner
 
Thema:

Summenbildung Access falsch

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben