Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Probleme mit Dezimalzahlen in ODBC Tabellen

1,057 views
Skip to first unread message

Heber Ferraz-Leite

unread,
Sep 21, 1999, 3:00:00 AM9/21/99
to
Hallo Leute,

Als Access Neuling (Access 2000) habe ich folgendes für mich unlösbare
Problem:

Wir haben mehrere Tabellen die auf einem Oracle Server sind als ODBC
Verknüpfung in unsere Access Datenbank eingebunden. In diesen Tabellen gibt
es mehrere als number(11,2) definierte Zahlen, d.h. 11 Stellen Präzission,
zwei Nachkommastellen.

Wenn wir nun in Access auf die Tabellen doppelklicken und auf eines dieser
Number Felder gehen und z.B. "11,21" eingeben, so schluckt Access das Komma
und zeigt "1121" an. Wenn wir die Tabelle schließen und nochmal öffnen
kriegen wir auch "1121", also ohne Komma.

Wenn wir aber in den Oracle Server direkt gehen und mittels SQL*Plus den
Inhalt der Tabelle abfragen, so kriegen wir die richtige Zahl "11,21". Die
Zahl wird also richtig gespeichert, aber danach von Access nicht mehr
richtig ausgelesen.

Das Problem ist natürlich sehr groß, weil wir dann nicht mehr zwischen den
Zahlen 1121 und 11,21 unterscheiden können.

Weiß jemand von euch Abhilfe ?

Danke,

Heber

Andreas Mueller

unread,
Sep 22, 1999, 3:00:00 AM9/22/99
to Heber Ferraz-Leite
Hi!

Könnte es sein, daß ihr die oracle tabelle nachträglich geändert habt und sie
nicht neu in Access eingebunden habt?? <-- kann zu problemen führten!
ODER
Eurer Oracle läuft mit englischem Zahlenformat, wo hingegen euer Access
natürlich, leider Gottes deutsches Zahlenformat benutzt. Sollte eigentlich kein
Problem sein, ist es aber! Da ich gerade an keinem Oracle Server sitze, kann ich
dir nciht sagen, wo du dies ändern kannst!!! Am Besten Du benutzt keine
Nachkommastellen !!!!

Ciao Marcus

Heber Ferraz-Leite wrote:

>


Heber Ferraz-Leite

unread,
Sep 29, 1999, 3:00:00 AM9/29/99
to
Hallo,

Danke für die versuchte Hilfe, allerdings ... siehe unten.

Andreas Mueller <andr...@darmstadt.gmd.de> schrieb in im Newsbeitrag:
37E8DDA...@darmstadt.gmd.de...

> Könnte es sein, daß ihr die oracle tabelle nachträglich geändert habt und
sie
> nicht neu in Access eingebunden habt?? <-- kann zu problemen führten!

Wir haben in den letzten Tagen mehrmals versucht die Tabellenverknüpfung zu
löschen und neu anzulegen. Das Problem mit den nicht ausgelesenen
Dezimalzahlen besteht immer noch.


> ODER
> Eurer Oracle läuft mit englischem Zahlenformat, wo hingegen euer Access
> natürlich, leider Gottes deutsches Zahlenformat benutzt. Sollte eigentlich
kein
> Problem sein, ist es aber! Da ich gerade an keinem Oracle Server sitze,
kann ich
> dir nciht sagen, wo du dies ändern kannst!!!

Wir haben die Ländereinstellungen mehrmals geändert und alle möglichen
Kombinationen ausprobiert. Leider ohne Erfolg.

Aber jetzt kommts: Wir haben auch Lotus Approach 97. Wir haben damit
versucht die Tabelle einzubinden und uns die Daten anzuschauen, und siehe
da: die Nachkommastellen waren vorhanden und konnten auch eingegeben werden.
Das zeigt ganz deutlich, daß es sich nicht um ein Problem mit den
Einstellungen von Windows oder mit einem Treiber handelt. Sonst könnte ja
überhaupt kein Programm damit was anfangen. Es ist eindeutig ein Bug in
Access ... oder zumindest ein Bedinerfehler, der nicht Deppensicher ist.

Gibt es irgendeine Stelle wo man Access Bugs melden kann ?

Aber leider : unser Kunden möchte eine Access Datenbank haben, also müssen
wir das Problem mit Access lösen.


> Am Besten Du benutzt keine Nachkommastellen !!!!

Wir machen für eine Bank ein Archivierungssystem für Wertpapierumsätze. Ich
kann doch denen nicht sagen die Wertpapierkurse dürfen in Zukunft keine
Nachkommastellen haben !!!!

Vielleicht noch eine Idee ?

MfG,

Heber

Ellen Anacker

