·A database
is a collection of related information.This information is stored in a very
structured manner.The information in
this structure is organized in such a way that, we can access and modify the
information quickly and correctly.
·Databases presence in some of areas:
In book library - looking up a book on their
computer, you are accessing the library’s book database.
on-line purchase s
s
Some product, you are accessing the web
merchant’s product database.
ÞYour friendly bank keeps all your financial
records on their database.When you receive your monthly statement, the
bank generates a databasereport.
ÞWhen you call to make a doctor appointment, the
receptionist looks into their database
for available times.
ÞWhen you go to your car dealer for repairs, the
technician calls up your past work record on the garage database.
ÞAt the grocery store, when the checker scans
each product, the price is found in the store’s database, where inventory control is also performed.
ÞWhen you are watching a baseball game on
television and the announcer tells you that “the batter is hitting .328 against
left-handed pitchers whose mother was born in Kentucky on a Tuesday morning,”
that useless information is pulled from the team’s database.
·You can surely think of many more places that
databases enter your life.The idea is
that they are everywhere.And, each
database requires some way for a user to interact with the information
within.Such interaction is performed by
a databasemanagementsystem (DBMS).
·The tasks of a DBMS are really quite simple.In concept, there are only a few things you can do with a database:
View the data
Find some data of interest
Modify the data
Add some data
Delete some data
There are many commercial database
management systems that perform these tasks.Programs like Access (a Microsoft product) and Oracle are used
world-wide.In this course, we look at
using VisualBasic as a DBMS.
·Examples where you might use Visual Basic as a
DBMS:
ÞImplementing a new application that requires
management of a database
ÞConnecting to an existing database
ÞInteracting with a database via the internet
·In a DBMS, the database may be available locally on your (or the user’s)
computer, available on a LAN (local
area network) shared by multiple users, or only available on a webserver via the Internet.In
this course, we spend most of our time looking at local databases, but access
with remote databases is addressed.
·We will look at databases in more depth in the
next chapter.You will see that
databases have their own vocabulary.Now, let’s take a look at how Visual Basic fits into the database
management system.
Where Does Visual Basic Fit
In?
·For database management, we say our Visual Basic
application acts as a front-end to the database.This means the Visual Basic application
provides the interface between the
user and the database.This interface
allows the user to tell the database what he or she needs and allows the
database to respond to the request displaying the requested information in some
manner.
·A Visual Basic application cannot directly
interact with a database.There are two
intermediate components between the application and the database:the datacontrol and the databaseengine:
·The datacontrol is a Visual Basic object
that connects the application to the database via the database engine.It is the conduit between the application and
the engine, passing information back and forth between the two.
·The databaseengine is the heart of a Visual
Basic database management system.It is
the actual software that does the management.Having this engine saves programmers a lot of work.The database engine native to Visual Basic is
known as the Jet engine.It is the same engine used by Microsoft
Access for database management.Hence,
it is primarily used to work with Access databases, but it can also work with
others.
·As mentioned, the Jet engine will save us lots
of work.An observation that illustrates
the power of using Visual Basic as a front-end for database management systems:
Using Visual Basic,
it requires less code to connect to an existing database, view all information
within that database, and modify any and all information within that database,
than it does to add two numbers together.
That’s right - all the
database tasks mentioned above can be done without writing one line of
code!That’s the power of the Jet
database engine!
·So, if the Jet engine is so powerful and is the
same engine used by Microsoft Access, why not just use Access as a DBMS instead
of writing a custom Visual Basic application?There are two primary advantages to using Visual Basic as a DBMS instead
of Access:
Your
users don’t need to have Access installed on their computers or know how
to use Access.
By
building a custom front-end, you limit what your user can do with the
information within the database.Under normal operation, Access provides no such limits.
·So, in this course, we will look at how to build
Visual Basic applications that operate as front-ends to databases.Research has shown that over half of all
Visual Basic applications involve working with databases.We will look at how to make our applications
into complete database management systems, being able to view, search, modify,
add, and/or delete database information.
·Before going any further, let’s review the steps
in building a Visual Basic application and then build a simple application for
practice.
Building a Visual Basic
Application
·In the remainder of this chapter, we will
provide an overview of a Visual Basic application and how the Visual Basic
development environment is used to develop an application.This should provide you with some idea of what
knowledge you need to possess to proceed in this course and introduce the
terminology used by the author to describe a Visual Basic application.
Structure of a Visual Basic
Application
Project (.VBP)
Module 1 (.BAS)
Form 3 (.FRM)
Form 2 (.FRM)
Control
1
Control
1
Control
2
Control
2
Control
3
Control
3
Application
(Project - saved as a file with a .VBP extension) is made up of:
ÞForms
- Windows that you create for user interface (saved as a file with a .FRM
extension).
ÞControls
- Graphical features drawn on forms to allow user interaction (text boxes,
labels, scroll bars, command buttons, etc.)(Forms and Controls are also called objects.)
ÞProperties
- Every characteristic of a form or control is specified by a property.Example properties include names, captions,
size, color, position, and contents.Visual Basic applies default properties.You can change properties at design time or run time.
ÞMethods
- Built-in procedure that can be invoked to impart some action to a particular
object.
ÞEvent
Procedures - Code related to some object.This is the code that is executed when a certain event occurs.
ÞGeneral
Procedures - Code not related to objects.This code must be invoked by the application.
ÞModules
- Collection of general procedures, variable declarations, and constant
definitions used by application (saved as a file with a .BAS extension).
Steps in Developing Application
·There are three primary steps involved in
building a Visual Basic application:
1.Draw
the user interface
2.Assignproperties to controls
3.Writecode for event procedures.Develop any needed general procedures.
We’ll look at each step.
Drawing the User Interface
and Setting Properties
·Visual Basic operates in three modes.
ÞDesign
mode - used to build application
ÞRun
mode - used to run the application
ÞBreak
mode - application halted and debugger is available
We focus here on the
design mode.
·Six windows should appear when you start Visual
Basic.If any of these windows do not
appear, they may be accessed using the main window menu View item.
ÞThe Main
Window consists of the title bar, menu bar, and toolbar.The title bar indicates the project name, the
current Visual Basic operating mode, and the current form.The menu bar has drop-down menus from which
you control the operation of the Visual Basic environment.The toolbar has buttons that provide
shortcuts to some of the menu options (ToolTips indicate their function).The main window also shows the location of
the current form relative to the upper left corner of the screen (measured in
twips) and the width and length of the current form.
ÞThe Form
Window is central to developing Visual Basic applications.It is where you draw your application.
ÞThe
Toolbox is the selection menu for controls (objects) used in your
application.
Pointer
Label
Timer
Horizontal Scroll Bar
Combo Box
Check Box
Frame
Directory List Box
Shapes
Image Box
Object Linking Embedding
Text
Box
Command
Button
List
Box
Vertical
Scroll Bar
Drive
List Box
File
List Control
Line
Control
DAO
Data Control
Option
Button
Picture
Box
ÞThe Properties
Window is used to establish initial property values for objects.The drop-down box at the top of the window
lists all objects in the current form.Two views are available:Alphabetic and Categorized.Under this box
are the available properties for the currently selected object.
ÞThe Form
Layout Window shows where (upon program execution) your form will be
displayed relative to your monitor’s screen:
ÞThe Project
Explorer Window displays a list of all forms and modules making up your
application.You can also obtain a view
of the Form or Code windows (window containing the actual Basic coding) from the
Project Explorer window.
·As mentioned, the user interface is ‘drawn’ in
the form window.There are two ways to
place controls on a form:
Double-click
the tool in the toolbox and it is created with a default size on the
form.You can then move it or
resize it.
Click
the tool in the toolbox, and then move the mouse pointer to the form
window.The cursor changes to a
crosshair.Place the crosshair at
the upper left corner of where you want the control to be, press the left
mouse button and hold it down while dragging the cursor toward the lower
right corner.When you release the
mouse button, the control is drawn.This approach must be used to place controls in a frame or picture
box control.
·To move
a control you have drawn, click the object in the form window and drag it to
the new location.Release the mouse
button.
·To resize
a control, click the object so that it is select and sizing handles
appear.Use these handles to resize the
object.
Setting Properties of
Controls at Design Time
·Each form and control has properties assigned to it by default when you start a new
project.There are two ways to display
the properties of an object.The first
way is to click on the object (form or control) in the form window.Then, click on the Properties Window or the
Properties Window button in the tool bar.The second way is to first click on the Properties Window.Then, select the object from the Object box in the Properties
Window.Shown is the Properties Window
for a new application:
The drop-down box at the top of the
Properties Window is the Object
box.It displays the name of each object
in the application as well as its type.This display shows the Form
object.The Properties list is directly below this box.In this list, you can scroll through the list
of properties for the selected object.You may select a property by clicking on it.Properties can be changed by typing a new
value or choosing from a list of predefined settings (available as a drop down
list).Properties can be viewed in two
ways:Alphabetic and Categorized.
A very important property for each
object is its name.The name is used by Visual Basic to refer to
a particular object in code.
·A convention has been established for naming
Visual Basic objects.This convention is
to use a three-letter prefix (depending on the object) followed by a name you
assign.A few of the prefixes are (we’ll
see more as we progress in the course):
ObjectPrefixExample
Form
frm frmWatch
Command
Button cmd, btncmdExit,
btnStart
LabellbllblStart,
lblEnd
Text
BoxtxttxtTime,
txtName
MenumnumnuExit,
mnuSave
Check
boxchkchkChoice
Data
controldatdatExample
·Object names can be up to 40 characters long,
must start with a letter, must contain only letters, numbers, and the
underscore (_) character.Names are used
in setting properties at run time and also in establishing procedure names for
object events.
Setting Properties at Run
Time
·In addition to setting control properties in
design mode, you can set or modify properties while your application is running
(run mode).To do this, you must write
some code.The code format is:
ObjectName.Property = NewValue
Such a format is
referred to as dot notation.For
example, to change the BackColor
property of a form name frmStart,
we'd type:
frmStart.BackColor
= vbBlue
·Using the three-letter prefix when naming an
object and using an appropriate name makes reading such code easier and more
meaningful.
How Names are Used in Object
Events
·The names you assign to objects are used by
Visual Basic to set up a framework of event-driven procedures for you to add
code to.The format for each of these
subroutines (all object event procedures in Visual Basic are subroutines) is:
Sub ObjectName_Event (Optional Arguments)
.
.
End Sub
Visual Basic provides
the Sub line with its arguments (if
any) and the End Sub statement.You provide any needed code.
·Using the three-letter prefix when naming an
object and using a meaningful name makes finding appropriate event procedures a
simpler task.
Writing Code
·The last step in building a Visual Basic
application is to write code using the BASIC
language.This is the most time
consuming task in any Visual Basic application, not just ones involving
databases.As objects are added to the
form, Visual Basic automatically builds a framework of all event
procedures.We simply add code to the
event procedures we want our application to respond to.And, if needed, we write general procedures.
·Code is placed in the codewindow.At the top of the code window are two boxes,
the object (or control) list and the procedurelist.Select an object and the corresponding event
procedure.Ablank procedure will appear in the window
where you write BASIC code.
Review of Variables
·Variables are used by Visual Basic to hold
information needed by your application.Rules used in naming variables:
ÞNo more than 40 characters
ÞThey may include letters, numbers, and
underscore (_)
ÞThe first character must be a letter
ÞYou cannot use a reserved word (word needed by
Visual Basic)
Visual Basic Data Types
ÞBoolean (True or False)
ÞInteger (Whole numbers)
ÞLong (Large whole numbers)
ÞSingle (Floating point numbers)
ÞDouble (Large floating point numbers)
ÞCurrency
ÞDate
ÞObject (yes, objects can be variables!)
ÞString (Used for many control properties)
ÞVariant (A chameleon, becomes what it needs to
be)
Variable Declaration
·There are three ways for a variable to be typed
(declared):
1.Default (Variant type)
2.Implicit (old technology)
3.Explicit
·There are many advantages to explicitly typing variables.Primarily, we insure all computations are
properly done, mistyped variable names are easily spotted, and Visual Basic
will take care of insuring consistency in upper and lower case letters used in
variable names.Because of these
advantages, and because it is good programming practice, we will explicitly
type all variables.
·To explicitly
type a variable, you must first determine its scope.There are four levels
of scope:
ÞProcedure level
ÞProcedure level, static
ÞForm and module level
ÞGlobal level
·Within a procedure, variables are declared using
the Dim statement:
Dim MyInt As Integer
Dim
MyDouble As Double
Dim
MyString As String, YourString As String
Procedure level
variables declared in this manner do not retain their value once a procedure terminates.
·To make a procedure level variable retain its
value upon exiting the procedure, replace the Dim keyword with Static:
Static
MyInt As Integer
Static
MyDouble As Double
·Form (module) level variables retain their value
and are available to all procedures within that form (module).Form (module) level variables are declared in
the declarations part of the general object in the form's (module's)
code window.The Dim keyword is used:
Dim
MyInt As Integer
Dim
MyDate As Date
·Global level variables retain their value and
are available to all procedures within an application.Module level variables are declared in the declarations part of the general object of a module's code
window.(It is advisable to keep all
global variables in one module.)Use the
Global keyword:
Global
MyInt As Integer
Global
MyDate As Date
·What happens if you declare a variable with the
same name in two or more places?More
local variables shadow (are accessed
in preference to) less local variables.For example, if a variable MyInt is defined as Global in a module and
declared local in a routine MyRoutine, while in MyRoutine, the local value of
MyInt is accessed.Outside MyRoutine,
the global value of MyInt is accessed.
·Example of Variable Scope:
Module1
Global X As Integer
Form1Form2
Dim Y As IntegerDim Z As Single
Sub Routine1()Sub Routine3()
Dim A As DoubleDim C As String
..
..
End
SubEnd
Sub
Sub Routine2()
Static B As Double
.
.
End
Sub
Procedure Routine1 has access to X, Y,
and A (loses value upon termination)
Procedure Routine2 has access to X, Y,
and B (retains value)
Procedure Routine3 has access to X, Z,
and C (loses value)
Example 1
Mailing List
Application
In this example, we will build a Visual Basic application
that could function as a database interface.The application allows the entry of information (names and addresses) to
build a mailing list.An added feature
is a timer that keeps track of the time spent entering addresses.After each entry, rather than write the
information to a database (as we would normally do), the input information is
simply displayed in a Visual Basic message box.We present this example to illustrate the steps in building an
application.If you feel comfortable
building this application and understanding the corresponding code, you
probably possess the Visual Basic skills needed to proceed with this course.
1.Start
a new project.Place two frames on the
form (one for entry of address information and one for the timing function).In the first frame, place five labels, five
text boxes, and two command buttons.In
the second frame, place a label control, a timer control and three command
buttons.Remember you need to ‘draw’
controls into frames.Resize and
position controls so your form resembles this:
2.Set
properties for the form and controls (these are just suggestions – make any
changes you might like):
Form1:
NamefrmMailingList
BorderStyle1-Fixed Single
CaptionMailing
List Application
Frame1:
NamefraMail
CaptionAddress
Information
EnabledFalse
Label1:
CaptionName
Label2:
CaptionAddress
Label3:
CaptionCity
Label4:
CaptionState
Label5:
CaptionZip
Text1:
NametxtInput
Index0
(a control array)
TabIndex1
Text[blank
it out]
Text2:
NametxtInput
Index1
TabIndex2
Text[blank
it out]
Text3:
NametxtInput
Index2
TabIndex3
Text[blank
it out]
Text4:
NametxtInput
Index3
TabIndex4
Text[blank
it out]
Text5:
NametxtInput
Index4
TabIndex5
Text[blank
it out]
Command1:
NamecmdAccept
Caption&Accept
TabIndex6
Command2:
NamecmdClear
Caption&Clear
Frame1:
NamefraTime
CaptionElapsed
Time
Label6:
NamelblElapsedTime
Alignment2-Center
BackcolorWhite
BorderStyle1-Fixed Single
Caption00:00:00
FontBoldTrue
FontSize14
Timer1:
NametimSeconds
EnabledFalse
Interval1000
Command3:
NamecmdStart
Caption&Start
Command4:
NamecmdPause
Caption&Pause
EnabledFalse
Command5:
NamecmdExit
CaptionE&xit
When done, the form
should appear something like this:
3.Put
these lines in the General Declarations
area of the code window:
Option
Explicit
Dim
ElapsedTime As Variant
Dim
LastNow As Variant
4.Put
these lines in the Form_Load event
procedure:
Private
Sub Form_Load()
ElapsedTime
= 0
End
Sub
5.Put
this code in the txtInput_KeyPress
event procedure:
Private
Sub txtInput_KeyPress(Index As Integer, KeyAscii As Integer)
'Check
for return key
If
KeyAscii = vbKeyReturn Then
If Index = 4 Then
cmdAccept.SetFocus
Else
txtInput(Index + 1).SetFocus
End If
End
If
'In
Zip text box, make sure only numbers or backspace pressed
If
Index = 4 Then
If (KeyAscii >= Asc("0") And
KeyAscii <= Asc("9")) Or KeyAscii = vbKeyBack Then
Exit Sub
Else
KeyAscii = 0
End If
End
If
End
Sub
Note the line
beginning with ‘If (KeyAscii >=
Asc(“0”) And ...’ is so long that the word processor wraps the line
around at the margin.Type this as one
long line, not two separate lines or review the use of the Visual Basic line
continuation character (_).Be aware
this happens quite often in these notes when actual code is being presented.
6.Put
this code in the cmdAccept_Click
event procedure:
Private
Sub cmdAccept_Click()
Dim
S As String, I As Integer
'Accept
button clicked - form label and output in message box
'Make
sure each text box has entry
For
I = 0 To 4
If txtInput(I).Text = "" Then
MsgBox "Each box must have an
entry!", vbInformation + vbOKOnly, "Error"
Exit Sub
End If
Next
I
S
= txtInput(0).Text + vbCrLf + txtInput(1).Text + vbCrLf
S
= S + txtInput(2).Text + ", " + txtInput(3).Text + " " +
txtInput(4).Text
MsgBox
S, vbOKOnly, "Mailing Label"
Call
cmdClear_Click
End
Sub
7.Put
this code in the cmdClear_Click
event procedure:
Private
Sub cmdClear_Click()
Dim
I As Integer
'Clear
all text boxes
For
I = 0 To 4
txtInput(I).Text = ""
Next
I
txtInput(0).SetFocus
End
Sub
8.Put
this code in the cmdStart_Click
event procedure:
Private
Sub cmdStart_Click()
'Start
button clicked
'Disable
start and exit buttons
'Enabled
pause button
cmdStart.Enabled
= False
cmdExit.Enabled
= False
cmdPause.Enabled
= True
'Establish
start time and start timer control
LastNow
= Now
timSeconds.Enabled
= True
'Enable
mailing list frame
fraMail.Enabled
= True
txtInput(0).SetFocus
End
Sub
9.Put
this code in the cmdPause_Click
event procedure:
Private
Sub cmdPause_Click()
'Pause
button clicked
'Disable
pause button
'Enabled
start and exit buttons
cmdPause.Enabled
= False
cmdStart.Enabled
= True
cmdExit.Enabled
= True
'Stop
timer
timSeconds.Enabled
= False
'Disable
editing frame
fraMail.Enabled
= False
End
Sub
10.Put this
code in the cmdExit_Click event
procedure:
Private
Sub cmdExit_Click()
'Exit
button clicked
End
End
Sub
11.Put this
code in the timSeconds_Timer event
procedure:
12.Save the
application.Run the application.Make sure it functions as designed.Note that you cannot enter mailing list
information unless the timer is running.
Summary
·In this chapter, we introduced databases in
general terms and how Visual Basic can be used to develop a front-end
application to interact with the database.And, we reviewed the steps involved in building a Visual Basic
application.
·In the second chapter, we take a closer look at
databases.We look at their structure,
their terminology, and how they are constructed.You may be asking - when do we get to do some
programming?The answer - in a couple
more chapters.We want to make sure we
have a firm foundation in place before diving into actual coding.