VISUAL BASIC Variables-Operations

May 2002

Variable
  

 

Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type of data used in calculations Can Store only one piece of data at any time Data is processed faster

Data Types
          

Integer - Whole numbers - 2 bytes - +/- 32,767 Long - Whole numbers - 4 bytes - +/- 2 billion Single - Decimal - 4 bytes - +/- 1E-45 to 2E38 Double - Decimal - 8 bytes - +/- 5E-324 to 1.8E308 Currency - 15 left, 4 right of decimal - 8 bytes - +/- 9E14 String - Text - 1 byte per character - 65,400 chars for fixed strings, 2 billion for dynamic strings Byte - Whole numbers - 1 byte – 0 to 255 Boolean - Logical values - 2 bytes - True or false Date - Date and time - 8 bytes - 1/1/100 to 12/31/9999 Object - OLE objects - 4 bytes - N/A Variant - Any preceding type - 16 bytes+1 byte per character - N/A

Use of Appropriate Data Type
       

Integer or Long - Used to store whole numbers Single, Double, Currency - Used to store numbers with a decimal fraction String - Used to store strings Boolean - Used to store Boolean values (True and False) Date - Used to store date and time information Object - Used to store a reference to an object Byte - Used to store binary data Variant - Flexible, but not efficient

Variable Names
   

Can be no longer than 255 characters Can not be a reserved word Should be meaningful First three characters should represent the data type or should start with a letter Remainder of name should represent the variable’s purpose. No spaces, periods, or other punctuation characters are allowed

Three-Character Ids
     

Byte Boolean Currency Date/Time Double Integer

byt bln cur dtm dbl int

    

Long Object Single String Variant

lng obj sng str vnt

Variable Declaration

  

Dim variablename [As datatype] [, variablename2 [As datatype2]] Public variablename [As datatype] Private variablename [As datatype] Static variablename [As datatype]

Assigning Values to Variables

Assignment statement

variablename = value sngHours = 38.5 curBonus = curSales * .1 strName = “Susan”

Examples:
  

Scope of a Variable

Indicates which procedures can use the variable Determined by where the Dim or Public statement is entered Can be either global, form-level, or local

Local Variables
 

Created with the Dim statement The Dim statement is entered in an object’s event procedure Only the procedure in which it is declared can use the variable Removed from memory when the procedure ends

Form Level Variables
 

Created with the Dim/Private statement The Dim statement is entered in a form’s General declarations section Can be used by any of the procedures in the form Removed from memory when the application ends

Global Variables
 

Created with the Public statement The Public statement is entered in a code module’s General declarations section Used in multi-form projects and can be used by any of the procedures in any of the project’s forms Removed from memory when the application ends

Static Variables

Can be used to preserve the variable value for the procedures to be called multiple times
Static Sub Test()
Dim x As Integer Debug.Print x x = 1234 Debug.Print x

End Sub (1st run: 0 and 1234; 2nd run: 1234 and 1234)

Variable Arrays

Group of variables of same type
Dim x1 As Currency, x2 As Currency Dim x3 As Currency, x4 As Currency Dim xtotal As Currency xtotal=x1+x2+x3+x4 Dim x (1 to 4) As Currency Dim xtotal As Currency xtotal=0 For xcounter = 1 to 4 xtotal=xtotal+x(xcounter) Next xcounter

Option Explicit Statement
  

Doesn’t allow you to create variables “on the fly” Enter in every form’s, and every code module’s, General declarations section Use Tools, Options, Editor tab, Require Variable Declaration to have Visual Basic include Option Explicit in every new form and module If you fail to define a variable you will receive an error message “Variable not defined”

Constants

Literal constant

an item of data whose value cannot change while the program is running
 

7 “Janet”

Symbolic constant

a memory location whose contents cannot be changed while the program is running
 

conPi conRate

Creating a Symbolic Constant

A memory location whose value cannot change during run time Syntax: [Public] Const constname [As datatype] = expression Examples:
 

Const conPi As Single = 3.141593 Public Const conMaxAge as Integer = 65

Scope of a Symbolic Constant

