none
Access 2010 implizite Konvertierung von Decimal .12334 in Text

    Frage

  • Moin,

    wir sind gerade am Umstellen von Access 2000 auf Access 2010. Dabei ist uns folgendes Problem aufgefallen:

    - Division durch SQL-Server zweier Dezimal Zahlen ergibt .1234

    - die Darstellung als Prozentzahl in Access 2000 ist wie gewünscht 12,34%

    - Access 2010 schreibt dagegen ".1234", Spalten-Datentyp Text

    Erkennt Access 2010 bei fehlender führender Null keinen numerischen Typ?

    Gruß Tom

    Dienstag, 28. Juli 2015 09:25

Antworten

  • Hallo,
     
    tom krist wrote:
     
    > A2010 kennt zwar auch den Datentyp Dezimal, akzeptiert aber keine Eingaben mit Punkt und der Form".1234", bekam
    > aber nun eine Tabelle vom SQL-Server (in einer ADP) vorgelegt mit einer Spalte vom Typ Dezimal und dem Inhalt
    > ".1234" und musste damit umgehen. A2000 war da wohl toleranter.
     
    Und du bist noch im ADP? Oder ist es das, was du mit Migration meintest?
    Zur Info, 2010 ist die letzte Version, in der ADP unterstuetzt wird.
     
    > Sehe ich das richtig?
     
    Eigentlich kann Access das in jeder Version, auch mit SQL Server als
    Backend. Allerdings muss der Provider zur Version passen. Solltest du mit
    SQLOLEDB verbinden, aendere das mal zu SQLNCLIxx wobei xx fuer die Version
    steht.
     
    SQL 2005: SQLNCLI
    SQL 2008/R2: SQLNCLI10
    ab SQL 2012: SQLNCLI11
     
    Bei Decimal gibt es allerdings das Problem, dass Access nicht bis zu jeder
    Skalierung unterstuetzt. Ab einer bestimmten Anzahl Vor- und/oder
    Nachkommastellen ist Access ueberfordert. Du kannst alternativ mit Float
    statt Decimal testen.
     
    Gruss - Peter
     
    --
     
    • Als Antwort markiert tom krist Montag, 3. August 2015 08:14
    Freitag, 31. Juli 2015 23:34
    Moderator

Alle Antworten

  • wir sind gerade am Umstellen von Access 2000 auf Access 2010.

    Definiere, was "Umstellen" bedeutet. Eine 2000-mdb kann man normalerweise auf 2010 ohne Probleme öffnen. Wird da was importiert? Evtl. aus Excel?

    Gruss - Peter

    Dienstag, 28. Juli 2015 12:13
    Moderator
  • Moin Peter,

    hat sich eigentlich erledigt.

    A2010 kennt zwar auch den Datentyp Dezimal, akzeptiert aber keine Eingaben mit Punkt und der Form".1234", bekam aber nun eine Tabelle vom SQL-Server (in einer ADP) vorgelegt mit einer Spalte vom Typ Dezimal und dem Inhalt ".1234" und musste damit umgehen. A2000 war da wohl toleranter.

    Sehe ich das richtig?

    Gruß Tom

    Mittwoch, 29. Juli 2015 09:25
  • Hallo,
     
    tom krist wrote:
     
    > A2010 kennt zwar auch den Datentyp Dezimal, akzeptiert aber keine Eingaben mit Punkt und der Form".1234", bekam
    > aber nun eine Tabelle vom SQL-Server (in einer ADP) vorgelegt mit einer Spalte vom Typ Dezimal und dem Inhalt
    > ".1234" und musste damit umgehen. A2000 war da wohl toleranter.
     
    Und du bist noch im ADP? Oder ist es das, was du mit Migration meintest?
    Zur Info, 2010 ist die letzte Version, in der ADP unterstuetzt wird.
     
    > Sehe ich das richtig?
     
    Eigentlich kann Access das in jeder Version, auch mit SQL Server als
    Backend. Allerdings muss der Provider zur Version passen. Solltest du mit
    SQLOLEDB verbinden, aendere das mal zu SQLNCLIxx wobei xx fuer die Version
    steht.
     
    SQL 2005: SQLNCLI
    SQL 2008/R2: SQLNCLI10
    ab SQL 2012: SQLNCLI11
     
    Bei Decimal gibt es allerdings das Problem, dass Access nicht bis zu jeder
    Skalierung unterstuetzt. Ab einer bestimmten Anzahl Vor- und/oder
    Nachkommastellen ist Access ueberfordert. Du kannst alternativ mit Float
    statt Decimal testen.
     
    Gruss - Peter
     
    --
     
    • Als Antwort markiert tom krist Montag, 3. August 2015 08:14
    Freitag, 31. Juli 2015 23:34
    Moderator
  • Moin Peter,

    das wird's wohl sein, die Spalte ist als Dezimal mit 17 Stellen definiert.

    Danke, Tom

    Montag, 3. August 2015 08:35