none
Zugriff auf Datenbankfelder vom Format Dezimal in Access über DAO.Recordset führt zu schweren Abstürzen ! RRS feed

  • Frage

  • Beispiel:  wobei das Feld F1 Feldgröße Dezimal gewählt wurde !

    Dim r As DAO.Recordset

    Set r = CurrentDb.OpenRecordset("tabelle1")
    r.AddNew
    r!F1 = 100
    r.Update
    r.Close: Set r = Nothing
    MsgBox "Wenn diese Nachricht kommt ist alles ok.!"

    Der fehlerhafte passiert auch auf eingebundene SQL-Servertabellen des Datentyps. 

    aus dem Ereignisprotokoll!

    Name der fehlerhaften Anwendung: MSACCESS.EXE, Version: 16.0.12827.20336, Zeitstempel: 0x5edad85e
    Name des fehlerhaften Moduls: acedao.dll, Version: 16.0.12827.20152, Zeitstempel: 0x5ebb99a4
    Ausnahmecode: 0xc0000005
    Fehleroffset: 0x00030fb6
    ID des fehlerhaften Prozesses: 0x2a9c
    Startzeit der fehlerhaften Anwendung: 0x01d63fbeca943a13
    Pfad der fehlerhaften Anwendung: C:\Program Files (x86)\Microsoft Office\Root\Office16\MSACCESS.EXE
    Pfad des fehlerhaften Moduls: C:\Program Files (x86)\Microsoft Office\root\Office16\acedao.dll
    Berichtskennung: 6ebed3ea-fdeb-42a1-8ae4-2acd5635badf
    Vollständiger Name des fehlerhaften Pakets: 
    Anwendungs-ID, die relativ zum fehlerhaften Paket ist: 

    Donnerstag, 11. Juni 2020 08:59

Alle Antworten

  • Du musst da immer zwanghaft convertieren:
    Bei Schreiben mit CDec(Value), bei Lesen mit CDouble(Feld), CDec(Feld) oder CCurrency(Value).
    Dasselbe gilt auch z.B. für BIGINT. Da konvertiere ich in beide Richtungen mit CDec.

    Nativ wird Decimal nicht unterstützt sondern nur Variant vom Typ CDec.

    Dim MyDec as Variant
    MyDec = CDec(Value)

    Bei verknüpften Tabellen macht Access (ab 2000) das wieder automatisch.


    Donnerstag, 11. Juni 2020 14:27