Indicates which procedures can use the symbolic constant Global: Public Const statement in a code module’s General declarations section Form-level: Const statement in the form’s General declarations section Local: Const statement in an event procedure

Assignment Statements

IntNumStudents=25 numeric literal StrTopStudent=“June” string literal IntAvgScore=TotScore/NumStudents mathematical expression StrSpouseName=“Mrs. ” & “Tina Fortner” string expression StrCapitalName=Ucase$(“Chris”) return value of a function

Operator Order of Precedence
      

^ exponentiation negation *, / multiplication and division \ integer division Mod modulus arithmetic +, addition and subtraction Order is from left to right for same order or precedence. Parentheses can be used to override the order or precedence.

Function

A predefined Visual Basic procedure A function returns a value Val and Format are two examples of Visual Basic’s intrinsic functions

Val Function

Val function - returns the numeric equivalent of a
string Syntax: Val(string)

This Val function:

Would be converted to:

     

Val(“456”) Val(“24,500”) Val(“24.500”) Val(“$56.8”) Val(“A”) Val(“”)

456 24 24.5 0 0 0

String Concatenation
 

Ampersand - & Examples: (Assume strFirstName contains “Mary”
and sngSales contains 1000)

“Hello “ & strFirstName  strFirstName & “ sold $“ & sngSales & “.” Results:  Hello Mary  Mary sold $1000.

Newline Character

Chr(13) & Chr(10) - issues a carriage return followed by a line feed vbNewLine - one of Visual Basic’s intrinsic constant An intrinsic constant is one that is built into the Visual Basic language

Len Function

You can use the Len function to determine the number of characters contained in a text box or a variable Syntax: Len(textbox.Text)

SelStart Property of a Text Box

Tells Visual Basic where to position the insertion point Syntax: object.SelStart [ = index] The first position is position (index) 0

SelLength Property of a Text Box

Tells Visual Basic how many characters to select Syntax: object.SelLength [ = number]

Highlighting Existing Text

Use the following two lines of code:

textbox.SelStart = 0 textbox.SelLength = Len(textbox.Text)

Enter the lines of code in the text box’s GotFocus event, which occurs when an object receives the focus

Change Case
 

All upper case letters: Ucase All lower case letters: Lcase
Dim str1 As String, str2 As String Dim str3 As String, str4 As String s1 = "çğıiöşü" s2 = "ÇĞIİÖŞÜ" s3 = UCase(s1) ‘ÇĞıIÖŞÜ s4 = LCase(s3) ‘çğiİöşü MsgBox (s1 & vbNewLine & s3) MsgBox (s2 & vbNewLine & s4)

Searching a String – Insrt - First Occurrence
 

InStr(StartPos, sourcestr, searchstr) StrChrPos = InStr(1,“I’ll see you next Tuesday.”, “you”)  Result is 10 StrChrPos = InStr(9, “I’ll see you next Tuesday.”, “e”)  Result is 15

Searching a String – InStrRev - Last Occurrence
 

InStr(StartPos, sourcestr, searchstr) StrChrPos = InStrRev(“I’ll see you next Tuesday.”, “e”)  Result is 21 StrChrPos = InStrRev(“I’ll see you next Tuesday.”, “l”)  Result is 4

Extracting Pieces of a String
 

Left(string, length) : Retrieves a specified number of characters from the left end of a string Right(string, length) : Retrieves a specified number of characters from the right end of a string Mid(string, start [, length]) : Retrieves characters from the middle of a string
Dim AnyString, MyStr AnyString = "Hello World" MyStr = Left(AnyString, 7) MyStr = Right(AnyString, 7) MyStr = Mid(AnyString, 2, 3) ' Define string. ' Returns "Hello W". ' Returns “o World". ' Returns “ell".

Replacing Characters in a String

Mid can be used to replace part of a string.
Dim AnyString, MyStr AnyString = "Hello World" Mid(AnyString, 2) = “aaa” ' Define string. ' Returns “Haaao World".

Mid statement preserves the original length of the string. If the space remaining between the starting position and the end of the string is less than the length of the replacement string, only the leftmost characters are used from the replacement string.

Getting Rid of Spaces
 

LTrim(string) : Removes the spaces from the beginning of a string RTrim(string) : Removes the spaces from the end of a string Trim(string) : Removes the spaces from both the beginning and end of a string
Dim AnyString, MyStr AnyString = “ Hello World" MyStr = LTrim(AnyString) ' Define string. ' Returns "Hello World".

Format Function
  

Format function - returns a formatted expression Syntax: Format(expression, format) Some of Visual Basic’s predefined formats:
   

Currency Fixed Standard Percent

Format

FormatCurrency(1234) or Format(1234, “Currency”)

$1,234.00 or 1.234,00 TL

Format(1234, “$#,###.00”)

$1,234.00 (According to OS)

FormatNumber(1234)

1,234.00 or 1.234,00

FormatDateTime(“20:10”,vbLongTime)

20:10:00

Named Format and Descriptions
   

General Number: No special formatting Currency: Thousands separator, two digits to the right of the decimal Fixed: At least one digit to the left and two digits to the right of the decimal Standard: Thousands separator, at least one digit to the left and two digits to the right of the decimal Percent: Multiplies by 100 and follows number by % sign Scientific: Standard scientific notation Yes/No: Displays Yes for a nonzero value. True/False: Displays True for a nonzero value. On/Off: Displays On for a nonzero value.

    

Codes for Numeric Formats
 

0 – Digit placeholder: Displays the digit or 0 if no digit. 9 – Digit placeholder: Displays the digit or displays nothing if no digit. (omits leading and trailing zeros) . – Decimal separator: Indicates where the decimal point is displayed. , – Thousands separator: Indicates where the separators are displayed. % – Percentage indicator: Indicates where a percent sign is displayed. (number multiplied by 100) E-,E+ - Scientific notation: With E- a minus sign is displayed next to negative exponents, no sign for positive.

Named Date and Time Formats
 

General Date: Displays date and time if expression contains both. Long Date: Displays the day of the week, the day of the month, the month and the year. Medium Date: Displays the day of the month, a three-letter abbreviation for the month and the year. Short Date: Displays the day, month, the month and year. Long Time: Displays hours, minutes, and seconds along with the AM/PM indicator. Medium Time: Displays hours and minutes along with the AM/PM indicator. Short Time: Displays hours and minutes in military time.

 

Other Functions
 

(MonthName(Month(Now))) ‘ Returns Mart Change to Date

Cdate(“November 23, 1963”)‘ Returns 11/23/63

Add Dates

MsgBox (DateAdd(“m”, 1, Now()))

‘ Returns 04.04.2002 10:00

Subtract Dates

(DateDiff(“m”, Now, “5.5.2002”))

‘ Returns 2 (5-3)

Round a numeric expression to a specified number of decimal places.
 

Round(202.5) Round(202.56)

‘ Returns 202 ‘ Returns 203

Credit Payment Example

Credit Payment Example
Use object names as: lblPrincipal, txtPrincipal lblInterest, txtInterest lblPeriod, txtPeriod lblPayment, txtPayment cmdCalcul cmdExit

Result will be: 50.388

Credit Payment Example
Private Sub cmdCalcul_Click() Dim dPrincipal As Double, dPayment As Double Dim dInterest As Double, dPeriod As Double, dTerm As Double dPrincipal = Val(Replace(Replace(txtPrincipal.Text, ",", ""), ".", "")) dInterest = Val(txtinterest.Text) / 100 dPeriod = Val(txtPeriod.Text) dTerm = dPeriod * 12 txtPrincipal.Text = Format(dPrincipal, "###,###,###,###") dPayment = dPrincipal * (dInterest / (1 - (1 + dInterest) ^ (0 - dTerm))) txtPayment.Text = Format(dPayment, "###,###,###,###") End Sub

Credit Payment Example
Private Sub cmdExit_Click() End End Sub

Private Sub Form_Load() txtPrincipal.Text = "100000" txtinterest.Text = 50 txtPeriode.Text = 1 End Sub

Sign up to vote on this title
UsefulNot useful