genau - genauer -datentyp single!?!
16.07.2004 14:48:21
joel
habe ein problem mit der genauigkeit von zahlen beim import/export nach access
AUSGANG:
zellwert in excel = 0.3 (will heissen, genau 0.3 und nicht über zahlenformat nur eine stelle angezeigt)
EXPORT NACH ACCESS:
speicherung des wertes in variable mit datentyp "single"
fProz = Csng(wksSpez.Cells(i, COL_WERT).value)
mittels meiner datenbankklasse wird die zahl geschrieben (mRS ist vom datentyp ADODB.Recordset)
Sub dbWriteData(ByVal sField As String, ByVal vValue As Variant)
mRS.Fields(sField).Value = vValue
End Sub
also in der form
call tDB.dbWriteData(sField:="Proz", vValue:=fProz) (wobei tDB ein objekt meiner datenbankklasse ist)
WERT IN ACCESS:
jetzt steht in access im entsprechenden feld der wert 0.3 (also genau der zellenwert)
IMPORT:
in einem anderen file brauche ich die werte aus der datenbank und importiere sie wiederum mit meiner datenbankklasse
Property Get dbReadData(ByVal sField As String) As Variant
dbReadData = mRS.Fields(sField).Value
End Property
wksWahl.Cells(i, iSpalte).Value = CSng(tDB.dbReadData(sField:="Proz"))
WERT IN EXCEL:
0.300000011920929
kann mir das irgendwie nicht richtig erklären. ist evtl. der typ "single" in access nicht gleich genau wie in excel (also sinngemäss in access nur 7 stellen nach dem komma)?
oder ist die funktion "CSng" schuld?
wäre um eure hilfe sehr dankbar.
gruss joel
ps: wenn ich das ganze z.b. mit einem zellwert von 30 mache, funktionierts problemlos