VISUAL PROGRAMMING
VISUAL BASIC 6
BASICmeans Beginners' All-purpose Symbolic Instruction Code
Procedural fashion
But VB is event-driven
It uses the VB IDE (Integrated Development Environment)
VBA - Visual Basic for Applications
VBScript
Defining basic terms Application
An application is a collection of objects that work together to accomplish something useful. In VB the application is called a Project.
Object
An object is a piece of software that has properties and functions that can be manipulated. A window is an object.
Event-driven
An event is something that happens - the user clicks on a button, a form is opened, and the result of a calculation is too large.
Advantages of VB
1. VB applications are event-driven
2. VB supports the principals of objected-oriented design
3. VB is a complete windows application development system
4. VB uses ActiveX controls, dynamically linked libraries (DDL) and add-ins.
Different type of projects
Standard
ActiveX EXE
ActiveX DLL
ActiveX Control
Data Project
IIS Application
ActiveX Document DLL
ActiveX Document EXE
DHTML Application
Standard : this project contains the standard set of controls and is used to create a basic windows application or to start a large application project.
ActiveX EXE : This project helps you create an ActiveX executable component that can be executed from other applications.
ActiveX DLL : An ActiveX DLL is used to contain controls and class code that can be used in other projects.
ActiveX Control : This enables you to create a custom ActiveX control.
Data Project : This project starts with database components already added to project file.
IIS Application : This project is used to create an Internet Application.
ActiveX Document DLL : This is used to by VB applications that will be installed and executed from the Internet.
ActiveX Document EXE : This project is used to create an Internet-based VB application
DHTML Application : This project creates a Web/HTML based application that can be executed only in a web browser.
Different Components of a Project
1. Form (.frm)
2. Class (.cls)
3. Standard(.bas)
4. Resource(.res)
5. ActiveX documents(.doc)
6. User controls(.ctl) and Property Pages(.pag)
7. ActiveX Controls (.ocx)
8. ActiveX Designers(.dsr)
From (.frm): form file contains the textual descriptions of the form and its controls, including their property settings. These files also have form level declarations for constants, variables and procedures.
Class (.cls) : it is similar to a form file, except they have no visible user interface. You can create your own objects.
Standard (.bas) : These files contain public or module-level declarations of types, constants, variables and procedures.
Resource (.res) : A resource file can be contain bitmaps, text string and other data that you can change without having to re-edit and then recompile your program code.
ActiveX documents (.doc) : These are similar to form files but are displayable only in an internet browser.
User controls(.ctl) and Property Pages(.pag) : These are similar to form files but are used to create custom ActiveX controls and their associated properties.
ActiveX Controls (.ocx) : These are optional controls that you can add to the toolbox and then use on the program’s forms.
ActiveX Designers (.dsr) : These files are any of the new designer components available in VB (such as Data Environment Designer or Data Report Designer).
ActiveX documents (.doc) : These are similar to form files but are displayable only in an internet browser.
User controls(.ctl) and Property Pages(.pag) : These are similar to form files but are used to create custom ActiveX controls and their associated properties.
ActiveX Controls (.ocx) : These are optional controls that you can add to the toolbox and then use on the program’s forms.
ActiveX Designers (.dsr) : These files are any of the new designer components available in VB (such as Data Environment Designer or Data Report Designer).
ActiveX documents (.doc) : These are similar to form files but are displayable only in an internet browser.
User controls(.ctl) and Property Pages(.pag) : These are similar to form files but are used to create custom ActiveX controls and their associated properties.
ActiveX Controls (.ocx) : These are optional controls that you can add to the toolbox and then use on the program’s forms.
ActiveX Designers (.dsr) : These files are any of the new designer components available in VB (such as Data Environment Designer or Data Report Designer).
IDE
The Visual Basic development environment contains these programming tools and windows, with which you construct your Visual Basic programs:
Menu bar Toolbars Visual Basic toolbox Form window Properties window Project Explorer Immediate window Form Layout window
Programming Tools
1. Menu bar Located at the top of the screen, the menu bar
provides access to the commands that control the Visual Basic programming environment.
Menus and commands work according to standard conventions used in all Windows-based programs.
Programming Tools
2. Toolbars• Located below the menu bar, toolbars are collections
of buttons that serve as shortcuts for executing commands and controlling the Visual Basic development environment.
• You can open special-purpose toolbars by using the View menu Toolbars command.
Programming Tools
3. Windows taskbar This taskbar is located along the bottom of the screen. You can use the taskbar to switch between Visual
Basic forms as your program runs and to activate other Windowsbased programs.
Toolbox Controls
You use special tools, called controls, to add elements of a program user interface to a form.
These resources in the toolbox, which is typically located along the left side of the screen.
(If the toolbox is not open, display it by using the Toolbox command on the View menu.)
Toolbox Controls
Form Window
When you start Visual Basic, a default form (Form1) with a standard grid (a window consisting of regularly spaced dots) appears in a pane called the Form window.
You can use the Form window grid to create the user interface and to line up interface elements.
Form Window
Form Window
• Building Interface Elements• To build the interface elements, you click an interface
control in the Visual Basic toolbox, and then you draw the user interface element on your form by using the mouse.
• This process is usually a simple matter of clicking to position one corner of the element and then dragging to create a rectangle the size you want.
• After you create the element — say, a text box — you can refine it by setting properties for the element.
• In a text box, for example, you can set properties to make the text boldface, italic, or underlined.
Properties Window
With the Properties window, you change the characteristics (property settings) of the user interface elements on a form.
A property setting is a characteristic of a user interface object.
For example, you can change the text displayed by a text box control to a different font, point size, or alignment.
Properties Window
Properties Window
Properties Window Elements The Properties window contains the following
elements: A drop-down list box at the top of the window, from
which you select the object whose properties you want to view or set.
Two tabs, which list the properties either alphabetically or by category.
A description pane that shows the name of the selected property and a short description of it.
Project Window
A Visual Basic program consists of several files that are linked together to make the program run.
The Visual Basic 6.0 development environment includes a Project window to help you switch back and forth between these components as you work on a project.
Project Window
Project Window
Project Window Components The Project window lists all the files used in the
programming process and provides access to them with two special buttons: View Code and View Object.
Code Window
This computing logic is created using program statements — keywords,identifiers, and arguments — that clearly spell out what the program should do each step of the way.
You enter program statements in the Code window, a special text editing window designed specifically for Visual Basic program code.
You can display the Code window in either of two ways:
By clicking View Code in the Project window. By clicking the View menu Code command.
Form Layout Window
The Form Layout window is a visual design tool. With it, you can control the placement of the forms in
the Windows environment when they are executed. When you have more than one form in your program,
the Form Layout window is especially useful — you can arrange the forms onscreen exactly the way you want.
To position a form in the Form Layout window, simply drag the miniature form to the desired location in the window.
Form Layout Window
Understanding the project explorer window
It displays all the project’s components in a hierarchical list. There are three
display options. View code, View object and Toggle folders.
Setting Project options
In VB we can set different properties associated with the project. It has
three to five tabbed pages, depending on the type of project. These are
general, make, compile, component and debugging tabs.
VB Procedures
Two types of procedures in VB are SUBROUTINES and FUNCTIONS
RulesUnique nameNot same as VB keywords or Built-in VBprocedures.A procedure can't contain other procedures within it.But can cal
another procedure at any time
Understanding Subroutines
A subroutine (SUB) is a set of programming statements that is executed as a unit by VBA engine. Example:
Private Sub Form_Load() subroutine declaration
Dim sSQL As String Declarations.
.
.
.
.
.
Call fillcontros call another subroutine
End Sub Subroutine terminator
Components of VB Sub or Functions are
Declaration
Declarations area
Statements
Call to another procedure
Terminator : END key word followed by the type of procedure
Understanding functions
It is similar to subroutine. The main difference is that a function returns a
value. That means it returns the value through its name.
Example:
Public Function VerifyUser( ÙName as string) as Boolean
If UName=” mes college” then
VerifyUser = True
Else
VerifyUser = False
Endif
End Function
Understanding Comments
A comment is a plain text message you embed in the midst of your VBA code. A comment can include any printable character but must begin with a single quote (‘) or the key word Rem (Shorthand for remark).
Using the Visual Basic Editor
ie is Visual Basic Code window. Its parts are
Project name : it appears in the code window’s title bar.
Module name : it also appears in the code window’s title bar.
Object list : it has direct access to the form and all the controls on them. It contains the names of all controls on the form, stored alphabetically.
Procedure list : it contains all the corresponding event procedures for that control.
Declaration area : at the top of every module is an area reserved for declaring variables and constant used within the module.
Indicator bar : it is a vertical gray area along the left side of the code window.
Procedure and full module view buttons : it shows procedure wise ie. only one procedure and all procedure view.
Procedure separator: this is a thin horizontal gray line drawn between procedure in the code window.
Procedure : this module can contain any number of procedures.
Private Sub Form_Load ( )Form1.showPrint “Welcome to Visual Basic tutorial”
End Sub
Opening the Code Window
First and easiest method is double-click any control on the design view An alternative path to the Code window is press F7
Right-click on the object and select the view code
Right-click the name of a form in the projects window and select view code
Click the view code button at the project window’s toolbar to open the module
Crtl+F4 to close the code window and Alt+F4 shuts down VB
Understanding Code Window Features
Line continuation character – underscore character, it is shown that any line of code ending in an underscore character preceded by a space is recognized as a statement that is continued on the next line.
Concatenation character “&”
sSQL = "SELECT FirstName, LastName, " _ & "Title, HireDate, Extension " _
& "FROM Employees " _ & "ORDER BY LastName"
VBA code window color cueing to set aside comments, keywords etc
Global find and replace – you can search entire project ie all standard modules, form modules, class modules etc.
Setting bookmarks in code
This is useful for quickly jump between different locations in your VBA code.
Toggle Bookmark :
this add a bookmark to the current line of code window. If a
bookmark previously set on that line will be removed.
Next bookmark :
it moves the editing cursor to the next available bookmark.
Previous bookmark:
it moves the editing cursor to the previous available bookmark.
Clear all bookmark:
removes all bookmark in all modules in the projects.
Using automatic word completion
VB can help you by completing long keywords as you type. As soon as you have typed enough of keywords for VB to determine which word you are typing, press Ctrl+Spacebar.
It does not recognize the names of procedures or variables you are created in VB program.
If you are not entering enough characters for VB to fill in the rest of the word, you will see a pop-up list of words to select from
Understanding Editor Options
Auto Indent :
it causes code to be indented to the current depth in all successive lines of code.
Auto Syntax Check:
if selected VB checks each lines of code for syntax errors as you enter it in the code window. It checks spelling errors, missing commas and so no.
Require Variable Declaration:
if selected, this setting automatically inserts the option explicit directive into all VBA modules.
Auto List Members :
this timesaving option displays a list box that contains the members of an object’s object hierarchy in the code window.
Auto Quick Info :
if it is selected VB displays syntax help when you enter the name of a procedure( function,subroutine or method) followed by a period, space or opening parenthesis.
Auto Data Tips : this option displays the value of variables when you hold the
mouse cursor over a variable with the module in break mode.
Drag-and-Drop Text Editing:
this setting toggles drag and drop editing.
Default to Full Module View:
by default code window shows more than one procedure if the procedures are small enough to be seen in their entirely.
Procedure separator :
this the thin gray line that separates procedures in code window.
Tab width :
it specifies how many spaces will be inserted each time the tab key is pressed.
Understanding the Editor Format Tab in the Options Dialog Box
It contains settings that determine the overall appearance of the code window.
Code Colors : the code window displays a variety of different
types of code statements.
Eg. Executable commands, comments beak point etc. There are three color settings for each of the 10 different code structures in the code window: foreground, background and indicator. Foreground and background are self-explanatory.
Font and Size: this setting specify the font and font size used in code window.
Margin Indicator Bar: it is the vertical, gray bar along the left side of the
code window.
Controlling Program Flow
Using Conditional Branching
A conditional branch executes blocks of statements depending on the value of an expression.
Using if. . . then
If (condition) Then
Optional statement(s)
End If
Statement 1
If Expression
Statement 2
Optional Statement(s)
Then
• If/Then/End If blocks to allow multiple statements:
If Balance - Check < 0 Then
Print "You are overdrawn"
Print "Authorities have been notified"
End If• In this case, if Balance - Check is less than zero, two
lines of information are printed.
Example:
The following is an alternative way to write an if statement
If Balance - Check < 0 Then Print "You are overdrawn"
Here the optional statement appears on the same line as the if , the end if statement isn’t needed.
If . . . then . . . Else
If (expression/condition) then
Statement(s) if expressions is true
Else
Statement(s) if expressions is false
End If
Statement 1
If Expressio
n
Then
Else
Statement(s) if Expression is false
Statement(s) if Expression is true
End If
Statement 2
• If/Then/Else/End If blocks:
If Balance - Check < 0 Then
Print "You are overdrawn"
Print "Authorities have been notified"
Else
Balance = Balance - Check
End If• Here, the same two lines are printed if you are overdrawn
(Balance - Check < 0), • but, if you are not overdrawn (Else), your new Balance is
computed.
Example:
Example:
Public Function VerifyUser(UName As String) As Boolean
If UName = "Bob Smith" Then
VerifyUser = True
Else
VerifyUser = False
End If
End Function
If . . . then . . . ElseIf . . . End If
If (expression 1/condition 1) then
Statement(s) if expressions 1 is true
Else If (expression 2/condition 2) then
Statement(s) if expressions 2 is true
Else If (expression N/condition N) then
Statement(s) if expressions N is true
End If
Statement 1
If Expressio
n 1
Then
Else
Statement(s) if Expression 1 is true
End If
Statement 2
If Expressio
n 2
Then
Statement(s) if Expression 2 is true
If Expressio
n N
Statement(s) if Expression N is true
Else
Then
• the ElseIf statement:
• If Balance - Check < 0 Then
Print "You are overdrawn"
Print "Authorities have been notified"
• ElseIf Balance - Check = 0 Then
Print "Whew! You barely made it"
Balance = 0
• Else
Balance = Balance - Check
• End If
Example:
The expression is evaluated at the top of the select case statement and compared with each of the candidate values in the body of the select case.
If none of the values match the expression, the select case simply ends.
An option Case Else can be added to the Select Case body to trap in the body to trap those instances where none of the candidate values match.
Using Select Case
Case Value 1
Statement case Expression
Statement Block 1
Case Value 2
Statement Block 2
Case ValueN
Statement Block N
End Select
Example:
Sub SelectCase(sPet As String) Select Case sPet
Case "Dog“
MsgBox "It's a dog“
Case "Cat“
MsgBox "It's a cat“
Case "Bird“
MsgBox "It's a bird“
Case Else
MsgBox "Unknown pet“
End Select
End Sub
For . . . Next Syntax
For initialize the counter variable to upper limit [increment
value]
Statement(s)
Next counter variable Here increment value is optional and by defaults to 1.
Loops
For counter = start To end
statements
Next
1) The counter is set to the value of start.
2) Counter is checked to see if it is greater than end; if yes, control passes to the statement after the Next; if not the statements are executed.
3)At Next, counter is incremented and goes back to step 2).
Counter at upper limit?
Establish upper limit and increment Value
Statement Block
Increment counter
Continue processingie. Next statement
YES
No
Example:
Public Function ValidatePassword2() As Boolean Dim i As Integer Dim sPWD As String For i = 1 To 3 sPWD = InputBox("Enter the password") If sPWD = "xyzzy" Then Exit For End If Next i If i <= 3 Then ValidatePassword2 = True Else ValidatePassword2 = False End IfEnd Function
Do. . . Loop
Here the statement block is preceded before the expression is evaluated.
Syntax
DoStatement 1Statement 2
.
.Statement n
Loop Until Expression – Is- True
Has condition
been Met?
Statement 1
Process Statement Block
Statement 2
YES
No
Example:
Sum = 1Do
Print SumSum = Sum + 3
Loop Until Sum > 50
This loop repeats Until Sum is greater than 50.• And, like the previous example , aDo/Loop Until structure always executes at least once.
Another do … loop form is instead of Until we use While keyword Syntax
DoStatement 1
Statement 2...
Statement nLoop while Expression – Is- False
Example
Sum = 1Do
Print SumSum = Sum + 3
Loop While Sum <= 50
• This loop repeats While the Variable Sum is less than or equal to 50.• Note, since the While check is at the end of the loop, a Do/Loop While structure is always executed at least once.
An alternate Do…Loop logic is that expression is evaluated at the top of the loop and statement block is never executed if the expression is true.
Do Until Expression – Is- True
Statement 1
Statement 2...
Statement n
Loop
Has condition
been Met?
Statement 2
Statement 1
Process statement Block
YES
No
Example:
Counter = 1Do Until Counter > 1000
Print CounterCounter = Counter + 1
Loop
•This loop repeats Until the Counter variable exceeds 1000. •Note a Do Until/Loop structure will not be entered if the Until• condition is already True on the first encounter.
Do While condition
statements
Loop
First, the condition is tested; if condition is True, then the statements
are executed. When it gets to the Loop it goes back to the Do and
tests condition again. If condition is False on the first pass, the
statements are never executed
Counter = 1Do While Counter <= 1000
Print CounterCounter = Counter + 1
Loop
Data typeStorage size
Range
Byte 1 byte 0 to 255
Boolean 2 bytes True or False
Integer 2 bytes -32,768 to 32,767
Long (long integer) 4 bytes -2,147,483,648 to 2,147,483,647
Single (single-precision floating-point)
4 bytes
-3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values
Double (double-precision floating-point)
8 bytes-1.79769313486232E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values
Currency 8 bytes -922,337,203,685,477.5808 to 922,337,203,685,477.5807
Date 8 bytes January 1, 100 to December 31, 9999
Object 4 bytes Any Object reference
String various 0 to approximately 2 billion
Variant various Same range as any numeric or string data type
Byte
Byte
A byte variable occupies only 8 bits. It can contain unsigned whole number values from 0 through 255. Negative numbers and numbers larger than 255 are not allowed. If do so it will return overflow error.
ExampleDim bByte As Byte
Integer
It is similar to byte, except that it’s larger and can store negative numbers. It occupies 16 bits. And can hold whole numbers between -32768 to 32,767.
Long
It behaves exactly as integer values, except that it can assigned much larger and much smaller values than integer. Because long integer are 32 bits in size, they can hold positive and negative numbers range between -2,147,483,648 to 2,147,483,647
Single
It contains floating point numbers. It can hold 32 bits. It is not suitable for financial and scientific calculations.
Double
Double
It occupies 8 bytes of memory and can hold large and small floating point numbers. It is used for calculation requiring extreme precision.
Currency
It is reserved for storing numeric values such as bank account balance, prices and payroll information.
Boolean
It accept only True or False values. It stores internally as integer number. True is stored as -1 and false is 0.
Date
It contain only date and time data. It occupies 8 bytes and stored internally as a floating-point number.
It hold all date and time values from January 1, 100 through December 31, 9999 and time from 00:00:00 to 23:59:59 one second increment.
If we convert numeric value to date, the portion of the number to the left of the decimal point become the date and the decimal point become time.
String
It can holds data made up of letters, numbers and symbols you see on a keyboard. Visual Basic provides two type of string variables.
Fixed length string and variable length string
Fixed length – contains at most 65000 characters.
Variable length – can be as long as 2 billion characters.
Example
Dim sFixed As String *10 ‘ a 10 character fixed width string.
Dim sVariable As String ‘ a variable length string.
In fixed width string, the strings are fit the width defined for the string. If we enter the word “Bcollege” to the sFixed variable in the above example, then the data actually stored is “Bcollege “ ie. the fixed width contains unwanted spaces.
We can remove the unwanted spaces using different trim functions. Ltrim which removes leading spaces, Rtrim-removes trailing spaces and Trim – removes both leading and trailing spaces.
Object
There will be occasions when you’ll want to refer to a form on a form in code or establish a variable that represents a complex object with several different properties rather than a single value. In such cases, the object data type is suitable.
Example Private Sub Form_Load()
frmBuddy.ShowCall UpdateCaptions(Me, txtCaption1)Call UpdateCaptions(frmBuddy, txtCaption2)bChanged False
End SubPublic Sub UpdateCaptions(frm As Object, txt As Object)
txt.Text = frm.CaptionEnd Sub
Specific object type references run faster than the generic object type.
Private Sub Form_Load() frmBuddy.Show Call UpdateCaptions(Me, txtCaption1) Call UpdateCaptions(frmBuddy, txtCaption2) bChanged = False
End SubPublic Sub UpdateCaptions(frm As Form, txt As TextBox)
txt.Text = frm.CaptionEnd Sub
Variant
The default Visual Basic data type is Variant
It can accept any value.
It can hold more storage space than other data types.
Declaring Variables
There are two ways to add variables to your applications.
They are
Implicit declaration
– visual basic automatically create the variables for you.
It means that Visual Basic automatically creates a variant for each identifier it recognizes as a variable in an application
Example Private Sub cmdCombine_Click()
FirstName = txtFN.Text
LastName = txtLN.Text
txtFullName = FN & " " & LNEnd Sub
Explicit declaration
- here we use one of the following keywords: Dim, Static, Private and Public.
Syntax
Dim VariableName As DataType
Static VariableName As DataType
Private VariableName As DataType
Public VariableName As DataType
Example Private Sub cmdCombine_Click()
Dim FirstName As StringDim LastName As StringFirstName = txtFN.TextLastName = txtLN.TexttxtFullName = FN & " " & LN
End Sub
Compare Implicit and Explicit Variable performance
Providing Names for your Variable
These are the rules to follow when naming elements in VB - variables, constants, controls, procedures, and so on:
• A name must begin with a letter of the alphabet.
• The name must consist only of letters, digits and the underscore character (no punctuation mark are allowed)
• May be as much as 255 characters long
• Variable name can’t be duplicated within the same scope.
Forcing Explicit Declaration
Naming Convention
Example : boolActive or factive, txtLS
Under standing Variables Scope and Lifetime
Converting Between Data Types
Visual Basic provides several ways to convert values between different data types.
Visual Basic automatically converts between the data types in the expression.
Example
Public Sub Conversion1 () Dim sSt As String Dim dDb As Double sSt = "12345.67890" dDb = sStr MsgBox "Value of dDb: " & dDb _ & vbCrLf & vbCrLf _ & "TypeName(dDbl): " & TypeName(dDbl)End Sub
This process of automatic conversion is called coercion because Visual Basic forces the string value to a numeric value.
Built-in conversion functions proved by the VBA language are
When passed the string 12345.67890
Function Result Resulting Data type
CByte Overflow Byte cannot contain a value this large
CCur 12345.6789 Currency
CDate 10/18/33 4:17:36PM Date/Time
Function Result Resulting Data type
CDbl 12345.6789 Double
CDec 12345.6789 Decimal
CInt 12346 Integer
CLng 12346 Long
CSng 12345.68 Single
CSrt “12345.67890” String
CVar “12345.6789” String
Objects
Characteristics
-building blocks of Visual Basic
- Object types already created - we make new instances
- Object types ' borrowed' from Windows environment
- Individual entities that are somewhat self-contained
- Can interact with other objects
- Some behavior 'built-in'
THANK YOU