I am trying to set an integer value as such:
Dim intID as integer
intID = x * 10000
This works ok when x
is 3 or less. But when
in VB6, the Integer type is a whole number which ranges from -32768 to 32767.
You would be best using the Long
type here.
You *cannot set a vb6 integer to 40000 as they are signed 16 bit numbers so +32767 is the maximum.
Long
is the 32 bit type.
However as a caveat, if you were to:
Dim lngID As Long
lngID = 4 * 10000
You would still get an overflow as literal numbers default to Integer, to correct that just type one as long with &
or cast one as long using CLng()
:
Dim lngID As Long
lngID = 4 * 10000&
lngID = 4 * CLng(10000)
Update:
In VB Integer variable range is -32,768 to 32,767 If any variable value is more than this range in your program,you have to declare Data type Long instead of Integer.
Dim intID as integer
intID = x * 10000
Dim lngID AS Long
lngID = x * CLng(10000)
' if 10000
' whatever you want to be