unread,
Sep 29, 1999, 3:00:00 AM9/29/99
to
Hallo zusammen,

habe leider nicht den Anfang der Problematik mitbekommen, hoffe aber
trotzdem weiter helfen zu können:
1. Habt ihr den Datentyp in Oracle gecheckt (Access kann z.B. kein Float)
2. In der Systemeinstellung kann man 2 Dinge einstellen 1. Länderkennzeichen
und 2. unabhängig davon nochmal die Dezimal, bzw. Tausendertrennzeichen.
3. Wenn die Probleme im Code auftauchen, so muss als Dezimaltrennzeichen
immer der Punkt verwendet werden
4. GGf hilft euch auch noch die Function Cdec(zur richtigen Umwandlung)

Wenn ihr mir mehr zur Problematik schreibt, kann ich vielleicht noch etwas
ergänzend schrieben.
Dann aber bitte an meine EMail-Adresse, damit die Newsgroup nicht alles 2mal
lesen muss, nur weil ich erst jetzt eintrudele...

Vorab viel Erfolg

Ciao

... Ellen

--
DV Beratung
Ellen Anacker
Heber Ferraz-Leite <h.ferra...@fsc.at> schrieb in im Newsbeitrag:
l6oI3.35729$BG6.1...@news.chello.at...

Heber Ferraz-Leite

unread,
Sep 30, 1999, 3:00:00 AM9/30/99
to
> habe leider nicht den Anfang der Problematik mitbekommen, hoffe aber
> trotzdem weiter helfen zu können:

Die Problematik ist:

- Tabelle auf einem Oracle Server mit einem Feld das als number(15,2)
definiert ist
- Verbindung zur Tabelle wird in Access gemacht
- Doppelklick auf die Verbindung, um die Datenblattansicht der Tabelle zu
öffnen
- Die Zahlen werden ohne Komma angezeigt, d.h. statt 9,71 wird 971
angezeigt. 971 wird aber auch als 971 und nicht als 97100 angezeigt. Es
ist also nicht generell eine Multiplikation mit 100 passiert, sondern es
wird das Komma nicht erkannt.


> 1. Habt ihr den Datentyp in Oracle gecheckt (Access kann z.B. kein Float)

Datentyp in Oracle ist number(15,2). Warum sollte Access das nicht können ?


> 2. In der Systemeinstellung kann man 2 Dinge einstellen 1.
Länderkennzeichen
> und 2. unabhängig davon nochmal die Dezimal, bzw. Tausendertrennzeichen.

Haben wir schon zu genüge probiert. Wenn es das wäre, dann dürften es
andere Programme auch nicht schaffen die Daten richtig auszulesen. Aber
Lotus Approach 97 kann es z.B.


> 3. Wenn die Probleme im Code auftauchen, so muss als Dezimaltrennzeichen
> immer der Punkt verwendet werden

Es ist kein Code involviert. Wir möchten nur die Datenblattansicht
verwenden.


> 4. GGf hilft euch auch noch die Function Cdec(zur richtigen Umwandlung)
>

In dem Fall nicht, da wir sie schwer dazwischen schalten können. Außerdem
möchten wir etwas so grundlegendes tun, daß wir uns erwarten, daß es ohne
Tricks funktioniert.

Heber

Ellen Anacker

unread,
Oct 8, 1999, 3:00:00 AM10/8/99
to
Hallo und sorry für die späte Rückantwort ...


Heber Ferraz-Leite <h.ferra...@fsc.at> wrote in message
news:AgHI3.39576$BG6.1...@news.chello.at...


> > habe leider nicht den Anfang der Problematik mitbekommen, hoffe aber
> > trotzdem weiter helfen zu können:
>
> Die Problematik ist:
>
> - Tabelle auf einem Oracle Server mit einem Feld das als number(15,2)
> definiert ist
> - Verbindung zur Tabelle wird in Access gemacht
> - Doppelklick auf die Verbindung, um die Datenblattansicht der Tabelle zu
> öffnen
> - Die Zahlen werden ohne Komma angezeigt, d.h. statt 9,71 wird 971
> angezeigt. 971 wird aber auch als 971 und nicht als 97100 angezeigt. Es
> ist also nicht generell eine Multiplikation mit 100 passiert, sondern es
> wird das Komma nicht erkannt.
>
>
> > 1. Habt ihr den Datentyp in Oracle gecheckt (Access kann z.B. kein
Float)
>
> Datentyp in Oracle ist number(15,2). Warum sollte Access das nicht können
?

Sorry, aber eigentlich sollte es heissen, dass Access nur float nimmt und
Dec nicht kann.
Problemlösung:
Über einen View die Daten in Oracle nach Float konvertieren. Dann
funktioniert es ganz sicher !!

Ciao

... Ellen

0 new messages