Access97: Laufzeitfehler 6: Überlauf

27/10/2007 - 17:40 von Alberto Luca | Report spam
Hallo NewsGroup,

folgender Code führt zu o.g. Fehler:
Dim llng As Long
Dim ldbl As Double
llng = 60 * 1000 '=> Fehler
ldbl = 60 * 1000 '=> Fehler
llng = 60000 '=> OK

Sowohl Long als auch Double müssten doch 60.000 aufnehmen können.
Woran liegts?

Hintergrund:
ich möchte Me.TimerInterval variabel setzen.

Besten Dank vorab!
Ciao, Alberto
 

Lesen sie die antworten

#1 Klaus Oberdalhoff
27/10/2007 - 18:00 | Warnen spam
Hi,

llng = 60 * 1000 '=> Fehler
ldbl = 60 * 1000 '=> Fehler

Sowohl Long als auch Double müssten doch 60.000 aufnehmen können.
Woran liegts?



ganz klar, du arbeitest hier mit zwei Integer-Werten, deren Gesamtwert nach
der Multiplikation den Integerbereich überschreitet, bevor der Zielwert nach
long oder double konvertiert wird, da für die Rechenoperation von zwei Short
Integerwerten selbst - unabhàngig vom Zielwert - eine Short Integer
Operation durchgeführt wird.

Daraus folgt: Immer auch MINDESTENS bereits einen *Quellwert* in der
gewünschten Zielart definieren z.B.:

llng = 60 * cdbl(1000)
llng = 60 * clng(1000)
llng = 60 * 1000# ' # Double

llng = 60 * 1000& ' & Long



mit freundlichen Grüßen aus Nürnberg

Klaus Oberdalhoff
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
Nàchstes Treffen in Nürnberg am 20.11.2007

Ähnliche fragen