11 Okt msaccess-navision-mssql-dezimal
Dezimalverarbeitung in MSAccess – SQl-Server Navision
Der Dezimaldatenty wird verwendet um Rundungsfehler zu vermeiden. Im MSSql Server wird dieser angegeben mit dezimal(xx,yy) wobei xx die Länge der gesamten Zahl ist und yy die Anzahl der Stellen nach dem Komma.
Ein Beispiel:
Dezimal(12,3) kann sein 999.999.999,999
Problem von MSAccess auf MSSql Dezimal (Navision)
Information Sql Server link
Information MSAccess link
Wenn man in Navision einen Zahlentype angibt mit Dezimal und z.B. 3 Kommastellen wird dieser im SQL Server dann mit dezimal(38,20) angelegt (warum verstehe ich nicht, notwendig ist es nicht!) dies ist das Problem Access kann so eine große dezimalzahl nicht darstellen und ändert den Datentype in Text. Dies hat den Nachteil das man diesen sehr kompliziert in eine Zahl umwandeln.
Ein test
Ich habe verschiedene Dezimalzahlen im SQL Server angelegt und getestet wie dieser im Access dargestell wird. Ich verwende den ODBC Treiber Microsoft SQL Nativ Client 11.0
Man kann sehen wenn die Dezimalzahl > 28 ist wird diese als Text interpretiert.
Beispiel Text in Zahl umwandeln
man muss erst mit Replace/Ersetzen (je nach Access Version EN/DE)den punkt in ein Komma umwandel und dann diesen String in eine Zahl umwandeln
Nachfolgendes Beispiel kann in einer Abfrage benutzt werden:
Das Originalfeld in der Tabelle heißt Zahlenwert und wird in ZahlenwertZahl umgewandelt
ZahlenwertZahl : ZDouble(Ersetzen(Zahlenwert;“.“;“,“))
Bessere Lösung
Das Datenformat auf dem SQL Server anpassen dann kann die Zahl ganz normal verwendet werden.
Sorry, the comment form is closed at this time.