Money-Währung Darstellungsproblem

08/02/2008 - 18:13 von Stefan Langkau | Report spam
Hallo zusammen,

ich habe ein Problem, das immer wieder, aber seltsamerweise nicht
immer, auftritt:
-Im SQL Server 2005 Express ist als Datentyp money ausgewàhlt
-im Access Frontend (Sowohl 2000 als auch 2007) wird der Wert mit 2
Nullen zuviel/zuwenig angezeigt.
Also: SQL Server: 222,00 EUR -> Access 22.200,00 EUR
bzw: SQl Server: 222,00 EUR -> Access 2,22 EUR

Ich habe den Verdacht, das dies an den unterschiedlichen
Darstellungsweisen mit "." und "," liegt, aber leider noch keinen Weg
gefunden dieses Problem zu lösen. Das ausweichen auf float bzw real
ist wegen der Genauigkeitsverluste (und der Menge der umzustellenden
Felder) sehr unbefriedigend.


Dazu kommt dann noch, das ich es scheinbar nicht schaffe, Google die
richtigen Fragen dazu zu stellen, da ich mir kaum vorstellen kann,
der
einzige mit diesem Problem zu sein.


Für Tipps wàre ich dankbar.


Ach ja: Umgebung: SQL Server 2005 Express (SQLEXPR_ADV_DEU.exe),
Office 2000/2007 (auf getrennten Rechnern) mit win XP Home SP2. Die
Tabellen sind per ODBC mit Standardeinstellungen verknüpft.


Gruß,
Stefan
 

Lesen sie die antworten

#1 Elmar Boye
08/02/2008 - 20:55 | Warnen spam
Hallo Stefan,

Stefan Langkau schrieb:
ich habe ein Problem, das immer wieder, aber seltsamerweise nicht
immer, auftritt:
-Im SQL Server 2005 Express ist als Datentyp money ausgewàhlt
-im Access Frontend (Sowohl 2000 als auch 2007) wird der Wert mit 2
Nullen zuviel/zuwenig angezeigt.
Also: SQL Server: 222,00 EUR -> Access 22.200,00 EUR
bzw: SQl Server: 222,00 EUR -> Access 2,22 EUR

Ich habe den Verdacht, das dies an den unterschiedlichen
Darstellungsweisen mit "." und "," liegt, aber leider noch keinen Weg
gefunden dieses Problem zu lösen.
Ach ja: Umgebung: SQL Server 2005 Express (SQLEXPR_ADV_DEU.exe),
Office 2000/2007 (auf getrennten Rechnern) mit win XP Home SP2. Die
Tabellen sind per ODBC mit Standardeinstellungen verknüpft.



Da Du via ODBC zugreifst, so liegt es an dem Hàkchen für
"Regionale Einstellungen bei der Anzeige von Wàhrungen... verwenden".
Das führt zu einer Fehlinterpretation seitens des Treibers.

Das ausweichen auf float bzw real
ist wegen der Genauigkeitsverluste (und der Menge der umzustellenden
Felder) sehr unbefriedigend.



Grundsàtzlich sollte man (small)money ebenso vermeiden.
Denn der Datentyp verwendet fest _vier_ Nachkommastellen -
also eher für Devisen geeignet - was am Ende wiederum zu
Rundungsproblemen führt.
Verwendet besser DECIMAL(n, 2) um Euro/Wàhrungen zu speichern.

Gruss
Elmar

Ähnliche fragen