# 5.1 Visual Basic Data Types

In the course of our everyday routines, we come across a plethora of data—names, addresses, monetary values, dates, stock quotes, and statistics—all constituting a diverse array of information. Similarly, when immersed in the realm of Visual Basic, we confront a myriad of data forms, ranging from mathematically calculable values to various textual and other formats. To streamline the coding process for optimal efficiency, VB neatly organizes data into distinct categories. In the case of VB6, these categories predominantly manifest as numeric data types and non-numeric data types.

#### 5.1.1 Numeric Data Types

Numeric data types are fundamental data types that encompass numbers capable of being manipulated through mathematical computations using standard operators. They serve as containers for various types of quantitative information, such as height, weight, share values, prices of goods, monthly bills, fees, and more. In Visual Basic, numeric data is categorized into seven distinct types based on the range of values they can accommodate.

Calculations involving round figures can make use of the Integer or Long Integer data types. However, for programs that necessitate high precision calculations, the preferred choice is to employ the Single and Double data types, commonly known as floating-point numbers. When it comes to currency calculations, it is advisable to use currency data types. Lastly, if utmost precision is indispensable for calculations involving numerous decimal points, the decimal data types prove to be the most suitable option. These data types summarized in Table 5.1

Table 5.1 Numeric Data Types
Type Storage Range of Values
Byte  1 byte   0 to 255
Integer  2 bytes   -32,768 to 32,767
Long  4 bytes  -2,147,483,648 to 2,147,483,648
Single  4 bytes -3.402823E+38 to -1.401298E-45 for negative values 1.401298E-45 to 3.402823E+38 for positive values.
Double  8 bytes -1.79769313486232e+308 to -4.94065645841247E-324 for negative values 4.94065645841247E-324 to 1.79769313486232e+308 for positive values.
Currency  8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Decimal  12 bytes +/- 79,228,162,514,264,337,593,543,950,335 if no decimal is use +/- 7.9228162514264337593543950335 (28 decimal places).

#### 5.1.2 Non-numeric Data Types

Nonnumeric data types are data that cannot be manipulated mathematically. Non-numeric data comprises string data types, date data types, boolean data types that store only two values (true or false), object data type and Variant data type .They are summarized in Table 5.2

Table 5.2: Nonnumeric Data Types

Data Type

Storage

Range

String(fixed length)

Length of string

1 to 65,400 characters

String(variable length)

Length + 10 bytes

0 to 2 billion characters

Date

8 bytes

January 1, 100 to December 31, 9999

Boolean

2 bytes

True or False

Object

4 bytes

Any embedded object

Variant(numeric)

16 bytes

Any value as large as Double

Variant(text)

Length+22 bytes

Same as variable-length string

#### 5.1.3 Suffixes for Literals

Literals are values that you assign to data. In some cases, we need to add a suffix behind a literal so that VB can handle the calculation more accurately. For example, we can use num=1.3089# for a Double type data. Some of the suffixes are displayed in Table 5.3.

Table 5.2: Suffixes for Literals
Suffix Data Type
& Long
! Single
# Double
@ Currency

In addition, we need to enclose string literals within two quotations and date and time literals within two # sign. Strings can contain any characters, including numbers. The following are few examples:

memberName="Turban, John."
TelNumber="1800-900-888-777"
LastDay=#31-Dec-00#
ExpTime=#12:00 am#

# 5.2 Managing Variables

Variables act as the dynamic carriers of information within a computer's memory, akin to mailboxes that regularly receive new content. In the realm of Visual Basic, these designated memory spaces require specific names, following a set of rules, much like the process of naming mailboxes in a post office.

#### 5.2.1 Variable Names

The following are the rules when naming the variables in Visual Basic

• It must be less than 255 characters
• No spacing is allowed
• It must not begin with a number
• Period is not permitted
• Cannot use exclamation mark (!), or the characters @, &, \$, #
• Cannot repeat names within the same level of scope.

Examples of valid and invalid variable names are displayed in Table 5.4

Table 5.4: Examples of Valid and Invalid Variable Names
Valid Name Invalid Name

My_Car

My.Car

ThisYear

1NewBoy

Long_Name_Can_beUSE

He&HisFather                  *& is not acceptable

#### 5.2.2 Declaring Variables Explicitly

In Visual Basic, it is a good practice to declare the variables before using them by assigning names and data types. Usually, we declare them in the general section of the codes' windows using the Dim statement.

Dim VariableName As DataType

If you want to declare more variables, you can declare them in separate lines or you may also combine more in one line , separating each variable with a comma, as follows:

Dim VariableName1 As DataType1, VariableName2 As DataType2,VariableName3 As DataType3

#### Example 5.1

```Dim password As String
Dim yourName As String
Dim firstnum As Integer
Dim secondnum As Integer
Dim total As Integer
Dim doDate As Date
Dim password As String, yourName As String, firstnum As Integer
```

Unlike other programming languages, Visual Basic actually doesn't require you to specifically declare a variable before it's used. If a variable isn't declared, VB willautomatically declare the variable as a Variant. A variant is data type that can hold any type of data.

For string declaration, there are two possible types, one for the variable-length string and another for the fixed-length string. For the variable-length string, just use the same format as example 5.1 above. However, for the fixed-length string, you have to use the syntax as shown below:

`Dim VariableName as String * n`

where n defines the number of characters the string can hold.

For example,

```Dim yourName as String * 10
```

*yourName can holds no more than 10 Characters.

#### 5.2.2 Scope of Declaration

Other than using the Dim keyword to declare the data, you can also use other keywords to declare the data. Three other keywords are private ,static and public. The forms are as shown below:

```Private VariableName as Datatype
Static VariableName as Datatype
Public VariableName as Datatype
```

The above keywords indicate the scope of the declaration. Private declares a local variable or a variable that is local to a procedure or module. However, Private is rarely used, we normally use Dim to declare a local variable. The Static keyword declares a variable that is being used multiple times, even after a procedure has been terminated.  Most variables created inside a procedure are discarded by Visual Basic when the procedure is finished, static keyword preserves the value of a variable even after the procedure is terminated. Public is the keyword that declares a global variable, which means it can be used by all the procedures and modules of the whole program.

# 5.3 Constants

Constants are different from variables in the sense that their values do not change during the running of the program.

#### 5.3.1 Declaring a Constant

The syntax to declare a constant is

```Constant Name As Data Type = Value
```

#### Example 5.3

In this example, we insert a Shape control and two command buttons. Set the shape value of the Shape control to 3 so that it becomes a circle. Rename one of the command buttons to CmdResize for changing the size of the circle. Rename the other command button as CmdArea for calculation of the area of the circle. In this program, we declare four variables and a constant in the General section. The varaible h is to store the value of height of the circle and the variable r is to store the value of the radius which is half of the height. In addtion, the variable a is to store the value of area in twip using the formula area of circle=πr2. Besides that, the constant Pi represents π which we fixed at 3.142. Finally, the variable area is to store the value in cm by multiplying a with 0.001763889. (1 twip =0.001763889 cm)

##### The Code
```Dim h, r, a, rad, area As Single
Const Pi As Single = 3.142

Private Sub CmdArea_Click()
r = h / 2
a = Pi * rad ^ 2
area = Round(a, 2)
MsgBox ("The Area of the circle is " & area)
End Sub

Private Sub CmdResize_Click()
h = InputBox("Enter the value of height")
MyShape.Height = h
End Sub
```