Office - Word, Excel und Co. 9.744 Themen, 41.408 Beiträge

Access kann nicht runden!?

XPectIT / 4 Antworten / Baumansicht Nickles

Hi, ich hab keine Frage sondern eine Tatsache.
Microsoft, DAS Datenbankprogramm schlecht hin hat keine eingebaute Funktion um zu runden.
Mein Problem war das ich ein Datenfeld auslesen musste in dem ein Zahlungsbetrag steht. In einem anderen Feld steht dann der Währungstyp DM oder EUR.
So um eine Rückzahlung zu berechnen muss wohl alles auf EUR (irgendwann) und jetzt sollte ich hier Feld1*1,95583 oder eben nicht (je nach Währung) und da es sich um Geld handelt kann ich schlecht mal die Cent vergessen oder ständig aufrunden... Das hat mich einen halben Tag beschäftigt.
Naja, wollte ich nur mal sagen... wird zwar keinen wirklich interessieren aber egal. *g*
Meine Lösung: FIX(Feld1*100+0,5)/100

XPectIT

bei Antwort benachrichtigen
Grossadministrator XPectIT „Access kann nicht runden!?“
Optionen

Das ist so gewollt; it's not a bug, it's a feature:
(Aus der Hilfe zu Access XP):

Microsoft Access stellt zum Speichern von Daten mit nummerischen Werten zwei Felddatentypen bereit: Zahl und Währung.

Verwenden Sie ein Feld des Datentyps Zahl, um nummerische Daten zu speichern, die für mathematische Berechnungen herangezogen werden sollen. Eine Ausnahme bilden Berechnungen von Geldwerten oder Berechnungen, die eine hohe Genauigkeit erfordern. Die Art und Größe der nummerischen Werte, die in einem Feld des Datentyps Zahl gespeichert werden können, wird mit der Einstellung der Eigenschaft Feldgröße festgelegt. Die Feldgröße Byte speichert z. B. nur ganze Zahlen (keine Dezimalzahlen) von 0 bis 255 und benötigt 1 Byte Speicherplatz.

Verwenden Sie ein Feld des Datentyps Währung, um bei Berechnungen ein Abrunden zu verhindern. Ein Feld des Datentyps Währung ist auf bis zu 15 Stellen links und 4 Stellen rechts vom Dezimalkomma genau. Dieser Datentyp benötigt 8 Byte Speicherplatz.

Felder vom Typ Zahl und Währung stellen vordefinierte Anzeigeformate zur Verfügung, Sie können jedoch auch ein benutzerdefiniertes Format erstellen.


Und mit den Anzeigeformaten hast du schon eine 2-stelige Anzeige. Denn bei der Euro-Umrechnung darf bekanntlich nicht einfach frundet werden!

bei Antwort benachrichtigen
XPectIT Grossadministrator „Das ist so gewollt it s not a bug, it s a feature: Aus der Hilfe zu Access XP :...“
Optionen
Und mit den Anzeigeformaten hast du schon eine 2-stelige Anzeige. Denn bei der Euro-Umrechnung darf bekanntlich nicht einfach frundet werden!
Das ist ja schön und gut, du erzählst mir nichts neues. Aber die Datenbank soll einen Schnittstellendatei für ein Kassenprogramm liefern. Dieses beschwert sich bitterlich, wenn anstatt 2 Kommastellen plötzlich 4 stehen. Und irgendwie muss ich Runden, oder soll ich am Ende 457,4578 EUR auszahlen???
bei Antwort benachrichtigen
neanderix XPectIT „ Und mit den Anzeigeformaten hast du schon eine 2-stelige Anzeige. Denn bei der...“
Optionen

Voellig richtig.

Und deswegen schaust mal bei www.donkarl.com Access -FAQ Punkt 2.1

Mit dieser Funktion, die du am besten in ein global gueltiges Modul stellst, sollte innerhalb deiner Anwendung dein Problem behoben sein.

Wobei deine Loesung natuerlich auch eine ist, nur nicht so elegant wie obige... ;-)

Volker

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
neanderix XPectIT „Access kann nicht runden!?“
Optionen

Nunja, Grossadministrator, dennoch koennte M$ in Access eine Funktion zur Verfuegung stellen, die Rundet - auch kaufmaennisch.

Ich habe eine solche Funktion auch schon schmerzlich vermisst.

@XpectIT

Du solltest mal in die Access-FAQ von Karl Donaubauer, www.donkarl.com, gucken - soweit ich mich entsinne, hat Karl auch zu diesem Problem was in der FAQ.
Ganz sicher aber findest du bei Dev Ashish was, den Link zu seinen Seiten findest du bei karl.


Volker

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen