V.B Notes

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 30

Hopefully you will learn this during lesson 1.

:
 About the Development Environment
 The project explorer windows
 Running a form
 Making your first *.exe
 Understanding the tool bar
 Introducing Source code
 Command Button properties
 Explanations of global modules
 Opening an existing Visual Basic project.
 Explore the forms and the source code behind the an existing project in design mode
 Recognise and understand the function of the main component of the Visual Basic
environment eg. toolbar's , toolboxes , project window, properties window and most
importantly the source code window.
 Saving your project to a file.
 Button Properties.

The Development Environment

Learning the ins and outs of the Development Environment before you learn visual basic
is somewhat like learning for a test you must know where all the functions belong and
what their purpose is. First we will start with labelling the development environment.
The above diagram shows the development environment with all the important points
labelled. Many of Visual basic functions work similar to Microsoft word eg the Tool Bar
and the tool box is similar to other products on the market which work off a single click
then drag the width of the object required. The Tool Box contains the control you placed
on the form window. All of the controls that appear on the Tool Box controls on the
above picture never runs out of controls as soon as you place one on the form another
awaits you on the Tool Box ready to be placed as needed.

The project explorer window

The Project explorer window gives you a tree-structured view of all the files inserted into
the application. You can expand these and collapse branches of the views to get more or
less detail (Project explorer). The project explorer window displays forms, modules or
other separators which are supported by the visual basic like class'es and Advanced
Modules. If you want to select a form on its own simply double click on the project
explorer window for a more detailed look. And it will display it where the Default form
is located.

Properties Window
Some programmers prefer
the Categorisized view of the properties window. By defaulting, the properties window
displays its properties alphabetically (with the exception of the name value) when you
click on the categorized button the window changes to left picture.

The Default Layout

When we start Visual Basic, we are provided with a VB project.A VB project is a


collection of the following modules and files.

 The global module( that contains declaration and procedures)


 The form module(that contains the graphic elements of the VB application along
with the instruction )
 The general module (that generally contains general-purpose instructions not
pertaining to anything graphic on-screen)
 The class module(that contains the defining characteristics of a class, including
its properties and methods)
 The resource files(that allows you to collect all of the texts and bitmaps for an
application in one place)

On start up, Visual Basic will displays the following windows :


 The Blank Form window
 The Project window
 The Properties window

It also includes a Toolbox that consists of all the controls essential for developing a VB
Application. Controls are tools such as boxes, buttons, labels and other objects draw on a
form to get input or display output. They also add visual appeal.

Understanding the tool box.


You may have noticed that when
you click on different controls the
Properties Window changes
slightly this is due to different
controls having different functions.
Therefore more options are needed
for example if you had a picture
then you want to show an image.
But if you wanted to open a internet
connection you would have to fill in
the remote host and other such
settings. When you use the
command ( ) you will find that a
new set of properties come up the
following will provide a description
and a property.

Opening an existing Visual Basic project.

Microsoft have included some freebies with visual basic to show its capabilities and
functions. Dismantling or modifying these sample projects is a good way to understand
what is happening at runtime. These files can be located at your default directory
/SAMPLES/

To Open these projects choose 'Open Project' from the 'File' menu. Then Double click on
the samples folder to open the directory then Double click on any project to load it.

Opening a new visual basic file & Inserting Source code.

From looking at the examples it time to make your own application. Choose 'New
Project' from the 'File' menu. Use the blank form1 to design a simple interface for an
estate agents database, have some textboxes for names and other details. Insert some
controls and make it look professional. Textboxes can be used to store there name and
other details, make sure you put a picture box in for a picture of the house.

Now insert the following source code for your application.

Private Sub Form_Load()


Picture1.Picture = LoadPicture("C:\Program Files\VB\Graphics\Icons\Misc\
MISC42.ICO")
End Sub

Running and viewing the project in detail.


Once an application is loaded it can be run by click on the icon from the toolbar, to
pause press and to terminate use .

Once a project is loaded, the name of the form(s) that it contains is displayed in the
project window. To view a form in design mode, select the form required by clicking
with the mouse to highlight its name, then clicking on the view form button.

In this example the project has been loaded and the maillist.frm has been selected for
viewing. This Ms Mail example project useds 6 forms and 1 modules.

In Design mode, when the form is viewed, the code attached to any screen object may be
inspected by double clicking on that object. The screen shots below show the interface of
the Ms Mail example (.../samples/Comtool/VBMail/MaiLLST.FRM) to view the code for
this form select from the project window item.

Private Sub SetupOptionForm(BasePic As Control)

BasePic.Top = 0
BasePic.Left = 0
BasePic.Visible = True
BasePic.enabled = True
OKBt.Top = BasePic.Height + 120
Me.width = BasePic.Width + 120
Me.Heigh = OkBt.Top + OkBt.Height + 495

End Sub

Making your first *.exe!?

To make an excutable from a project choose 'MakeMake project.exe from the 'File' menu.
Then click once on the Make project.exe choose a default location to store your
executable, you can also change some advanced options by clicking on the Options.. tag

before saving your exe


The above image will be displayed in the comment's value type some comments
company name name etc... The Title tag represents the caption you will see if you press
Control + Alt + Del. And the icon is the icon that will be available on the execute icon.
As you can see it is quite simple to understand. All the comments, data and name appear
when you click on the compiled (execute) exe and click properties.

Saving your visual basic project.

Save your work to disk. Use the Windows Explorer or any desktop windows to check that
all files have been saved. There should be one Visual Basic Project (.VBP) file and
separate Form (.FRM) and Module (.BAS) files for each form and module used in the
current project.

Button Properties for reference

, Command Button & labels properties

Property Description
Name The name of the object so you can call it at runtime
This specifies the command button's background color. Click the
BackColor's palette down arrow to see a list of common Windows control
BackColor
colours, you must change this to the style property from 0 - standard to 1 -
graphical
Determines whether the command button gets a Click event if the user
Cancel
presses escape
Caption Holds the text that appears on the command button.
Determins if the command button responds to an enter keypress even if
Default
another control has the focus
Enable Determines whether the command button is active. Often, you'll change the
enable property at runtime with code to prevent the user pressing the button
Produces a Font dialog box in which you can set the caption's font name ,
Font
style and size.
Height Positions the height of the object - can be used for down
Left Positions the left control - can be used for right
If selected to an icon can change the picture of the mouse pointer over that
MousePointer
object
Hold's the name of an icon graphic image so that it appears as a picture
Picture instead of a Button for this option to work the graphical tag must be set to
1
This determins if the Command Button appears as a standard windows
Style
dialog box or a graphical image
Tab index Specifies the order of the command button in tab order
Whether the object can be tabbed to ( this can be used in labels which have
Tab Stop
no other function )
If the mouse is held over the object a brief description can be displayed (for
Tool Tip Text example hold your mouse over one of the above pictures to see this
happening
If you want the user to see the button/label select true other wise just press
Visible
false
Width Show the width of the object

Lesson 1 Quiz

Main menu

Lesson two
Hopefully you will learn this during lesson 2. :
 Know what an Event is.
 Determine what Events a control can have
 Write code for one or more Events.
 Using optionbuttons to produce an event
 Using checkboxes to produce an event
 Grouping controls using a frame
 Make a simple alteration to the interface, such as changing background colour, at run
time.
 Creating a listbox.
 Remove and Add listboxs functions.
 Creating Combo Boxes
 What the different types of combo boxes are.

Understanding Events

Hopefully you will learn this during lesson 2. :


 Know what an Event is.
 Determine what Events a control can have
 Write code for one or more Events.
 Using optionbuttons to produce an event
 Using checkboxes to produce an event
 Grouping controls using a frame
 Make a simple alteration to the interface, such as changing background colour, at run
time.
 Creating a listbox.
 Remove and Add listboxs functions.
 Creating Combo Boxes
 What the different types of combo boxes are.

What an event is

The ‘look’ of a Visual Basic application is determined by what controls are used, but the
‘feel’ is determined by the events. An event is something which can happen to a control.
For example, a user can click on a button, change a text box, or resize a form. As
explained in Creating a Visual Basic Application, writing a program is made up of three
events: 1) select suitable controls, 2) set the properties, and 3) write the code. It is at the
code writing stage when it becomes important to choose appropriate events for each
control. To do this double click on the control the event will be used for, or click on the
icon in the project window (usually top right of screen). A code window should now
be displayed similar to the one shown below.
The left hand dropdown box provides a list of all controls used by the current form, the
form itself, and a special section called General Declarations. The corresponding
dropdown box on the right displays a list of all events applicable to the current control (as
specified by the left hand dropdown box). Events displayed in bold signify that code has
already been written for them, unbold events are unused. To demonstrate that different
events can play a significant role in determining the feel of an application, a small
example program will be written to add two numbers together and display the answer.
The first solution to this problem will use the click event of a command button, while the
second will the change event of two text boxes.

Click Event

Before any events can be coded it is necessary to design the interface from suitable
controls. As shown in the screen shot below use: 2 text boxes to enter the numbers, a
label for the ‘+’ sign, a command button for the ‘=’ sign, and another label for the
answer.

Making the click event is very simple just select


the button with the mouse and double click visual basic will generate

You can see on the top right there is a 'click'


dropdown list this is known as a event handler.

Writing your own even

In the first example the user has to enter two numbers and then click on the equals button
to produce an answer. However, the program can be changed so that the answer will be
calculated every time either of the two numbers are changed without requiring an equals
button.

To do this first remove the equals command button and replace it with a label with the
caption set to ‘=’. Now, bring up a code window and copy to the Windows clipboard the
line lblAnswer = Str$(Val(txtNumber1.Text) + Val(txtNumber2.Text)). Using
the left hand dropdown box select the first text box and then select the Change event from
the right dropdown box. Then paste the code from the clipboard into the empty
subroutine. Select the second text box and do the same. The same line is required twice
because the two click events belong to two separate controls. The final code should look
like:

Private Sub txtNumber1_Change()


label2.Caption = Str$(Val(text1.Text) + Val(text.Text))
End Sub

Private Sub txtNumber2_Change()


label2.Caption = Str$(Val(text1.Text) + Val(text2.Text))
End Sub

Run the program again, enter the two numbers and observe what happens. Each time a
digit changes the answer is recalculated.

Note: There may be times when recalculating more advanced problems takes too long on
each change and so requiring the user to enter all the data first and then click on an
answer button might more appropriate.

Using the event GotFocus event

So far only one event has been used per control, however this does not have to be the
case! Add a StatusBar control to the bottom of the form, bring up the code window using
, select the first text box (txtNumber1) from the left hand dropdown box, and then
select the GotFocus event from the right hand dropdown box. Now some basic
instructions can be written in the status bar so that when the cursor is in the text box (the
text box has focus) the status bar reads “Enter the first number”. After completing this
change to the second text box and using the same GotFocus event change the statusbar
text to “Enter a second number”. The code to set the status bar can be seen below.

CheckBoxes

Option bars are used quite often in the windows environment as they can only have two
outputs 0 and 1 these get used to process the form. In this example it will be used to
change the some text from normal to bold or to italic.

Private Sub chkBold_Click()


If chkBold.Value = 1 Then ' If checked.
txtDisplay.FontBold = True
Else ' If not checked.
txtDisplay.FontBold = False
End If
End Sub

Private Sub chkItalic_Click()


If chkItalic.Value = 1 Then ' If checked.
txtDisplay.FontItalic = True
Else ' If not checked.
txtDisplay.FontItalic = False
End If
End Sub

This example can be found at "smaples/PGuide/controls/Controls.vbp" or downloaded


free from the download page.
The checkboxes can be turned on at runtime by simply typing

name.value = 1 ' 1 On , 0 off

Note: If you create the frame first and then add the option buttons by single clicking on
the toolbox and dragging the cross hair cursor on the frame to create the controls, they
will be attached to the frame and will move with it if you decide to re-position the frame.
Notice, however, that if you create the frame first and double click the screen controls,
then drag them from the centre of the form on to the frame, they will not be attached to it
and will be left behind when you try to move the frame. Try this out.

Notice that when you run your application the same icon is loaded first (probably the
clipboard, if you created that option button first). You can alter the option that has the
focus first, by selecting one of the other option buttons and setting its property tabindex
to 1.

Option Buttons

Changing the background colour

Changing the background colour gets used mostly by freeware, or the type of programs
you generate for use with banners or adverts, anyway it might come in useful sometime.
This example shows an ordinary picture of a smiley face then I put in some nice
background colours to make it stand out more.
Private Sub Form_Load()
BackColor = QBColor(Rnd * 15)
ForeColor = QBColor(Rnd * 10)
Picture1.BackColor = QBColor(Rnd * 15)
Picture1.ForeColor = QBColor(Rnd * 10)
End Sub

List boxes

Note :

List boxes and combo boxes are used to supply a list of options to the user. The toolbox
icons representing these two controls are for list box and for combo box.

A list box is used when the user is to be presented with a fixed set of selections (i.e. a
choice must be made only from the items displayed, there is no possibility of the user
typing in an alternative).

Examples might be offering a list of the days in a week, the available modules in an
elective catalogue, the holiday destinations available from a particular airport or the types
of treatment offered by a beauty salon.

To create a list box, double click on the toolbox icon . Drag the resulting box into
place on the form and size it according to the data it will hold. The left hand picture
below shows a list box that has been created and sized on Form1. In the middle is the
code that is required to load a selection of cars into the list. The data has been included in
the procedure Sub Form_Load so that it appears when Form1 is loaded. Finally, the
picture on the right shows what appears on the form when the application is run. Notice
that vertical scroll bars are added automatically if the list box is not deep enough to
display all the choices.
If you however add the following source code to this project

Add to a Lisbox

Private Sub Form_Load()


List1.AddItem "Monday"
List1.AddItem "Tuesday"
List1.AddItem "Wedsday"
List1.AddItem "Thursday"
List1.AddItem "Friday"
List1.AddItem "Saturday"
List1.AddItem "Sunday"
End Sub

The source code should look somthing like this :

Removing & Advanced Options


Note: They appear in the order they were typed if you changed the properties window by
changing sort order = true then they will go into alpaetical order. List items can be added
and deleted all the list is counted as the order they are in so for exapmple if you wanted to
delete "Tuesday" you would type

list1.RemoveItem 1

And to add to the list in a paticular order just add

list1.additem "My Day", 5

This will be added after saturday.

And finally to clear the lisbox type

List1.clear This will completly clear the contence of the listbox.

Note: The property ListCount stores the number of items in a list, so list1.ListCount can
be used to determine the number of items in list box list1.

The property ListIndex gives the index of the currently selected list item. So the
statement list1.RemoveItem List1.ListIndex removes the currently highlighted list item.

Adding an item can be accomplished very neatly using an input dialog box. Try this:

list1.AddItem InputBox("Enter a day", "Add a Day")

This will open a message box and prompt you for a new day to enter this will then be
added to the list index at the bottem unless you specify were it should go.

Combo Boxes

Combo boxes are of three types (0,1 and 2), setting their properties/styles determines the
type. Combo boxes (style 0 and 2 ) are a good choice if space is limited, becaue the full
list is displayed as a drop down list, it does not occupy screen space until the down arrow
is clicked.

Picture of combo box style 0

The user can either enter text in the edit field or select from the list of items by clicking
on the (detached) down arrow to the right. The drop-down Combo box, list is viewed by
clicking on the down arrow. This type of combo box does not have a down arrow because
the list is displayed at all times. If there are more items than can be shown in the size of
box you have drawn, vertical scroll bars are automatically added. As with previous type,
users can enter text in the edit field.
Drop-down List box (Style=2)

It is slightly confusing to find this control under combo box. This control behaves like a
regular list box except that the choices are not revealed until the down arrow is clicked.
The user can select only from the choices given, there is no text entry facility.

Note: Combo boxes of style 0 and 2 cannot respond to double click events.

Main menu

LesHopefully you will learn this during lesson 3. :


 Displaying Message Boxes
 Opening Files
 Retreving Information from files
 Saving Information to files
 Printing text to the printer
 Control Arrays

Msgboxes

Message boxes are used when you want to ask the user a question or display an error
message(s) and advise the user. There are six types of message boxes here are their
functions and what they do. Here is the listing of all the possible msgbox events

The Buttons displayed in a message here

Button Layout Value Short Description


vbOKonly 0 Displays the OK button.
vbOKCancel 1 Displays the ok and cancel button.
vbAbortRetryIgnore 2 Displays the Abort , Retry , Ignore
vbYesNoCancel 3 Displays Yes , No and Cancel button
vbYesNo 4 Displays the Yes / No button
vbRetryCancel 5 Displays the retry and Cancel buttons.

The Icons dispayed in the message box are here

Icon on message Value Short Description


vbCritical 16 Displays critical message icon
vbQuestion 32 Displays question icon
vbExclamation 48 Displays exclamation icon
vbInformation 64 Displays information icon

The Default button displayed in a message form

Default Button Value Short Description


vbDefaultButton1 0 Button 1 is default
vbDefaultButton2 256 Button 2 is default
vbDefaultButton3 512 Button 3 is default

Msgbox Return Value

Return Value Value Short Description


vbOk 1 The User Clicked OK
vbCancel 2 The User Clicked Cancel
vbAbort 3 The User Clicked Abort
vbRetry 4 The User Clicked Retry
vbIgnore 5 The User Clicked Ignore
VbYes 6 The User Clicked Yes
VbNo 7 The User Clicked No

The syntax for use of the message box in Mgsgbox "TEXT", VALUE, "TITLE"
If you want to use two or more tables just add the values together. Therefore to print a
message box to say "The Device was not Found!" OK & Explanation :

Source code 1

Private Sub Form_Load()

MsgBox "The Device was not Found!", 48, "Header"

End Sub

Source code 2

Private Sub Form_Load()

MsgBox "The Device was not found!", vbExclamation, "Header"


End Sub

You should get the picture shown below whatever source code you used.

This is a basic msgbox which in this case has not been processed in any way. The
following Source code displays a msgbox that ask you for specific text. For example lets
make a password program out of this message box.

Private Sub Form_Load()

lngBefore = Timer
Do
strAns = InputBox("What is the password Password is Example", "Password Required")
Loop Until Val(strAns) = Example
lngAfter = Timer
msgbox "Correct Password", vbInformation

End Sub

Once you copy and paste the source code you should get prompted for a password in a
different type of msgbox as it includes text. From looking at this example you should be
able to see how the loop function works to generate and then check the value. All of the
Return Values work in the same way to return an object input.

Opening & Retriving information from files

When applications are loaded they normal get some setting out of the registry or file this
section will show you how to retrieve 1 string out of a file.

Private Sub Form_Load()

Dim F As Integer, password As String


F = FreeFile
Open App.Path & "\password.txt" For Input As F
Input #F, password
Close #F

End Sub
As you can see from this source code the password is previously declared as a string.
After this is done be sure to close the file otherwise next time you want to store or read
the file the computer will think it is being used by another application and windows will
not let you do anything with it. So as you can see it is Very Important to close the file

Storing Information to a file

FTP programs often store information to a file such as a username and password or host
information in the same way. This following example will put some information into the
file.

Private Sub Form_Load()

Dim F As Integer, pass As String


F = FreeFile
save = txtNew
Open App.Path & "\password.txt" For Output As F
Write #F, Text1.text
Close #F

End Sub

Although this is a bit obvious I think I should include it just incase I think differently to
other people.

Printing text to the printer.

This is rather easy to do and it gets used in notepad etc...

Private Sub Form_Load()

Printer.Print " The printer will print this text "


Printer.Print ""
Printer.Print " It will leave a line here"
Printer.Print " It should add the contence of text1.text here : " & Text1.Text & " As you
can see it works"
Printer.Print ""
Printer.EndDoc 'This will tell the printer it has finished.

End Sub

Everything that apears in position (A) will get printed by the default printer printer.print "
A ". The printer enddoc is used to tell the printer the job is finished if this is not added the
printer can not estimate how near it will be until it has finish and when it has finished it
will think it has'nt so be sure to include this to prevent confusion.
Control Arrays

A control array is a list of controls with the same name. Therefore, instead of using five
command buttons with separate five names, you can place a command button control
array on the form, and that control array holds five command buttons. The control array
can have a single name, and you will distinguish the control from each other with a
subscript. One of the best reasons to use control array from that first control, all the
elements in the control array take on the same property values, You then can change
those properties that need to be changed without having to set every property for each
control individually. Control arrays have a lot in common with data arrays. A control
array has one array, and you distinguish all the array's controls from each other with the
zero-based subscript. ( The index property holds the controls subscript number ). All of
the control elements must be the same data type. As soon as you place a control on a
form that has the same name as an existing control, Visual Basic makes sure you that you
want to begin a control array by issuing the warning message to show that the control is
already in use. This is used as a built in safety so that you do not over right an existing
control by putting it some where else on the same form. If you answer the warning box
with a no button, Visual Basic uses a default control name for the placed control.

Picture Not available at the moment!

All event procedures that use control from a control array require a special argument
value passed to them that the determines which control is being worked on. For example
if your application contains a single control command button named cmdtotal the click ()
event begins and ends as follows

Private sub cmdtotal_click()

End Sub

If however you create a control array named the same name as before ( cmdtotal ) it will
end up like this

Private sub cmdtotal_click (index as integer)

End sub

The procedure uses the index argument as the control index number ( the subscript ) that
the user clicked, Therefore if you want to change the clicked command buttons caption
property inside the cmdtotal_click () the procedures you would need are as follows
Cmdtoal(index).caption = "A caption name" The index value holds the command button's
index the user click to generate the event procedures so you will always respond to the
proper control clicked if you use Index after the control array name.
Join the mailing list to recive updates and source code Click Here

Hopefully you will learn this during lesson 4. :


 Brief introduction to the usages of Access data
bases
 Database Object
 RecordSet Object
 Accessing records
 Searching the RecordSet
 Updating the Database
 Deleting and Adding records
May thanks to Andreas Swensson for creating this
page about databases.

Brief introduction to the usages of Access data


bases
What I think is the most compelling thing about
Visual Basic is it's easy way of accessing and
modifying databases. This is what I think you should
learn next; you will find many applications for this
knowledge. I almost never make a program without
using a database for data storage.
There are many ways to work with databases in
Visual Basic, and I would think you have at least
glanced at the Data control. I will not even mention
the Data control further in this text, since it is so easy
to use and too limited to be interesting for a
professional developer. (Ok, there are some
exceptions to this.)
What I will teach you to use in this text is DAO (Data
Access Objects). You will get familiar with opening a
database and retrieving/adding/deleting/updating
records from tables. I will only use an Access
Database (*.mdb) in my examples, since this is the
most used DBMS (DataBase Management System)
for smaller applications made in Visual Basic. We
will at the end of this lesson have made a simple, yet
functional, phone book application.
This text requires some knowledge of the Visual
Basic programming language and you should be
familiar with the Visual Basic IDE (Integrated
Development Environment).
Database Object
The first thing you must do in your application is to
open a database where your tables are stored. You
need to declare a variable to hold your database in
order to do this. This is done with:
Dim dbMyDB As Database
This gives you a variable/object that can hold a
reference to your database. To open a simple Access
database named "MyDatabase.mdb", do this:
Set dbMyDB = OpenDatabase("MyDatabase.mdb")
You should really specify the complete path to the db,
but if your current directory is the directory where
the database is situated, this will work.
So, now you have opened a database. This won't give
you any data. What you need to do is open a table in
the database. You're not limited to open a single
table; sometimes you have two or more tables that are
related to each other and linked together with foreign
keys, and there are ways to handle this to. But in this
"Visual Basic - Database Primer" I will only show
you how to open a single table.
RecordSet Object
Visual Basic uses an object called RecordSet to hold
your table. To declare such an object and to open the
table, do this:
Dim rsMyRS As RecordSet
Set rsMyRS = dbMyDB.OpenRecordSet("MyTable",
dbOpenDynaset)
What happened there? Well, I declared a RecordSet
object and used the Database object's OpenRecordSet
method to open a table of type Dynaset. You can
open a RecordSet in several modes. VB's online help
file explains the different modes and what they ar e
for. The Dynaset mode is the mode I use mostly. It
gives you a RecordSet that you can add, delete and
modify records in.
Accessing records
Now that we have opened a table (referred to as
RecordSet from now on) we want to access the
records in it. The RecordSet object allows us to move
in it by using the methods MoveFirst, MoveNext,
MovePrevious, MoveLast (among others). I will use
some of these to fill up a list box with the records of
our RecordSet.
To get this example to work, make a database (with
Access) called "MyDatabase.mdb" with the table
"MyTable" in it. This table should have the fields
"ID" of type "Counter" that you set to be the primary
key, the field "Name" of type Text and a field "P
hone" of type Text. Add some records to it. Put a list
box on a form and call it "lstRecords".
Dim dbMyDB As Database
Dim rsMyRS As RecordSet

Private Sub Form_Load()

Set dbMyDB = OpenDatabase("MyDatabase.mdb")


Set rsMyRS = dbMyDB.OpenRecordSet("MyTable",
dbOpenDynaset)

If Not rsMyRS.EOF Then rsMyRS.MoveFirst


Do While Not rsMyRS.EOF
lstRecords.AddItem rsMyRS!Name
lstRecords.ItemData(lstRecords.NewIndex) =
rsMyRS!ID
rsMyRS.MoveNext
Loop

End Sub
This will make the list box fill up with your records
when the form loads. I have introduced some new
concepts with this example. We have all ready
covered the first part where we open the table. The
line that says If Not rsMyRS.EOF Then rsMyRS.M
oveFirst tells the program to move to the first record
in case there are any records at all. The EOF is a
Boolean property that is true if the current record is
the last. It is also true if there are no records in the
RecordSet.
Then we make the program add the "Name" field of
all records to the list box by adding the current
records field "Name" and moving to the next record.
You ask for a field of a RecordSet by putting a !
between the name of the RecordSet object and the na
me of the field. The while loop checks to see if there
are more records to add.
Searching the RecordSet
You might have wondered why I put the value of the
field "ID" in the list box's ItemData property. I did
this so that we would know the primary key for all
the records in order to search for a record.
Put a text box somewhere on the form and call it
"txtPhone". Then copy the following code to the
project.
Private Sub lstRecords_Click()

rsMyRS.FindFirst "ID=" &


Str(lstRecords.ItemData(lstRecords.ListIndex))
txtPhone.Text = rsMyRS!Phone

End Sub
This will display the phone number of the selected
person when clicking in the list box. It uses the
FindFirst method of the RecordSet object. This takes
a string parameter that is like what is after WHERE
in a SQL expression. You state the field that you
want to search in (here "ID"), then the evaluation
criteria (here "=") and last the value to search for
(here the ItemData of the selected item in the list
box).
So what we did was to search for the record with the
"ID" field value that was the same as the ItemData
property of the selected item in the list box. Then we
show the value of the "Phone" field in the text box.
Updating the Database
You will probably want to be able to update some
value of some field when doing database
programming. This is done with Edit and Update. We
will try to change the value of the "Phone" field by
editing the text in the text box and clicking a button.
Put a command button on the form and name it
"cmdUpdate". Then copy the following code to the
project.
Private Sub cmdUpdate_Click()

rsMyRS.Edit
rsMyRS!Phone = txtPhone.Text
rsMyRS.Update

End Sub
Could it be that simple? Yes. This changes the
phonenumber of our selected person. Or to put it
technically: This changes the value of the "Phone"
field of our current record. Imagine the current record
being a set of boxes, with a field in each box. T he
Edit method takes the lid off all of the boxes and
Update puts them back on. When we write rsMyRS!
Phone = txtPhone.Text we replace the content of the
"Phone" box with the content in the text box.
Deleting and Adding records
Deleting
Deleting records couldn't be simpler. To delete the
current record you just invoke the Delete method of
the RecordSet object. We will put this feature in our
little project. Make one more command button named
"cmdDelete" and the following code will do the work
of deleting our currently selected person.
Private Sub cmdDelete_Click()

rsMyRS.Delete
lstRecords.RemoveItem lstRecords.ListIndex

End Sub
I won't even bother to explain that in greater detail =).
The first statement deletes the record and the second
removes the list box entry.
Adding
Adding records is much like updateing, except you
use AddNew instead of Edit. Let's add one more
command button to our application. Let's call
it...errh...let me see...yea! "cmdNew" =). Here is the
code that adds a new record.
Private Sub cmdNew_Click()

rsMyRS.AddNew
rsMyRS!Name = "A New Person"
lstRecords.AddItem rsMyRS!Name
lstRecords.ItemData(lstRecords.NewIndex) =
rsMyRS!ID
rsMyRS!Phone = "Person's Phone Number"
rsMyRS.Update

End Sub
I will use the box analogy to explain this. The
AddNew method takes a set of new boxes and adds
them to our RecordSet. We then put some new values
in them and close the lids with Update. As you can
see we never stated any valu e for "ID", but as you
remember, this is a field of type "Counter" wich
automatically gets a unique value. The code also adds
this new record to the list box so that we will be able
to change the phone number of this person. I leave it
up to you to add th e feature of changing the name.
May thanks to Andreas Swensson for creating this
page about databases.

You might also like