VB6 Tutorial 45: Overflow Errors

Posted On 2018-05-07 by VB6Boy
Keywords:
Tags: VB6 Tutorials 
Views: 41


Looking for the more of the VB6 Tutorial? Here is the tutorial index.

Have you ever faced an overflow-error? While working with large data, generally large numbers, overflow error raises. Iím going to explain about the overflow-error to you in this lesson with some tips and tricks for fixing it.

Reasons for an Overflow error

Assigning large numbers

The overflow error occurs when youíre assigning a large number or a numeric expression to a variable of the data type having a smaller value range.

Example

This example throws an overflow error.

Dim var As Integer
var = 98768787

run time error 6

Run-time error 6 occurs in this example as the variable var is not able to store the value of this size. The range of an integer data type is from -32,768 through +32,767. So assigning any value beyond this range will cause an overflow-error. Take a Long variable instead of Integer to overcome this error.

Solution

Here's the solution of the problem. This code does not throw any error.

Dim var As Long
var = 98768787

Assigning large property values

Overflow error results when youíre assigning a larger property value than it can accept.

Example

This throws an overflow error.

Text1.MaxLength = 999999999999

The MaxLength property of the TextBox control sets the maximum number of characters that can be entered in the textbox. This property accepts only Long values. So you need to assign a value within the Long range to fix the problem.

Range of a datatype

The overflow error occurs when youíre using integer constant values in an expression but the result outgrows the maximum range of an Integer.

Example

Overflow error occurs here.

Dim myResult As Long
myResult=878*8787

Both the numeric constants 878 and 8787 are within the range of Integer, but the multiplication result of them are larger than an Integer. So you first have to convert the whole expression or either of the numeric constants into Long as the following example does.

For information about data type conversions, see this lesson in the tutorial.

Solution

Dim myResult As Long
myResult=CLng(878*8787)

Or

myResult=CLng(878) * 8787

Or

myResult=878*CLng(8787)

Or

myResult=878 * 8787&

Overflow error caused by Mod operator

You face an overflow error if the operands of the Mod operator are larger than Long values, that means, when the operand outgrows the range -2,147,483,648 to 2,147,483,647.

If you'd like to know more about data type operators, see this lesson in the tutorial.

Example

This code throws an overflow error.

Dim d As Double
d = 9999999999# Mod 2

Solution

Writing a function that performs mod operation on larger numbers solves this problem. So you can write your own function, and use it in your program. This is the solution.

How to write your own functions will be covered later in this tutorial.

Overflow error caused by the Integer Division operator(ď\Ē)

Example

Dim d As Double
d = 7657887688# \ 4

Solution

In this case also you can write your own function that will perform on larger values. So instead of using the inbuilt '\' operator, you can then use your custom operator function.

Finally I want to recommend a few things. If youíre working with very large values, I suggest you to take Double data type, and Long data type. Double has the higher range than Long. The Decimal data type is also helpful for larger numbers.

Looking for the more of the VB6 Tutorial? Here is the tutorial index.


About the Author

has posted a total of 78 articles.


Comments On This Post

No comments on this post yet!


Do you have a thought relating to this post? You can post your comment here. If you have an unrelated question, you can use the Q&A section to ask it.

Or you can drop a note to the administrators if you're not sure where you should post.


Your IP address is:54.166.212.152

Before you can post, you need to prove you are human. If you log in, this test goes away.


Code Links