Wenn ich versuche ein extrem simples Programm zu schreiben wie das folgende, gibt es bereits Probleme:
msgbox Cstr(1000*1000)
Beim speichern wird die Zeile rot markiert und im Bemerkungsfeld steht "Overflow". Denselben Fehler gibt es, wenn man zwei Variablen als Integer, Double, Long, etc. deklariert (mit Dim) und diese versucht zu multiplizieren, allerdings dann erst, wenn das Programm ausgeführt wird. Beim Versuch, das Problem einzuschränken, finden sich die Grenzfälle bei diesen Fällen:
- Msgbox Cstr(180*182+7) '=32767
- Msgbox Cstr((-180)*182-8) '=-32768
(Zum Vergleich, 2^15 = 32768)
Beide funktionieren, aber geben denselben "Overflow" Fehler wenn die letzte Zahl um eins auf +8 erhöht oder um eins auf -9 verringert wird. Ich kann nicht umhin zu denken, dass dies mit der Zahl 2^16, also 2 Bytes, zu tun hat, da die Addition des Betrages beider Zahlen eins weniger als 2^16 ergibt (mit einer weiteren Stelle reserviert für die 0).
Das Programm zu re-installieren hat nicht geholfen und das Problem lies sich auf anderen Computern reproduzieren. Die Lokation schien unerheblich zu sein, denn es war egal ob es in "postopen" oder einem Button war.
Ich habe einen workaround gefunden, indem ich den Wert in einem Fehld hatte und Cdbl benutzt habe, um auf das Feld zuzugreifen und die Zahl auf die respektiven Variablen zu übergeben. Was soll das Ganze?
Außerdem ist dies mein erster Beitrag hier, programmiere erst seit ein paar Wochen mit Lotus Notes und bin ziemlich unerfahren beim programmieren allgemein.