visual basic - iceskochi.org

advertisement
NetScape COMPUTER ACADEMY
1
Chapter 1
Introduction
INTRODUCTION
I n t h e B e gi n n i n g V I S U A L S T U D I O w a s a l o o s e c o l l ec t i o n o f p r o g r a m m i n g t o o l s a n d u t i l i t i es. V IS U AL
S T UD IO 6 . 0 i s n o w s t a r t i n g t o s h o w t i gh t er i n t e gr a t i o n b et w e en t h e s e t o o l s a n d u t i l i t i es. V IS U AL
S T UD IO i s a c o l l e c t i o n o f M i c r o s o f t V i s u a l D e v el o pm en t a p pl i c a t i o n s a n d r el a t e d t o o l s. T h i s
c o l l e c t i o n i s i n t e n d e d t o p r o v i de a s i n g l e f r a m e w o r k f o r a l l t h e d e v el o p m en t n e e d s o f a n en t er p r i se
d e v e l o p m e n t t e a m . T h e t o o l s a r e d e s i gn ed t o c o m p l e m en t e a c h o t h er w h i l e p r o v i di n g a c o m pl et e
d e s i gn , d e v e l o pm e n t , a n d d e pl o y m e n t e n v i r o n m e n t .
V IS U AL S T UD IO c o n t a i n s f o l l o w i n g t o o l s





VISUAL
VISUAL
VISUAL
VISUAL
VISUAL
BASIC
C++
J++
INTERDEV
FoxPro
T h e t o o l s i n V IS UA L S T UD I O a r e d e si gn e d t o a d dr e ss t h e v a r y i n g de v el o pm en t n e e ds o f d i f f er e n t
t y p e s o f d e v e l o pe r s , i n c l u d i n g W e b de v el o p er s, A p pl i c a t i o n de v el o p er s, E n t er pr i se d e v el o p er s, a n d
c o n t e n t de v e l o p e r s .
A W e b D e v e l o p e r i s o n e w h o i s d e v el o pi n g a n d d e pl o y i n g a p pl i c a t i o n s o v er t h e W e b. S u c h a
p e r s o n m i gh t u s e M i c r o s o f t I n t e r n e t I n f o r m a t i o n S e r ve r ( I I S ) a n d M i c r o s o f t S Q L S e r ve r a l o n g
w i t h A c t i v e S e r v e r P a g e s ( A S P ) o n t h e b a c k en d, a n d W e b p a g e s c o n t a i n i n g V BS c r i p t , Ac ti ve X
Con tr ol s , a n d J a v a Ap pl e ts o n t h e f r o n t en d.
A n A p p l i c a t i o n D e v e l o p e r i s o n e w h o i s d e v e l o pi n g a n d d e pl o y i n g s t a n d a l o n e W i n d o w s
a p p l i c a t i o n s a n d t o o l s . T h e y m i g h t u s e a c o m bi n a t i o n o f V IS UA L B A S IC a n d V IS UA L C+ + t o
d e v e l o p s u c h pr o gr a m s , u s i n g M i c r o s o f t A c c e s s o r a n y o t h er R D B M S a s t h e i r d a t a b a s e.
A n E n t e r p r i s e D e v e l o p e r i s o n e w h o i s de v el o p i n g st r a t eg i c bu s i n e ss a p p l i c a t i o n s t h a t h el p
m a n a g e a c o m pa n y ’ s e n t e r p r i s e r e s o u r c e s. E n t e r p r i s e d e v e l o pe r s a r e i n t e r e s t e d i n u s i n g t e a m s o f
d e v e l o p e r s t o bu i l d bu s i n e s s c o m po n en t s t h a t a r e sc a l a bl e a n d c a n b e di st r i bu t e d a r o u n d t h e
enterprise.
V I S U A L B A S I C w a s i n t r o du c e d t o t h e pu b l i c i n 1 9 9 1 . I t h a s i m pr o v e d w i t h e v er y r e l ea s e. W i t h
e a c h r e l e a s e, t h e p r o du c t h a s go t t e n bo t h b et t e r a n d m o r e po pu l a r . B y 1 9 9 8 , V I S UA L B A S I C w a s
t h e pr i m a r y l a n gu a g e u s e d b y m o r e t h a n h a l f t h e d e v e l o p er s i n U n i t e d S t a t e s. T h i s bo o k i s
d e s i gn e d t o be a c o m p l e t e d de s k r e f er en c e t o t h e m a n y t ec h n i qu e s a n d t o o l s r el a t e d t o V I S U A L
BASIC.
V I S U A L B A S I C i s a n i d e a l pr o gr a m m i n g l a n gu a g e f o r d e v e l o pi n g pr o f e s si o n a l a p pl i c a t i o n s
f o r M i c r o s o f t W i n d o w s . I t m a k e s u s e o f G r a p h i c a l Us e r I n t e r f a c e ( G U I ) f o r c r e a t i n g po w er f u l
application.
W h e n pr o gr a m m i n g i n v i s u a l B a si c D e v el o p er m u st d ec i d e h o w t h e a p pl i c a t i o n i n t e r a c t s w i t h
t h e u s e r . T h e u s e r m a y do a n y e v e n t i n t h e a pp l i c a t i o n o n v a r i o u s c o n t r o l s.
W i n do w s i n t r o du c e d t h e c o n c e pt o f a m e s sa g e. E v er y a c t i o n y o u p er f o r m i n W i n d o w s
g e n e r a t e d o n e o r m o r e m e s s a g e . F o r i n s t a n c e, i f t h e u s er m o v e s t h e m o u s e a c r o s s t h e sc r e e n , a
s e r i e s o f m e s s a g e s a r e g e n e r a t e d f o r ea c h p o s i t i o n t h e m o u s e o c c u pi e s w h i l e i t i s be i n g m o v e d. I f
t h e u s e r m o v e s t h e m o u s e o v e r t h e w i n do w f o r a n a p pl i c a t i o n t h a t i s r u n n i n g, w i n do w s s en d t h e se
m e s s a g e s t o t h a t a p p l i c a t i o n . T h e a p pl i c a t i o n t h en h a s t o de t er m i n e i f t h e u s er i s do i n g so m et h i n g
w i t h i n i t s e l f , o r i f t h e u s e r i s j u s t “ p a s si n g t h r o u gh . ” E v e r y a p pl i c a t i o n h a s t o l o o k a s ev er y
m e s s a g e s e n t by W i n do w s a n d m a k e t h i s d et er m i n a t i o n . T h e c o d e r e q u i r e d t o m a k e t h i s w o r k i s
l e n g t h y a n d c o m p l e x , t o s a y t h e l e a s t . B e si d e s h a v i n g t o h a n d l e s i m pl e m e s sa g e s su c h a s a m o u s e
m o v e m e n t , a W i n do w s a p p l i c a t i o n a l so h a s t o h a n dl e c o m pl e x a c t i o n s, s u c h a s w h en t h e u s er
m o v e s a w i n do w f r o m o n e pl a c e t o a n o t h er . W i n do w s t e l l s y o u r pr o g r a m w h a t t h e u s er i s do i n g,
bu t i t do e s n ’ t do a n y o f t h e w o r k o f h a n dl i n g t h e u s e r ’ s a c t i o n f o r y o u . Y o u r a p pl i c a t i o n h a s t o
r e p a i n t y o u r w i n do w s i n a n e w po s i t i o n , f o r i n st a n c e. E v en a f t er y o u h a v e d ea l t w i t h a l l t h e
w i n do w s m e s s a g e s y o u m i gh t r e c e i v e , y o u ’ r e st i l l n o t d o n e. Y o u r pr o gr a m st i l l h a s t o h a v e c o d e t o
h a n dl e a l l o f y o u r a p pl i c a t i o n s f e a t u r e s.
V I S U A L B A S I C r e v o l u t i o n i z e d a l l t h i s t e di o u s c o d e. I n st e a d o f a p r o gr a m m e r ’ s h a v i n g t o w r i t e
l e n g t h y c o d e t o m a k e a w i n do w r e s po n d t o t h e m o u s e, V I S U A L B A S I C h a n dl e s a l l t h o s e a c t i o n s
a n d h i de s t h e m f r o m t h e pr o gr a m m e r . T o i n d i c a t e t o y o u r pr o g r a m t h a t t h e u s e r c l i c k ed t h e m o u s e,
V I S U A L B A S I C p r o v i de s a n e v e n t i n s t e a d o f a s er i e s o f m e s sa g e s. Y o u t h en w r i t e c o d e t o r e s p o n d
t o t h e e v e n t a n d n o t t h e m e s s a g e . W i t h t h e i n t r o du c t i o n o f e v en t , V I S UA L B A S I C pr o gr a m m er s
c o u l d c o n c e n t r a t e o n w r i t i n g a p pl i c a t i o n ’ s f e a t u r e s a n d n o t w o r r y a bo u t t h e l o w - l e v e l t h i n g s s u c h
a s w h y a b u t t o n c l i c k w o r k e d. T h e y c o u l d s i m pl y w r i t e t h e c o de t o r u n w h en a bu t t o n w a s c l i c k e d.
T h e c o de t h a t r u n s w h e n t h e u s e r c l i c k s a bu t t o n o r a n y o t h er ev en t i s k n o w n a s a n ev en t h a n d l er .
V I S U A L B A S I C a l s o p r o v i d e s a d e si gn en v i r o n m e n t i n w h i c h t h e p r o g r a m m er c o u l d dr a w a n
a p p l i c a t i o n s w i n do w i n s t e a d o f w r i t i n g c o d e t o c r e a t e t h em . T h i s a bi l i t y t o r a p i dl y dr a w t h e
i n t e r f a c e s o f a n a p pl i c a t i o n m a d e V I S U A L B A S I C i n t o a n ex c e l l en t t o o l f o r c r e a t i n g pr o t o t y pe s . A
pr o t o t y pe i s a p r e l i m i n a r y v e r s i o n o f a n a p pl i c a t i o n u s e d f o r di sc u s s i o n a m o n g d e si gn er s. F o r
c o n s u l t a n t s , a p r o t o t y p e i s a n e x c e l l en t w a y t o sh o w y o u r c l i en t w h a t t h e a p pl i c a t i o n m i gh t l o o k
like.
NetScape COMPUTER ACADEMY
2
C o d i n g i n V I S U A L B A S I C i s qu i t e t r a n si t i o n t o t r a d i t i o n a l . W o r k o f t h e u s er i s gu i d e d t h r o u g h a
l i n e a r p a t h o f e x e c u t i o n a n d i s l i m i t e d o p e r a t i o n s. I n a G U I e n v i r o n m en t , t h e n u m b er o f o p t i o n s
o p e n t o t h e u s e r i s m u c h gr e a t e r , a l l o w i n g m o r e f r e e do m t o t h e u s er a n d d e v el o p er . F ea t u r e s s u c h
a s u s e r f r i e n d l i n e s s , f a s t e r a p p l i c a t i o n de v el o p m en t , A c t i v eX t ec h n o l o g y a n d I n t e r n e t f ea t u r e s m a k e
VISUAL BASIC an interesting tool.
V I S U A L B A S I C w a s d e v e l o pe d f r o m BA S I C ( Be g i n n e r s A l l - P u r p o s e S y m b o l i c I n s t r u c t i o n
C o d e ) pr o g r a m m i n g l a n gu a g e .
V I S U A L B A S I C 6 . 0 r e q u i r e s a t l e a s t W i n do w s N T / W i n do w s 9 5 / 9 8 , 4 8 6 P r o c e s so r a n d a m i n i m u m o f
1 6 M B R A M . A c o m p l e t e i n s t a l l a t i o n o f V I S U A L B A S I C 6 . 0 ( E n t er pr i se E d i t i o n ) r e qu i r e s m o r e t h a n
2 5 0 M B h a r d di s k s p a c e .
NetScape COMPUTER ACADEMY
3
Chapter 2
Getting Started
Event Driven Programming
F o r m s a n d c o n t r o l s a r e t h e b a s i c e l e m e n t s i n t h e u s er i n t er f a c e o f a n y V I S U A L BA S I C a p pl i c a t i o n .
I n V I S U A L B A S I C t h e s e e l e m e n t s a r e c a l l e d a s o bj ec t s. E a c h o bj ec t h a s t h ei r o w n pr o p er t i es a n d
react to external events.
Starting Visual Basic
V I S U A L B A S I C i s a c o m po n e n t o f V i s u a l S t u d i o .
C l i c k  S t a r t  M i c r o s o f t V i s u a l S t u d i o 6 .0  M i c r o s o f t V i s u a l B a s i c 6 .0 o r D o u bl e c l i c k
o n t h e V b6 i c o n i f i t i s a v a i l a bl e.
A N e w P r o j e c t d i a l o g b o x w i l l a p p ea r w i t h f o l l o w i n g o pt i o n s.
N e w  T h i s t a b e n a b l e s u s t o c r ea t e a N ew pr o j ec t . I n t h i s w i n do w , y o u ’ l l s e e so m e o f t h e
pr o j e c t t y pe s t h a t V I S U A L B A S I C su ppo r t s. T h e y a r e












Standard Windows EXE Programs
ActiveX Exe files
ActiveX DLLs
ActiveX Controls
Programs written by VISUAL BASIC Application Wizard
Data Projects
IIS(the Microsoft Internet Information Server) applications
VISUAL BASIC add -ins
ActiveX document DLLs
ActiveX document EXE files
DHTML applications
VISUAL BASIC Enterprise Edition Controls
E x i s t i n g  T h i s t a b e n a bl e s u s t o s e l ec t a l r e a dy ex i s t i n g pr o j ec t
R e c e n t  T h i s t a b l i s t s t h e V i su a l B a si c pr o j ec t s t h a t a r e u s ed r ec en t l y .
W h e n e v e r a pr o j e c t i s o p e n e d o r a n ew p r o j ec t i s st a r t e d, V i s u a l Ba s i c 6 .0 I n t e g r a t e d
d e v e l o p m e n t E n v i r o n m e n t ( I D E ) a p p ea r s.
S e l e c t i n g s t a n d a r d E x e i n t h e pr o j ec t di a l o g bo x c r ea t es a n ew pr o j ec t .
n e w pr o j e c t n a m e d pr o j e c t 1 .
T h i s w i l l o p en a
NetScape COMPUTER ACADEMY
4
Creating a Pro ject in VISUAL BASIC
T h e r e a r e t h r e e di f f e r e n t e di t i o n s o f V I S U A L B A S I C :



T h e L e a r n i n g E d i t i o n : - T h e m o s t b a si c ed i t i o n . T h i s e di t i o n a l l o w s y o u t o w r i t e m a n y
di f f e r e n t t y p e s o f p r o g r a m s , bu t l a c k s a n u m b e r o f t o o l s t h a t t h e o t h er e di t i o n s h a v e
T h e P r o f e s s i o n a l E d i t i o n : - D e si gn e d f o r p r o f e s si o n a l s. T h i s e di t i o n c o n t a i n s a l l t h a t t h e
L e a r n i n g E di t i o n c o n t a i n s a n d m o r e, su c h a s t h e c a p a bi l i t y t o w r i t e A c t i v eX c o n t r o l s a n d
do c u m e n t s .
T h e E n t e r p r i s e E d i t i o n : - W h i c h i s t h e m o st c o m p l e t e V I S U A L B A S I C e d i t i o n . T h i s e di t i o n i s
t a r g e t e d t o w a r d s pr o f e s s i o n a l pr o gr a m m er s w h o m a y w o r k i n a t e a m a n d i n c l u d e s a dd i t i o n a l
t o o l s s u c h a s V i s u a l S o u r c eS a f e, a v er si o n - c o n t r o l s y st em t h a t c o o r di n a t es t e a m
pr o gr a m m i n g
IDE- Integrated D evelopment environment.
I D E i s a c o m m o n l y u s e d t e r m i n t h e pr o gr a m m i n g w o r l d t o d e sc r i be t h e i n t e r f a c e a n d en v i r o n m en t
t h a t w e u s e t o c r e a t e o u r a pp l i c a t i o n . I t i s a l s o r ef er r e d a s d es i gn en v i r o n m en t . T h e I D E i s m a d e
u p o f f o l l o w i n g c o m po n e n t s .
M e n u B a r , T o o l B a r , T o o l bo x , P r o j e c t E x p l o r e r , P r o p er t i e s W i n do w , F o r m L a y o u t W i n do w , F o r m
D e s i gn e r , O b j e c t B r o w s e r .
In VISUAL BASIC IDE is Multiple Document Interface (MDI) format.
w i n do w s a s s o c i a t e d w i t h t h e pr o j e c t s t a y w i t h i n a m a n y c o n t a i n er f o r m .
Menu bar :-
In this format, the
T h e m e n u ba r d i s p l a y s t h e c o m m a n d s t h a t a r e r e qu i r e d t o bu i l d a n a p pl i c a t i o n .
Tool bar :T h e t o o l ba r pr o v i d e s q u i c k a c c e s s t o t h e c o m m o n l y u s ed c o m m a n d s a n d a bu t t o n i n
t h e t o o l ba r i s c l i c k t o c a r r y o u t t h e a c t i o n r ep r e s en t e d b y i t . V i s u a l B a s i c h a s f o u r d ef a u l t t o o l b a r s
t h a t c a n b e m a d e t o a pp e a r o n t h e s c r e en o r h i d d en u si n g .
View Tool bars in menu section.
1.
2.
3.
4.
Standard
Edit
Debug
Form Editors




I t c o n t a i n a l l p r el i m i n a r y i c o n s
E d i t i n g V I S U A L B A S I C c o d e.
T o a s s i s t i n f i n di n g er r o r s i n t h e c o di n g.
To adjusting items on the form.
NetScape COMPUTER ACADEMY
5
Chapter 3
Toolbox, Form, Properties & Project Explorer
Th e T o ol b ox
T o o l bo x c o n t a i n n u m b e r o f c o n t r o l s t h a t c a n p l a c e d o n a f o r m w h en a m o u s e c u r so r i s pl a c e d o n
t h e c o n t r o l a po p u p t o o l t i p w i l l a p p ea r d i sp l a y i n g a sh o r t d e sc r i pt i o n o f t h e c o n t r o l . Y o u u s e t h e
t o o l bo x t o a d d c o n t r o l s t o y o u r pr o j e c t s, a n d y o u do c u m en t so i n a v er y ea s y w a y - j u s t c l i c k a t o o l ,
a n d dr a w t h e n e w bu t t o n i n t h e f o r m . T h e t o o l bo x i s l o a de d w i t h c o n t r o l s y o u c a n a d d t o y o u r
f o r m s - t e x t bo x e s , l a b e l s , l i s t b o x e s , i m a g e c o n t r o l s, c h ec k bo x c o n t r o l s et c . W h en y o u a d d a n ew
A c t i v e X c o n t r o l t o y o u r pr o j e c t , t h a t c o n t r o l a p p ea r s i n t h e t o o l bo x , a n d y o u ’ r e r e a dy t o a d d i t t o
your form.
Tool Box Controls
P o i n t e r : - P o i n t e r i s n o t r e a l l y a c o m po n en t . I t p r o v i d e s a w a y t o m o v e a n d r e si z es o t h er c o n t r o l s .
L a b e l : - L a be l s l e t s y o u pr o v i d e i n f o r m a t i o n t o t h e u s e r a bo u t t h e pu r p o s e o f y o u r f o r m c o n t r o l s.
L a b e l s d i s p l a y a t e x t t h a t t h e u s e r c a n n o t m o di f y o r i n t er a c t w i t h . Y o u c a n u s e t h i s c o n t r o l t o
di s pl a y t e x t t h a t l a b e l s o t h e r p a r t s o f t h e f o r m t h a t do n ’ t h a v e t h e i r o w n c a pt i o n s. Y o u c a n c h a n g e
t h e t e x t i n a l a b e l c o n t r o l a t r u n t i m e o r d e si g n t i m e b y s et t i n g C a p t i o n p r o p er t y . Y o u c a n a l so
f o r m a t , w o r d - w r a p, o r s i z e a l a b e l t o f i t i t s t e x t . Y o u c a n s i z e t h e l a b el a s d e si r e d u s i n g T o p, L e f t ,
W i d t h a n d H e i gh t pr o p e r t i e s . T o f o r m a t t e x t i n a l a b el u s e i t s p r o p e r t i e s l i k e A u t o si z e , W o r dW r a p ,
F o n t B o l d, F o n t I t a l i c , F o n t N a m e , F o n t S t r i k et h r u , F o n t U n de r l i n e e t c . T o a l i gn t h e t e x t i n l a b e l u s e t h e
A l i gn m e n t p r o p e r t y , w h i c h h a v e t h e v a l u e s 0 - V b L e f t J u st i f y , 1 - V bR i gh t J u st i f y , a n d 2 - V bC en t e r . Y o u
c a n u s e l a b e l c o n t r o l s t o g i v e a c c e s s k ey s t o o t h er c o n t r o l s l i k e T e x t bo x . F o r t h i s t y pe t h e C a p t i o n
o f a L a b e l w i t h a n a m p e r s a n d [ & ] i n f r o n t o f t h e c h a r a c t er f o r w h i c h y o u w a n t t o u s e a s a c c e ss
k e y , dr a w t h e c o n t r o l f o r w h i c h y o u w a n t t o s et t h e f o c u s. T h a t i s t h e c o n t r o l sh o u l d h a v e t h e n e x t
T a bI n d e x p r o p e r t y v a l u e . L a b e l s do n o t a c c e p t f o c u s, so w h e n y o u pr e s s t h e a c c e s s k ey , i t w i l l s et
t h e f o c u s t o t h e n e x t c o n t r o l i n T a b I n d ex o r d er . W h en y o u a c c e s s k e y s, m a k e s u r e t o s et t h e
l a b e l ’ s U s e M n e m o n i c pr o p e r t y t o T r u e .
F r a m e c o n t r o l : - T h e F r a m e c o n t r o l c a n be u s e d t o d i v i d e t h e c o n t r o l s i n t o l o gi c a l gr o u p s. T h e y
s e r v e a s a v i s u a l a n d f u n c t i o n a l c o n t a i n er f o r o t h e r c o n t r o l s. F o r ex a m p l e y o u c a n dr a w d i f f er en t
o pt i o n bu t t o n gr o u p s i n di f f e r e n t f r a m e s. Y o u c a n c h a n g e t h e A p p e a r a n c e o f a F r a m e u s i n g
A p p e a r a n c e p r o pe r t y . T o s e t t h e s i z e o f a F r a m e u s e T o p, L ef t , W i dt h , a n d H ei gh t p r o pe r t i e s. T o
gr o u p c o n t r o l s , f i r s t d r a w t h e F r a m e c o n t r o l a n d d r a w t h e c o n t r o l s i n i t . I f y o u d r a w a c o n t r o l
o u t s i d e t h e f r a m e a n d t h e n t r y t o m o v e i t i n si d e, t h e c o n t r o l w i l l b e o n t o p o f t h e f r a m e, n o t i n i t ,
w h i c h m e a n s t h e c o n t r o l w i l l n o t b e gr o u p e d w i t h o t h e r c o n t r o l s i n t h e f r a m e.
NetScape COMPUTER ACADEMY
6
C h e c k B o x : - T h e C h e c k bo x c o n t r o l i s u s e d t o p r o v i d e t h e u s e r a Y e s o r N o c h o i c e f o r a p a r t i c u l a r
qu e s t i o n . I t h a s t h r e e v a l u e s 0 ( U n c h ec k e d) , 1 ( C h ec k e d) a n d 2 ( G r a y e d ) . Y o u c a n u s e a c h ec k b o x ’ s
V a l u e p r o p e r t y t o de t e r m i n e i t s s t a t e . T h e m o st c o m m o n l y u se d e v en t f o r C h ec k bo x i s C l i c k e v en t .
Y o u c a n s e t t h e c a pt i o n o f a c h e c k bo x c o n t r o l u s i n g C a pt i o n pr o p er t y .
T e x t b o x : - T e x t bo x i s a c o n t r o l u s e d t o d i sp l a y t h e m e s sa g e s a n d en t er t e x t . T ex t bo x c a n b e u s e d
i n a v a r i e t y o f c o n f i gu r a t i o n s , i n c l u d i n g a m u l t i l i n e v er si o n t h a t c a n h o l d u n l i m i t ed a m o u n t o f t e x t .
I t c a n a l s o a d d i t s o w n s c r o l l b a r s i f t h e a m o u n t o f t e x t i s l a r g er t h a n t h e v i s i bl e si z e. T ex t i n a
T e x t bo x c a n b e e di t e d. Y o u c a n a l so l o c k t h e t ex t bo x t o d i s a bl e e di t i n g. T o c r e a t e M u l t i l i n e
t e x t bo x , s e t i t s M u l t i l i n e pr o p e r t y t o T r u e . Y o u c a n s e t sc r o l l b a r s t o a t e x t bo x a n d i t s v a l u es a r e 0 N o n e , 1 - H o r i z o n t a l , 2 - V e r t i c a l , a n d 3 - B o t h . T o c h a n g e t h e a l i gn m en t o f a T e x t bo x , s e t A l i gn m en t
pr o p e r t y a s 0 - L e f t , 1 - R i gh t , a n d 2 - C en t e r . T o M a k e a T e x t bo x R e a d o n l y , y o u c a n s e t L o c k e d
pr o p e r t y t o T r u e . T o D i s a b l e a T e x t bo x , s e t i t s E n a b l e d pr o p er t y t o F a l s e. Y o u c a n a l so f o r m a t t h e
F o n t , F o n t s i z e e t c . u s i n g F o n t n a m e , F o n t B o l d, F o n t I t a l i c , F o n t S i z e e t c . T h e S el L en gt h p r o p e r t y
r e t u r n s o r s e t s t h e n u m b e r o f c h a r a c t er s se l ec t e d, S e l S t a r t p r o pe r t y r e t u r n s o r se t s t h e s t a r t i n g
po i n t o f s e l e c t e d t e x t , a n d S e l T e x t pr o p e r t y r et u r n s o r s e t s t h e st r i n g c o n t a i n i n g t h e c u r r en t l y
s e l e c t e d t e x t . T o c o n v e r t a s t a n d a r d T e x t B o x i n t o P a s sw o r d bo x , y o u j u s t a s s i g n s o m e c h a r a c t e r
u s u a l l y [ * ] t o t h e t e x t bo x ’ s P a s s w o r dC h a r pr o p e r t y .
L i s t B o x : - T h e l i s t b o x di s pl a y s t h e l i st o f i t e m s f r o m w h i c h u se r c a n s el ec t . Y o u c a n a d d i t e m s t o
t h e l i s t bo x u s i n g A d dI t e m m e t h o d a n d a l so r e m o v e a n i t em u s i n g R em o v eI t e m m et h o d. T o c l e a r a l l
t h e c o n t e n t s o f l i s t bo x u s e C l e a r m e t h o d. T h er e a r e v a r i e t y o f pr o p er t i e s t o c o u n t t h e n o . o f i t e m s,
s o r t i n g t h e l i s t e t c . T o c o u n t t h e t o t a l n o . o f i t e m s i n a l i st bo x u s e L i st C o u n t pr o p er t y , t o S o r t t h e
L i s t e d i t e m s s e t S o r t e d pr o p e r t y T r u e . T h e L i st I n d ex p r o p e r t y r e t u r n s t h e I n d e x v a l u e o f c u r r e n t l y
s e l e c t e d i t e m i n t h e L i s t bo x . I f n o n e i s s el ec t e d L i st I n d e x r e t u r n s – 1 . Y o u c a n u s e L i st bo x ’ s C l i c k ,
D bl C l i c k e v e n t s t o h a n d l e di f f e r e n t o p er a t i o n s. T o C r ea t e C h ec k m a r k s i n a L i s t bo x se t L i st bo x ’ s
S t y l e pr o p e r t y t o 1 - C h e c k m a r k L i s t B o x .
NetScape COMPUTER ACADEMY
7
C o m b o B o x : - T h e C o m bo B o x i s a v e r y f l e x i b l e c o n t r o l . I t c o m bi n e s a dr o p - do w n L i s t B o x a n d a
T e x t B o x i n o n e c o n t r o l . T h i s a l l o w s t h e u s e r t o s el ec t a n i t em f r o m t h e d r o p do w n l i st bo x . Y o u c a n
c r e a t e t h r e e di f f e r e n t s t y l e s o f C o m bo B o x .
i)
D r o p do w n Li s t : - T h i s s t y l e o f C o m bo B o x a l l o w s t h e u s er t o p i c k f r o m a l i s t bu t n o t
t y p e i n t o t h e t e x t po r t i o n o f t h e c o n t r o l .
ii)
S im pl e Co m bo : - I n t h i s S t y l e, t h e u s er c a n t y p e a c h o i c e, bu t t h e l i st d r o p do w n
u n d e r t e x t bo x . T h i s s t y l e i s r a r el y u s ed.
iii)
D r o p do w n Co m bo : - T h i s st y l e p r o v i de s bo t h f e a t u r e s: a dr o p - do w n l i st a s w el l a s a
t e x t po r t i o n w h e r e t h e u s er s c a n t y p e t h e i r c h o i c e s.
U s e t h e A d dI t e m m e t h o d t o A d d i t e m s, R em o v e I t em m et h o d t o R em o v e I t e m s f r o m a C o m bo B o x .
Y o u c a n u s e t h e e v e n t s l i k e C l i c k , D b l C l i c k , C h a n g e et c t o p er f o r m d i f f e r en t o p er a t i o n s. T h e S o r t e d
pr o p e r t y i s u s e d t o c r e a t e s o r t e d l i s t . U s e t h e C l ea r m et h o d t o C l e a r t h e c o n t en t s o f C o m bo B o x .
Y o u c a n a l s o L o c k t h e C o m bo B o x u s i n g L o c k e d pr o p er t y . L i s t C o u n t pr o p er t y r e t u r n s t h e N u m be r o f
I t e m s i n C o m bo B o x , L i s t I n d e x r e t u r n s t h e I n d ex o f c u r r e n t l y s el ec t e d i t e m .
S c r o l l B a r : - H o r i z o n t a l S c r o l l b a r , V er t i c a l S c r o l l b a r a l l o w s t h e u s e r t o s el ec t a v a l u e i n t h e
s pe c i f i e d r a n g e . T h i s t y p e o f c o n t r o l i s i n t u i t i v e f o r t h e u se r b ec a u s e, a s t h e u s er d r a g s t h e
c o n t r o l , a n o t h e r c h a n g e o n t h e f o r m s u c h a s c o l o r o r t e x t a l so c h a n g es. T o a dd h o r i z o n t a l o r
v e r t i c a l s c r o l l b a r , j u s t pi c k t h e c o n t r o l a n d d r a w i t o n y o u r f o r m . A f t er y o u p l a c e t h e sc r o l l b a r , y o u
c a n c h a n g e i t s M a x i m u m a n d M i n i m u m v a l u e s u si n g M a x a n d M i n p r o p er t i e s. T h e M a x i m u m v a l u e
m u s t b e b e t w e e n 0 a n d 3 2 7 6 7 . T h e r e a r e t h r e e w a y s t o c h a n g e t h e s et t i n g o f a sc r o l l b a r , by
m o v i n g t h e t h u m b, b y c l i c k i n g t h e a n a r r o w , a n d b y c l i c k i n g o n t h e a r e a b et w e en t h e t h u m b a n d
a r r o w bu t t o n . Y o u c a n s e t t h e L a r g e C h a n ge pr o p er t y t o d et er m i n e h o w m u c h t h e sc r o l l b a r v a l u e
s h o u l d c h a n ge w h e n u s e r c l i c k s o n t h e sc r o l l b a r i t s el f , n o t t h e t h u m b o r a r r o w . S et S m a l l c h a n g e
pr o p e r t y t o d e t e r m i n e t h e a m o u n t o f v a l u e t o b e c h a n g e d w h en t h e u se r c l i c k s o n a r r o w bu t t o n . T o
g e t a s c r o l l b a r ’ s c u r r e n t v a l u e u s e V a l u e pr o p er t y . W h en t h e u se r c h a n g e s t h e s e t t i n g i n a
s c r o l l b a r , a c h a n g e e v e n t o c c u r s a n d y o u c a n r ea c t t o t h o s e c h a n g es w i t h a n ev en t h a n dl er
a t t a c h e d t o t h a t e v e n t . T h e c h a n ge ev en t o c c u r s a f t er t h e a c t i o n i s c o m p l e t ed . T h e S c r o l l e v en t
u p da t e s a s t h e a c t i o n i s h a p p e n i n g. I t ’ s v er y u s ef u l t o b e a bl e t o u pd a t e t h e sc r e en a s t h e u s er
s c r o l l s . T o s h o w o r h i d e s c r o l l b a r s u s e V i s i bl e pr o p er t y .
T i m e r : - T i m e r c o n t r o l a l l o w s y o u t o r ea c t t o e l a p s e d o r pa s si n g t i m e w h i l e a n a pp l i c a t i o n i s
r u n n i n g. T h e t i m e r c a n b e p r o gr a m m e d t o n o t i f y y o u a f t er a n u m b er o f m i l l i s ec o n d s h a v e el a ps e d.
A m i l l i s e c o n d i s 1 / 1 0 0 0 t h o f a s e c o n d. T h e m a x i m u m i n t er v a l i s j u s t sl i gh t l y l a r g er t h a n a m i n u t e.
T i m e r c o n t r o l e x e c u t e s t h e t i m e r e v e n t s a t s pe c i f i e d i n t er v a l s. T h i s c o n t r o l i s n o t v i s i bl e a t r u n
t i m e . T o e n a b l e o r d i s a b l e t h i s c o n t r o l u s e E n a bl e d p r o p e r t y . T h e I n t er v a l pr o p er t y s et s t h e i n t er v a l
b e t w e e n T i m e r e v e n t s . T h i s c o n t r o l o n l y h a s t h e e v en t h a n dl e r T i m er w h er e y o u c a n w r i t e t h e c o d e
when the Timer event occurs.
D i r L i s t B o x : - D i r l i s t bo x a l l o w s t h e u s er t o s el ec t t h e di r ec t o r i e s a n d pa t h . I t gi v e s a l i st o f
di r e c t o r i e s i n t h e c u r r e n t di r e c t o r y o n t h e u s er s c o m pu t er . T h i s c o n t r o l i s c o m m o n l y u s ed t o bu i l d a
c u s t o m f i l e / d i r e c t o r y di a l o g . T h i s c o n t r o l w o r k s t o g e t h e r w i t h t h e D r i v e L i st B o x a n d F i l e L i s t B o x
c o n t r o l s . T o a d d a D i r L i s t B o x c o n t r o l j u s t u s e i t s t o o l i n t h e t o o l bo x . T h e i m p o r t a n t p r o p e r t y o f t h i s
c o n t r o l i s P a t h , w h i c h h o l d s t h e pa t h o f c u r r en t di r ec t o r y . W h en t h e u s e r c h a n g e s t h e c u r r en t pa t h ,
a C h a n ge e v e n t o c c u r s . Y o u c a n w r i t e c o d e i n t h i s e v e n t h a n dl er .
E g:
S u b D i r 1 _ C h a n ge ( )
File1.Path=Dir1.Path
End Sub
NetScape COMPUTER ACADEMY
8
F i l e L i s t B o x : - T h e F i l e L i s t B o x di s pl a y s a s e t o f f i l e s f r o m w h i c h u se r c a n s el ec t . I t pr o v i d e s a l i st
o f f i l e s i n a d i r e c t o r y f r o m w h i c h t h e u se r c a n s e l ec t a f i l e. U s e t h i s c o n t r o l a l o n g w i t h D r i v e L i st B o x
a n d D i r L i s t B o x c o n t r o l s . T o a d d t h i s c o n t r o l , u s e i t s t o o l i n t h e t o o l bo x . T h e i m po r t a n t pr o p er t i e s o f
a F i l e l i s t bo x a r e P a t h , F i l e n a m e , a n d P a t t e r n . T h e p a t h pr o p er t y r e t u r n s t h e c u r r en t pa t h ,
F i l e n a m e r e t u r n s c u r r e n t l y s e l e c t e d f i l en a m e, a n d P a t t e r n d et e r m i n e s t h e t y p e o f f i l e s t o be
di s pl a y e d i n t h e F i l e L i s t bo x . Y o u c a n h a v e m o r e t h a n o n e t y p e o f f i l e pa t t er n s ep e r a t ed b y
s e m i c o l o n . ( E g: - * . B M P ; * . G I F ; * . J P G ; * . W M F ) . y o u c a n w r i t e c o d e s i n C l i c k e v en t h a n d l er o f a
F i l e l i s t bo x .
Sub File1_Click()
M s gB o x F i l e 1 . F i l e n a m e
End Sub
D r i v e L i s t B o x : - T h e D r i v e L i s t B o x di s pl a y s t h e v a l i d d i sk d r i v es , n et w o r k dr i v e s a n d a l l o w s t h e u s er
t o s e l e c t o n e o f t h e m . U s e t h i s c o n t r o l a l o n g w i t h D i r L i st B o x a n d F i l e L i st B o x t o c r e a t e c u st o m F i l e
di a l o g bo x e s. Y o u g e t t h e c u r r e n t l y s e l ec t e d dr i v e i n a d r i v e l i st bo x u si n g i t s D r i v e p r o pe r t y , a n d
w h e n t h e u s e r c h a n g e s t h e dr i v e i n t h a t c o n t r o l , a C h a n g e e v e n t i s g en er a t e d. Y o u c a n w r i t e c o d e
i n t h i s e v e n t h a n dl e r a s f o l l o w s .
Sub Drive1_Change()
Dir1.Path=Drive1.Drive
End Sub
S h a p e : - S h a p e c o n t r o l i s a b l e t o c r e a t e m a n y s h a pe s, i n c l u d i n g r ec t a n g l e s, c i r c l e s a n d o v a l s. Y o u
dr a w a s h a pe u s i n g t h e s h a p e t o o l . T o s et t h e s h a pe ’ s t y pe, y o u se t t h e c o n t r o l ’ s S h a p e pr o p er t y t o
o n e o f t h e f o l l o w i n g. 0 - v b S h a p e R e c t a n gl e, 1 - V b S h a p eS qu a r e, 2 - V bS h a p eO v a l , 3 - V b S h a p eC i r c l e, 4 V bS h a pe R o u n de dR e c t a n gl e , 5 - V bS h a p eR o u n de d S qu a r e. Y o u c a n a l so s et t h e w i d t h o f t h e sh a p e’ s
dr a w i n g l i n e w i t h t h e B o r d e r W i d t h p r o p e r t y a n d f i l l t h e sh a p e u si n g F i l l C o l o r a n d F i l l S t y l e
pr o p e r t i e s . T h e B o r d e r S t y l e pr o p e r t y l e t s y o u s el ec t t h e st y l e o f t h e sh a p e’ s dr a w i n g l i n e, i n c l u d i n g
u s i n g do t s a n d d a s h e s .
I m a g e : - T h e I m a g e c o n t r o l p r o v i de s a m u c h s m a l l e r s et o f f e a t u r e s t h a n P i c t u r e B o x a n d u s e s l e ss
m e m o r y a n d o t h e r s y s t e m r e s o u r c e s a n d i s a l i gh t w e i g h t c o n t r o l . T h e i m a g e c o n t r o l i s a bl e t o
di s pl a y a v a r i e t y o f i m a g e s f o r m a t s i n c l u di n g B i t M a p P i c t u r e ( B M P ) . I c o n F i l es ( I C O ) , W i n do w s
M e t a F i l e ( W M F ) , G r a ph i c I n t e r c h a n g e F o r m a t ( G I F ) a n d J o i n t P h o t o gr a ph i c E x p er t s G r o u p ( J P E G )
f o r m a t s . T o d r a w a n i m a g e c o n t r o l , j u st u s e i t s t o o l f r o m t h e t o o l bo x . A f t er a d di n g i m a g e c o n t r o l ,
u s e P i c t u r e pr o p e r t y t o s pe c i f y t h e p i c t u r e f i l e n a m e t o d i sp l a y . B y de f a u l t , i m a g e c o n t r o l s sh a p e
t h e m s e l v e s t o t h e i m a g e y o u di s pl a y , i f y o u w a n t t o st r e t c h a n i m a g e t o f i t t h e i m a g e c o n t r o l , s et
t h e i m a ge c o n t r o l ’ s S t r e t c h p r o p e r t y t o T r u e. U s e B o r d e r S t y l e pr o p er t y s p ec i f y bo r d er f o r i m a g e l i st
c o n t r o l . Y o u c a n l o a d a pi c t u r e t o t h i s c o n t r o l a t r u n t i m e u s i n g L o a dP i c t u r e( ) f u n c t i o n .
E g:
S e t i m a g e 1 = L o a dP i c t u r e ( “ C : \ W I N D O W S \ C L O U D S . G I F ” )
NetScape COMPUTER ACADEMY
9
O L E C o n t r o l : - O L E c o n t r o l a l l o w s y o u t o em b ed a n y o bj ec t o n y o u r f o r m t h a t c o m pl i e s w i t h O b j ec t
L i n k i n g a n d E m b e dd i n g pr o t o c o l s ( O L E ) . A s y o u a d d t h i s c o n t r o l t o y o u r f o r m , y o u g et a l i st o f
a v a i l a bl e O L E t y p e s y o u c a n u s e .
P i c t u r e B o x : - T h e P i c t u r e B o x di s pl a y i c o n s, b i t m a p s a n d m et a f i l e s. I t di sp l a y s t e x t o r a c t s a s a
v i s u a l c o n t a i n e r f o r o t h e r c o n t r o l s l i k e f r a m e. W h en y o u h a v e t o do s o m e a d v a n c e s p r o gr a m m i n g
t h a t r e qu i r e d t h e u s e o f t h e W i n do w s A P I , y o u m u s t u s e t h i s c o n t r o l i n st e a d o f i m a g e l i st . I t ’ s t h e
o n l y c o n t r o l t h a t c a n a p p e a r by i t s e l f i n a n M D I ( M u l t i p l e D o c u m e n t I n t e r f a c e) f o r m . A s w i t h i m a g e
c o n t r o l s y o u c a n l o a d i m a g e s t o t h i s c o n t r o l a t r u n t i m e u si n g L o a d P i c t u r e( ) f u n c t i o n . T o a d d a
pi c t u r e b o x c o n t r o l j u s t u s e t h a t c o n t r o l f r o m T o o l bo x . Y o u c a n se t A u t o S i z e p r o p e r t y t o T r u e t o
r e s i z e t h e pi c t u r e bo x t o f i t t h e pi c t u r e. T o s et t h e p i c t u r e bo x ’ s p i c t u r e a t de s i gn t i m e u s e P i c t u r e
pr o p e r t y . Y o u c a n a l s o dr a w o t h e r c o n t r o l s i n a p i c t u r e bo x a n d a l so dr a w sh a pe s l i k e l i n e, c i r c l e
etc.
C o m m a n d B u t t o n : - C o m m a n d bu t t o n c a r r i e s o u t t h e sp ec i f i e d a c t i o n w h en t h e u s e r c h o o se s i t .
T h i s c o n t r o l i s u s e d t o l e t t h e u s e r s e l ec t a c o u r s e o f a c t i o n . Y o u c a n a l so d i sp l a y gr a ph i c s o n y o u r
c o m m a n d bu t t o n by c h a n gi n g t h e s t y l e p r o p er t y t o g r a ph i c a l a n d s el e c t t h e pi c t u r e y o u w a n t t o
di s pl a y u s i n g p i c t u r e pr o p e r t y . T h i s i s a v er y c o m m o n c o n t r o l i n w i n do w s a p pl i c a t i o n s. Y o u u s e
bu t t o n ’ s C a pt i o n pr o p e r t y t o s p e c i f y t h e t e x t t o b e di s pl a y e d o n B u t t o n . T o c h a n g e b a c k gr o u n d
c o l o r o r d i s p l a y a n y p i c t u r e a s b a c k gr o u n d s e t t h e st y l e p r o pe r t y t o G r a ph i c a l a n d s p ec i f y t h e
ba c k gr o u n d c o l o r o r b a c k g r o u n d pi c t u r e. T h e m o st c o m m o n l y u s e d e v e n t o f a c o m m a n d bu t t o n i s
C l i c k E v e n t . T o g i v e a b u t t o n a c c e s s k e y j u st pl a c e a n a m p e r s a n d [ & ] i n f r o n t o f t h e c h a r a c t er f o r
w h i c h y o u w a n t t o u s e a s a c c e s s k e y . T h e d e f a u l t p r o p e r t y i s u s e d m a k e t h e c o m m a n d bu t t o n
d e f a u l t b y w h i c h y o u c a n a c c e s s t h e c l i c k e v en t h a n dl e r o f t h a t bu t t o n by p r es s i n g E n t e r k e y . T h e
c a n c e l pr o p e r t y i s u s e d t o a c c e s s t h a t bu t t o n u si n g E sc a p e k e y .
O p t i o n B u t t o n : - A l s o k n o w n a s r a d i o bu t t o n s, t h i s c o n t r o l a l l o w s t h e u s er t o s el ec t o n e o f a gr o u p
o f o pt i o n s . T o c r e a t e s e pa r a t e g r o u p o f o pt i o n s y o u m u st dr a w i t i n a c o n t a i n e r l i k e F r a m e o r
P i c t u r e B o x c o n t r o l . W h e n y o u a d d o p t i o n bu t t o n t o y o u r f o r m , t h ey a r e a u t o m a t i c a l l y c o o r d i n a t e d
s o t h a t o n l y o n e o pt i o n bu t t o n c a n b e s el ec t e d a t a t i m e . Y o u c a n c h ec k c h ec k i f a n o pt i o n bu t t o n
i s s e l e c t e d o r n o t w i t h t h e V a l u e pr o p er t y . O p t i o n bu t t o n ’ s V a l u e pr o p er t y h a s t w o s et t i n g s: T r u e i f
t h e bu t t o n i s s e l e c t e d, a n d F a l s e i f n o t .
L i n e : - L i n e c o n t r o l dr a w s a s t r a i gh t l i n e. Y o u c a n c h a n g e i t s p r o p er t i es t o c r e a t e gr a ph i c a l ef f e c t s
o n f o r m s . T h e l i n e c o n t r o l ’ s pr i m a r y pr o p er t i e s a r e X 1 , X 2 , Y 1 , a n d Y 2 , a n d t h o s e v a l u e s f o r m t h e
c o o r d i n a t e s o f t h e l i n e s e gm e n t . Y o u c a n f o r m a t t h e l i n e u s i n g pr o p er t i e s l i k e B o r de r S t y l e,
BorderWidth etc.
D a t a C o n t r o l : - D a t a c o n t r o l e n a bl e t h e u s e r t o c o n n ec t t o ex i st i n g ex t er n a l d a t a ba s e s. O t h er
c o n t r o l s c a n t h e n u s e t h e d a t a c o n t r o l d a t a ba s e l i n k s t o a u t o m a t i c a l l y f i l l i n t h e i r v a l u e s. Y o u c a n
c h a n g e t h e c a pt i o n o f t h i s c o n t r o l u s i n g C a p t i o n pr o p er t y . T o o pe n a d a t a ba s e u si n g da t a c o n t r o l
u s e D a t a b a s e N a m e pr o p e r t y . T h e r e c o r dso u r c e p r o p er t y i s u s e d t o s p ec i f y t h e t a bl e o r r ec o r dso u r c e
t o o p e n . Y o u c a n c o n n e c t ( B o u n d) a d a t a c o n t r o l t o a n o t h er c o n t r o l l i k e T ex t bo x a n d di s pl a y t h e
c o n t e n t s o f t h e f i e l d s i n i t . T o bo u n d a c o n t r o l t o d a t a c o n t r o l , s e t t h e c o n t r o l ’ s D a t a so u r c e
pr o p e r t y t o D a t a c o n t r o l ’ s n a m e a n d D a t a F i el d pr o p er t y t o t h e f i el dn a m e t o b e di s pl a y ed i n t h a t
pa r t i c u l a r c o n t r o l .
NetScape COMPUTER ACADEMY
10
R i c h T e x t B o x : - T o a d d a R i c h T e x t B o x c o n t r o l , c h o o s e P r o j ec t > C o m po n en t s a n d s el ec t t h e
c o n t r o l n a m e f r o m t h e l i s t a n d c l i c k A p pl y bu t t o n . T o a c c es s t ex t i n a R i c h T e x t bo x , y o u c a n u s e
t w o pr o p e r t i e s : T e x t a n d T e x t R T F . T h e T e x t p r o p er t y h o l d s t h e t ex t i n a r i c h t e x t bo x i n pl a i n t ex t
f o r m a t l i k e a t e x t bo x , a n d T e x t R T F h o l d s t h e t e x t i n R i c h T ex t F o r m a t . T h e S e l S t a r t pr o p er t y i s
u s e d t o s e t t h e s t a r t a n d S e l L e n gt h pr o p er t y i s u s e d t o s et t h e en d o f t ex t s e l ec t i o n . T o m a k e t ex t
bo l d, i t a l i c , a n d u n d e r l i n e y o u u s e S e l B o l d, S el I t a l i c , a n d S e l U n d er l i n e p r o p er t i e s. Y o u c a n a l so s et
i n d e n t a t i o n i n r i c h t e x t bo x e s . T h e S e l F o n t N a m e a n d S e l F o n t S i z e pr o p er t i e s a r e u se d t o s p ec i f y t h e
F o n t a t t r i bu t e s o f R i c h T e x t B o x . T h e S e l A l i gn m en t pr o p er t y i s u s e d t o sp ec i f y t h e a l i gn m en t o f
s e l e c t e d p a r a gr a ph i n R i c h T e x t bo x . A l so y o u c a n a p pl y d i f f er en t f o r m a t s f o r t h e t e x t i n R i c h T ex t
bo x u s i n g d i f f e r e n t f o r m a t o pt i o n s .
F o r m : - F o r m s e r v e s a s a w i n do w t h a t c a n c u s t o m i z e a n d c o n t r o l s, gr a p h i c s a n d p i c t u r es c a n b e
added to it.
Form Window
F o r m W i n do w i s u s e d t o d e s i gn t h e d i f f er en t f o r m s w h i c h i s a n a p pl i c a t i o n . E a c h f o r m c a n h a v e
m a n y c o n t r o l s t h a t p e r f o r m v a r i o u s f u n c t i o n s.
Project explorer:D i s p l a y s v a r i o u s e l e m e n t s o f a p r o j e c t n a m e l y f o r m , c l a s s e s a n d m o du l e s . A l l t h e o bj ec t t h a t m a k e
u p t h e a p pl i c a t i o n a r e pa c k e d i n a p r o j ec t . I t i s po s si bl e t o d e v el o p a n y n u m b e r o f f o r m s i n a
pr o j e c t . T h i s w i n do w w i l l h e l p y o u t o o r g a n i z e a l l t h e f i l e s i n y o u r p r o j ec t . T h er e i s a V i ew O b j e c t
bu t t o n a n d V i e w c o d e b u t t o n w h i c h h el p t o sw i t c h b et w e en o bj ec t w i n d o w ( F o r m ) a n d c o d e w i n do w
( f o r m m o du l e ) .
T h e P r o j e c t E x p l o r e r c a n b e v e r y u s ef u l w h en y o u ’ r e w o r k i n g i n a l a r g er pr o j ec t a n d t h e I D E i s
f i l l e d w i t h d e s i gn a n d c o d e w i n do w s . T o pi c k o u t t h e pa r t o f t h e pr o j e c t y o u w a n t t o w o r k o n , y o u
o n l y h a v e t o f i n d i t i n t h e P r o j e c t E x p l o r e r a n d do u b l e c l i c k i t . D o i n g so b r i n g s t h e a p p r o p r i a t e
w i n do w t o t h e f o r e g r o u n d a n d, i f y o u ’ v e c l i c k ed a f o r m , o p en s t h a t f o r m i n t h e P r o p er t i es w i n do w .
Y o u c a n a l s o a d d a n d r e m o v e i t e m s b y r i gh t - c l i c k i n g t h em w i t h t h e m o u s e i n t h e P r o j ec t E x pl o r er .
F o r e x a m p l e , y o u c a n a d d n e w f o r m s , M D I f o r m s, m o du l es , c l a ss m o du l e s a n d s o o n j u st b y r i g h t c l i c k i n g t h e pr o j e c t ’ s i c o n i n t h e P r o j e c t E x p l o r er . Y o u c a n r em o v e f o r m s by r i gh t - c l i c k i n g t h e m a n d
s e l e c t i n g t h e R e m o v e I t e m i n t h e po pu p m en u t h a t a pp e a r s, o r y o u c a n s a v e t h e m t o di s k o r sw i t c h
b e t w e e n t h e f o r m ’ s c o d e w i n do w a n d t h e f o r m i t s el f . T h e P r o j ec t E x p l o r er g i v e s u s a v a l u a b l e
o v e r v i e w o f o u r e n t i r e pr o j e c t , w h i c h i s r e a l l y v er y u s ef u l w h en a pr o j ec t g et s l a r g e a n d c o n t a i n s
m a n y c o m po n e n t s .
Properties window
I t e x p o s e s t h e v a r i o u s c h a r a c t e r s o f se l ec t e d o bj ec t . A pr o p er t y c a n be de f i n e d a s " t h e n a m e d
a t t r i bu t e o f a c o n t r o l " . E a c h a n d e v er y f o r m i n a n a pp l i c a t i o n i s c o n s i d er e d a s a n o b j ec t . E a c h
NetScape COMPUTER ACADEMY
11
o bj e c t i n V I S U A L B A S I C h a s i t s o w n pr o p er t i e s su c h a s c o l o r , s i z e, n a m e, c a p t i o n , e n a b l e d,
ba c k c o l o r e t c .
W h e n y o u s e l e c t a n o bj e c t l i k e a c o n t r o l i n V I S U A L B A S I C u si n g t h e m o u s e, t h a t o b j ec t ’ s pr o p er t i e s
a p p e a r i n t h e P r o p e r t i e s w i n do w , y o u j u st f i n d t h a t p r o pe r t y ’ s i t em i n t h a t w i n do w . I f y o u w a n t to
c h a n g e t h a t pr o p e r t y , n o t h i n g c o u l d b e e a si er - j u st c l i c k t h e c u r r en t s e t t i n g. F o r pr o p er t i e s t h a t y o u
s e t y o u r s e l f , t h e c u r r e n t pr o p e r t y v a l u e i s h i gh l i gh t e d, a n d y o u j u st t y p e i n t h e n ew se t t i n g. I f t h e
pr o p e r t y c a n o n l y b e s e t t o o n e o f a s pec i f i c r a n g e o f p r o p e r t i e s, a do w n w a r d s a r r o w w i l l a p p ea r i n
t h e pr o p e r t y s e t t i n g bo x ; c l i c k t h i s b u t t o n t o s e e t h e po ss i bl e v a l u es t h i s pr o p er t y c a n h a v e.
A l l t h i s p r o pe r t i e s a r e di s pl a y e d i n pr o p er t i e s w i n do w .
Form Layout window
V I S U A L B A S I C u s e s a n e w m e t h o d f o r po si t i o n i n g f o r m s o n a u s e r ’ s d es k t o p, t h e F o r m L a y o u t
W i n do w . T h i s t h u m bn a i l pi c t u r e o f t h e d es k t o p s h o w s y o u w h e r e t h e f o r m w i l l a pp e a r . Y o u c a n d r a g
t h e s m a l l f o r m w i t h i n t h e p i c t u r e o f t h e m o n i t o r t o pi c k a n ew po si t i o n f o r i t . I f y o u m o v e t h e f o r m
w i t h i n y o u r w o r k s pa c e , i t s po s i t i o n o n t h e F o r m L a y o u t W i n do w w i l l n o t c h a n g e. T o gi v e a f o r m a
n e w i n i t i a l l o c a t i o n , j u s t dr a g t h a t f o r m i n t h e F o r m L a y o u t w i n do w t o t h a t n ew l o c a t i o n . Y o u ’ l l s ee
t h e n e w s c r e e n po s i t i o n o f t h e f o r m ’ s u p p er - l ef t c o r n e r di s pl a y ed i n t h e t o o l b a r . T o r e s i z e t h e
f o r m , o n t h e o t h e r h a n d, y o u h a v e t o u s e a f o r m d es i gn er .
Form Designers and Code Windows
T h e f o r m d e s i gn e r d i s p l a y s t h e c u r r e n t f o r m u n d er de s i g n , a n d t h e c o d e w i n do w di s pl a y s t h e c o d e
f o r t h e pr o gr a m . F o r m d e s i gn e r s a r e r ea l l y j u s t w i n do w s i n w h i c h a p a r t i c u l a r f o r m a p pe a r s. Y o u
c a n p l a c e c o n t r o l s i n t o a f o r m s i m p l y b y d r a w i n g t h em a f t er c l i c k i n g t h e c o r r e s po n di n g c o n t r o l ’ s
t o o l i n t h e t o o l bo x .
C o d e w i n do w s a r e s i m i l i a r l y e a s y t o u n d e r s t a n d . Y o u j u st pl a c e t h e c o d e y o u w a n t t o a t t a c h t o a n
o bj e c t i n t h e c o d e w i n d o w . T h e r e a r e t w o d r o p - do w n l i st bo x e s a t t h e t o p o f t h e c o d e w i n do w . T h e
l e f t l i s t l e t s y o u s e l e c t t h e o bj e c t t o a d d c o d e t o , a n d t h e r i gh t l i st l et s y o u s el ec t t h e pr o c e du r e t o
a d d.
On line Help
W e c a n a c c e s s t h e v i s u a l B a s i c h e l p s y st em f r o m H el p m en u by s et t i n g.
Contents
Index
Search
Or
Favorites
W h i c h gi v e h e l p t o u s e r f r o m M S D N ( M i c r o s o f t D e ve l o p e r N e t w o r k ) t w o v er y u s ef u l h e l p r e l a t e d
features that no longer wait for user)
Visual Basic includes following helps


Auto list members
Auto quick info
NetScape COMPUTER ACADEMY
12
A u t o l i s t m e m be r s i s a t i m e s a v i n g o pt i o n t h a t di s p l a y a l i st bo x w h i c h c o n t a i n s t h e m e m b er s
( P r o p e r t i e s o r m e t h o d s ) t h a t a r e a v a i l a bl e i n c o d e w i n do w .
T h e A u t o Q u i c k i n f o o p t i o n di s pl a y s t h e sy n t a x o f a n y f u n c t i o n s o r m e t h o d.
n a m e o f pr o c e du r e f o l l o w e d b y p e r i o d sp a c e o r o p en p a r en t h e si s.
W h en o n e en t er s t h e
Selecting IDE colors, Fonts, and Font Sizes
T h e V I S U A L B A S I C I D E c o m e s w i t h a l l k i n d s o f pr e s et c o l o r s - bl u e f o r k e y w o r d s, gr e en f o r
c o m m e n t s , bl a c k f o r o t h e r c o d e , a n d so o n . V I S U A L B A S I C a l l o w s y o u t o do y o u r o w n d ec o r a t i n g.
J u s t o pe n t h e O pt i o n s i t e m T o o l s M e n u a n d c l i c k E di t o r F o r m a t t a b. H er e a r e t h e t ex t i t e m s w h o s e
colors you can select
N o r m a l T e x t , S e l e c t i o n T e x t , S y n t a x E r r o r T e x t , E x ec u t i o n P o i n t T ex t , B r ea k po i n t T ex t , C o m m en t
T e x t , K e y w o r d T e x t , I d e n t i f i e r T e x t , B o o k m a r k T ex t , C a l l R et u r n T ex t
Aligning, Sizing, and Spacing Multiple Control s
V I S U A L B A S I C a l l o w s y o u t o a l i gn , s i z e a n d gi v e s p a c i n g b et w e en c o n t r o l s. H o l d do w n t h e c o n t r o l
k e y a n d c l i c k a l l t h e c o n t r o l s y o u w a n t t o a l i g n , m a k e su r e y o u h a v e o n e c o n t r o l i n t h e c o r r ec t
po s i t i o n , a n d c l i c k t h a t o n e l a s t . S i z i n g h a n dl e s a l l o w s y o u t o r e s i z e t h e c o n t r o l s. T o a l i g n a l l t h e
s e l e c t e d c o n t r o l s , C h o o s e F o r m a t > A l i gn , se l ec t t h e t y pe o f a l i gn m en t
T o s i z e t h e m a k e s a m e s i z e i t e m i n F o r m a t m e n u , c h o o s e t h e a p pr o pr i a t e i t em i n t h e M a k e S a m e
size sub menu.
T o s p a c e m u l t i p l e c o n t r o l s v e r t i c a l l y o r h o r i z o n t a l l y , s e l ec t H o r i z o n t a l s pa c i n g o r v er t i c a l s pa c i n g
a n d c h o o s e t h e s u bm e n u o pt i o n .
Setting a Startup form or Procedure
V I S U A L B A S I C pr o g r a m s do n o t n e e d t o h a v e a n y w i n do w s a t t r i bu t e a l l , i n f a c t . T h a t c a s e i s a l i t t l e
e x t r e m e , bu t t h e r e a r e t i m e s w h e n y o u do n ’ t w a n t t o s t a r t y o u r pr o gr a m w i t h c o d e i n a f o r m . F o r
e x a m p l e , y o u m i gh t w a n t t o di s p l a y f l a s h sc r e e n w h en y o u r p r o g r a m f i r s t st a r t s, w i t h o u t w a i t i n g
f o r t h e f i r s t f o r m t o l o a d , a n d t h e n s w i t c h t o t h e f o r m w h en i t do e s l o a d
Crating a Form-Free Startup procedure
T o s t a r t a p r o gr a m f r o m c o d e n o t i n a n y f o r m , y o u a d d a su br o u t i n e n a m e d M a i n ( ) t o y o u r
pr o gr a m . F o l l o w t h e s e s t e ps
1.
2.
3.
4.
S e l e c t t h e P r o p e r t i e s i t e m i n P r o j ec t m en u t o o p en P r o j ec t P r o p er t i e s
C l i c k t h e G e n e r a l t a b, s el ec t S u b M a i n i n t h e s t a r t u p o bj ec t d r o p do w n l i st , a n d c l i c k
OK
S e l e c t A d d M o du l e i n P r o j ec t m e n u , a n d do u bl e c l i c k t h e M o du l e i c o n i n t h e A d d
M o du l e bo x t h a t o pe n s
A d d t h i s c o d e t o t h e n e w m o du l e s G en e r a l s ec t i o n i n t h e c o d e w i n do w
Sub Main()
End Sub
5.
Place the code you want in the Main() subroutine
Selecting the Startup Form
T o s p e c i f y t h e s t a r t u p f o r m f o r a pr o j ec t , j u s t o p en t h e P r o j ec t P r o p er t i e s bo x a s w e ’ v e do n e i n t h e
pr e v i o u s s e c t i o n a n d s e l e c t t h e a p pr o pr i a t e f o r m i n t h e S t a r t u p O b j ec t bo x , t h a t f o r m w i l l A c t a s
the Startup form.
Properties- Methods and Events: - A l l t h e c o n t r o l s i n t h e t o o l bo x ex c e pt po i n t er a r e
o bj e c t s i n V I S U A L B A S I C . T h e s e o bj e c t s h a v e a s so c i a t e d pr o p er t i es , m e t h o d s a n d e v en t s.
Properties
R e a l w o r l d o bj e c t s a r e l o a d e d w i t h pr o p er t y . F o r E . g. : A f l o w e r i s l o a de d w i t h c e r t a i n
c o l o r , s h a p e a n d f r a gr a n c e . S i m i l a r l y pr o gr a m m i n g o bj ec t s a r e l o a d e d w i t h pr o p er t y . A pr o p er t y i s
a n a m e d a t t r i bu t e o f a pr o gr a m m i n g o b j ec t , w h i c h d ef i n e s t h e c h a r a c t e r i st i c o f a n o bj ec t su c h a s
size, color etc.
E . g. : A t e x t b o x a c c e pt s pr o p e r t i e s s u c h a s en a b l e d, f o n t , m u l t i l i n e, t e x t , v i si bl e, w i d t h et c .
T h e pr o p e r t i e s di s c u s s e d a bo v e a r e d es i gn t i m e pr o p er t i e s t h a t c a n b e s et u s i n g p r o pe r t i es
w i n do w . B u t c e r t a i n p r o p e r t i e s c a n n o t s et a t d e si gn t i m e. E . g. : C u r r en t X , C u r r en t Y pr o p er t i e s o f a
f o r m c a n n o t b e s e t a t d e s i gn t i m e . T h e se t y p e s o f pr o p er t i e s a r e c a l l ed r u n t i m e pr o p er t i e s.
NetScape COMPUTER ACADEMY
13
Chapter 4
Learning Basic Properties
L ea rn in g t he Bas ic P ro p er t i es
W h e n y o u d r a w a C o n t r o l , f o r E . g. : a T e x t B o x , V I S U A L B A S I C s e t s s ev er a l pr o p er t i e s o n e a c h
c o n t r o l t o s o m e de f a u l t v a l u e s . B e f o r e t h i s f o r m c a n b e sh o w n t o t h e u s er , s e v er a l o f t h e se
pr o p e r t i e s v a l u e s n e e d t o b e c h a n g e d so t h a t t h e f o r m w i l l l o o k c o r r e c t . M a n y o f t h e p r o pe r t i e s
s h o w n o n t h e l e f t s i d e o f pr o p e r t i e s w i n do w a r e s e l f ex pl a n a t o r y . H er e i s a qu i c k d esc r i pt i o n o f
s o m e o f t h e k e y pr o p e r t i e s .
(Name)
T h i s p r o p e r t y i s l i s t e d i n pa r e n t h e s es so t h a t i t a p pe a r s a t t h e t o p o f
pr o p e r t i e s w i n do w . T h e N a m e pr o p er t y i s h o w y o u w i l l a c c es s t h i s
c o n t r o l i n y o u r V I S U A L B A S I C c o d e. A l l c o n t r o l s h a v e N a m e pr o p er t y .
ActiveControl
D e t e r m i n e s w h i c h c o n t r o l o n t h e f o r m o r M D I f o r m h a s f o c u s a n d v i si bl e. T h i s
pr o p e r t y a l l o w s y o u t o f i n d t h e n a m e o f c o n t r o l a n d t h e t y pe o f c o n t r o l a n d
a c c e s s t h e pr o p er t i e s o f t h e c o n t r o l .
ActiveForm
R e t u r n s w h i c h f o r m o n t h e sc r e en o r w i t h i n a n M D I f o r m h a s t h e f o c u s. A
F o r m h a s t h e f o c u s w h e n i t i s s e l ec t e d o r a c t i v e f o r m o n t h e sc r ee n .
Alignment
This property controls how text will be displayed in the control. It has
t h r e e v a l u e s : L e f t - J u st i f i e d, R i gh t - J u s t i f i ed , C e n t er e d. Y o u c a n c h o o s e
a n y o f t h e s e f r o m t h e dr o p do w n l i s t .
Appearance
T h i s p r o p e r t y a l l o w s y o u t o c o n t r o l w h e t h er t h e c o n t r o l i s sh o w n i n
3 do c u m e n t o r s h o w n f l a t . W i n do w s 9 8 u s e s 3 do c u m en t c o n t r o l s by
default.
BackColor
S e t s t h e b a c k gr o u n d c o l o r y o u r c o n t r o l , V I S U A L B A S I C p r o v i de s so m e
pr e s e t s y s t e m c o l o r s t h a t y o u sh o u l d u s e s o t h a t y o u r a p p l i c a t i o n c a n
u s e t h e c o l o r s s et i n C o n t r o l P a n el by t h e u s er
Bold
T h e B o l d p r o pe r t y d e t e r m i n e s w h e t h er t h e t e x t c o n t r o l l e d b y a st d F o n t
o bj e c t i s bo l d f a c e. W h en i t i s bo l df a c e, t h e t ex t a p p e a r s t h i c k e r a n d
da r k e r . T h i s pr o p er t y c a n b e m o d i f i e d a t r u n t i m e o r de s i g n t i m e( u s i n g
f o n t d i a l o g) .
BookMark
T h i s pr o p e r t y i s u s e d t o sa v e a pl a c e i n t h e r ec o r d s et so t h a t i t m a y b e
r e t u r n e d t o l a t e r . I f t h e bo o k m a r k a b l e pr o p er t y o f t h e r ec o r d s et i s t r u e, t h en
y o u c a n u s e t h e B o o k M a r k pr o p er t y t o s a v e t h e c u r r en t p l a c e o f t h e r ec o r d s et
a n d t h e n u s e t h a t v a l u e t o r e t u r n t h er e l a t er .
BorderStyle
T h i s p r o p e r t y l e t s y o u a d d o r r em o v e a bo r d er a r o u n d y o u r c o n t r o l . I t
h a s f o l l o w i n g v a l u e s: 0 N o n e 1 F i x e d S i n g l e
Cancel
U s e t h i s p r o pe r t y t o a c c e ss t h e c o n t r o l b y pr e ss i n g E sc k e y . U s e d w i t h
C o m m a n d B u t t o n s. P r e ss i n g E sc k ey w i l l r u n t h e c o d e a s so c i a t e d w i t h
that control.
Caption
U s e t h i s p r o pe r t y t o sp e c i f y t h e t e x t t o b e di s pl a y ed a s c a pt i o n s f o r
c o n t r o l s l i k e C o m m a n d B u t t o n , L a b el et c . T o a dd H o t k ey f o r y o u r
c o n t r o l y o u c a n u s e a n a m p er s a n d ( & ) be f o r e t h e c h a r a c t er i n
pr o p e r t y . F o r E x a m p l e, i f a C o m m a n d B u t t o n h a s t h e c a p t i o n “ & A dd ” ,
y o u c a n a c c e s s t h i s c o n t r o l a t r u n t i m e by c h o o s i n g A l t + A
Col, Row
U s e t h e s e p r o p e r t i es t o d et er m i n e o r s et t h e a c t i v e c o l u m n o r r o w i n a
gr i d. O n c e a c t i v e c el l i s s et , y o u c a n u s e o t h er p r o p er t i e s o n t h a t c el l ,
s u c h a s t e x t a n d c e l l P i c t u r e. T h i s p r o pe r t y o n l y r e a d a bl e a n d w r i t a b l e
at run time.
Cols, Rows
U s e t h e C o l s a n d R o w s p r o p er t i e s t o r e a d o r s e t t h e t o t a l n u m b e r o f
c o l u m n s o r r o w s i n a gr i d c o n t r o l . T h e s e p r o p e r t i e s se t u p t h e g r i d w i t h
e n o u gh c e l l s t o i n c l u d e t h e en t i r e a r r a y .
Colwidth, RowHeight
U s e t h e s e pr o p er t i e s t o s et t h e w i d t h a n d h e i gh t o f a c o l u m n o r r o w i n
a g r i d c o n t r o l . T h e s e p r o p er t i e s a r e a v a i l a bl e a t r u n t i m e.
ControlBox
T h i s p r o p e r t y go v er n s w h et h e r a c o n t r o l bo x a p p e a r s i n t h e t o p - l ef t
c o r n e r o f a f o r m . T h i s pr o p er t y i s r e a d o n l y a t r u n t i m e.
Copies
T h e C o p i e s p r o pe r t y s e t s o r r et u r n s t h e n o . o f c o p i e s t o b e p r i n t e d . N o t
a v a i l a bl e a t d e si gn t i m e. I f y o u r pr i n t er do e s n o t su ppo r t c o l l a t i n g, y o u
s h o u l d s e t t h e c o pi e s pr o p er t y t o 1 . , o r a n er r o r w i l l o c c u r .
NetScape COMPUTER ACADEMY
14
C u r r e n t X , C u r r e n t Y T h e s e p r o pe r t i e s pr o v i d e t h e h o r i z o n t a l ( c u r r en t X ) a n d v er t i c a l
( c u r r e n t Y ) c o o r di n a t e s o n a f o r m , pr i n t er o bj ec t et c . t h e s e p r o pe r t i e s
b e g i n w i t h t h e v a l u es s e t i n t h e S c a l eL e f t a n d S c a l eT o p pr o p er t i es o f
t h e f o r m o r pr i n t er o b j e c t . A n y t i m e a d r a w n o b j ec t a p p e a r s o n t h e
f o r m , o r pr i n t e r t h es e pr o p er t i e s c h a n g e.
DatabaseName
T h e D a t a b a s e N a m e p r o p er t y r e a d s o r s et s t h e n a m e a n d l o c a t i o n o f t h e
da t a b a s e . S e t t i n g t h e v a l u e i n t h e D a t a c o n t r o l ’ s D a t a b a s eN a m e pr o p er t y
w h i l e y o u r pr o gr a m i s r u n n i n g c h a n ge s t h e d a t a b a s e t o w h i c h t h e c o n t r o l i s
c o n n e c t e d. Y o u m u s t u s e t h e R ef r e sh m et h o d t o r eo p en t h e c o n t r o l a f t er
c h a n gi n g da t a b a s e s.
DataField
T h e D a t a F i e l d p r o p er t y s p ec i f i es w h a t f i el d a p a r t i c u l a r c o n t r o l w i l l
bi n d t o i n t h e da t a b a s e. T h e de v el o p er s et s t h e d a t a so u r c e pr o p er t y t o
bi n d t h e c o n t r o l t o a n a p pr o pr i a t el y i n i t i a l i z ed d a t a c o n t r o l . T h e
da t a f i e l d pr o p e r t y t h en s pec i f i e s w h i c h f i el d i n t h e sp ec i f i e d d a t a
c o n t r o l ’ s r e c o r ds e t w i l l b e d i sp l a y e d i n t h e bo u n d c o n t r o l . T h i s p r o p e r t y
c a n b e r e a d a n d w r i t e a t de s i g n a n d r u n t i m e.
DataMode
T h i s pr o p e r t y c o n t r o l s i f t h e c o n t r o l w o r k s i n bo u n d o r u n bo u n d m o d e. F o r
e . g. A D B G r i d c a n w o r k i n t w o m o de s. I t c a n be bo u n d t h e t r a di t i o n a l w a y t o
a D a t a c o n t r o l o r y o u c a n f i l l i t w i t h d a t a m a n u a l l y w h en i t i s i n t h e u n b o u n d
DataMode.
DataSource
T h e D a t a S o u r c e pr o p er t y i s a l w a y s u s e d i n c o n j u n c t i o n w i t h t h e
D a t a F i e l d pr o p e r t y t o bi n d a d a t a a w a r e c o n t r o l t o a d a t a c o n t r o l o n a
f o r m . T h e d a t a c o n t r o l m u s t r es i d e o n t h e s a m e f o r m a s t h e o bj ec t
b e i n g bo u n d a n d m u s t b e p r o pe r l y i n i t i a l i z e d t o a l l o w f o r bi n d i n g.
I n i t i a l i z i n g c o n s i st s o f s et t i n g a v a l i d d a t a ba s e n a m e a n d a v a l i d r ec o r d
s o u r c e f o r t h e d a t a c o n t r o l . A t r u n t i m e, y o u m a y n e ed t o u s e t h e d a t a
c o n t r o l ’ s R e f r e s h m e t h o d t o es t a b l i sh t h e l i n k t o t h e da t a b a s e a n d
a c t i v a t e t h e bi n d i n g o f t h e da t a a w a r e c o n t r o l s.
Default
U s e t h i s p r o pe r t y t o A c c e ss t h e c o n t r o l b y pr e ss i n g E n t er K e y . F o r E . g.
Y o u c a n s e t D e f a u l t p r o p er t y o f a C o m m a n d B u t t o n t o r u n t h e c o de
a s s o c i a t e d w i t h i t by pr e s si n g E n t er k e y .
DragIcon
T h e D r a g I c o n pr o p er t y i n di c a t e s w h a t i c o n w i l l b e u se d a s a po i n t er du r i n g a
dr a g o p e r a t i o n . T h i s pr o p er t y i s a u s ef u l w a y t o i n d i c a t e w h a t t y p e o f d r a g
o p e r a t i o n i s b e i n g i n i t i a t e d. I f u s e d w i t h t h e D r a g O v e r a n d D r a gD r o p e v en t s,
t h i s p r o pe r t y c a n c h a n g e t h e po i n t er i c o n du r i n g a d r a g o p er a t i o n .
DragMode
T h i s p r o p e r t y o f a c o n t r o l i n d i c a t e s w h et h e r i t m a y b e d r a g g e d i n a dr a g
o p e r a t i o n w i t h o u t t h e u s e o f a D r a g m e t h o d e x pr e s si o n . E v er y c o n t r o l h a s a n
i n i t i a l s e t t i n g o f m a n u a l . T h i s i n di c a t e s t h a t t h e c o n t r o l m a y n o t n o r m a l l y b e
dr a gg e d. A d r a g o p e r a t i o n m a y o n l y b e b e gu n o n a c o n t r o l w i t h a m a n u a l
s e t t i n g b y u s i n g t h e D r a g m e t h o d. W i t h a c o n t r o l ’ s D r a gM o d e pr o p er t y s et t o
a u t o m a t i c , a dr a g o p er a t i o n a u t o m a t i c a l l y b e g i n s w h en t h e u s er p r e s s e s a n d
h o l d s do w n a m o u se bu t t o n o v er t h e c o n t r o l .
DrawMode
T h e D r a w M o d e pr o p er t y d et er m i n e s w h a t h a p p en s t o a sh a p e’ s c o l o r s
w h e n t h e s h a pe a pp e a r s o n t h e sc r e en . T h i s pr o p er t y m o d i f i e s t h e
c o l o r s o f F i l l C o l o r , F o r e C o l o r , a n d B a c k C o l o r pr o p er t i e s o f a f o r m . Y o u
c a n r e a d a n d w r i t e t h i s pr o p er t y a t d es i gn a n d r u n t i m e.
DrawStyle
T h i s p r o p e r t y c o n t r o l s t h e a p p ea r a n c e o f a l i n e s u r r o u n d i n g a d r a w n
s h a p e o n a f o r m , p i c t u r e bo x o r pr i n t e r o b j ec t . A n o bj ec t ’ s D r a w S t y l e
pr o p e r t y d e f a u l t s t o p r o du c i n g a so l i d l i n e. Y o u c a n c h a n g e t h e s et t i n g s
t o d a s h e d l i n e , do t t e d l i n e, da sh - do t l i n e o r da s h - do t - do t l i n e e t c .
w h e n t h e D r a w S t y l e p r o p er t y i s i n v i si bl e, t h e l i n e a r o u n d s h a p e d o e s
n o t a p p e a r . T h i s pr o p er t y o n l y a f f ec t s a sh a p e w h en i t i s b e i n g d r a w n .
A n y c h a n g e s m a d e t o t h i s p r o pe r t y h a v e n o ef f ec t o n t h o se i m a ge s t h a t
h a v e a l r e a d y b e en dr a w n .
DrawWidth
T h e D r a w W i d t h pr o p er t y se t s t h e w i dt h o f l i n e s dr a w n o f a f o r m ,
pi c t u r e bo x o r pr i n t e r o b j ec t . A v a l u e g i v e n t o t h e D r a w W i d t h p r o pe r t y
r e pr e s e n t s t h e t h i c k n e ss o f t h e l i n e i n pi x el s. W h en t h i s v a l u e
i n c r e a s e s , t h e bo r d er a r o u n d a d r a w n sh a pe su c h a s c i r c l e o r s qu a r e
thickens.
Drive
T h i s p r o p e r t y r e a d s o r s et s t h e dr i v e c u r r en t l y s el ec t e d i n a D r i v e l i st
bo x . D i r e c t o r i e s o n t h e s el ec t e d dr i v e c a n b e di s pl a y e d b y a n
a s s o c i a t e d d i r e c t o r y l i st bo x . T h i s p r o p e r t y i s u s ef u l f o r r e s po n di n g
w h e n t h e u s e r c h a n g es t h e c u r r e n t dr i v e.
Enabled
I f t h i s pr o p e r t y i s s et t o T r u e, t h e u s er c a n a c t i v a t e o r f o c u s o n t h i s
c o n t r o l , i f t h i s p r o p e r t y i s s et t o F a l se u s er c a n n o t a c c es s t h i s c o n t r o l
a t r u n t i m e a n d i s d i s pl a y ed i n a gr a y sh a d e.
NetScape COMPUTER ACADEMY
15
Exclusive
T h e E x c l u s i v e p r o p e r t y o f D a t a C o n t r o l r e a d s o r se t s w h e t h er a d a t a b a s e i s
o p e n e d f o r s i n g l e - u s er o r m u l t i - u s e r a c c es s. R e a d a n d w r i t e a t t r i bu t e bo t h
d e s i gn a n d r u n t i m e. .
FileName
T h e F i l e N a m e pr o p er t y e n a bl e s y o u r p r o gr a m t o r e a d t h e f i l en a m e t h a t
i s c u r r e n t l y s e l e c t e d i n a F i l e l i st bo x , o r t o s et a n ew c u r r en t f i l e
n a m e . T h e s t r i n g r et u r n e d b y t h i s pr o p er t y o n l y r e t u r n s o n l y t h e f i l e
n a m e w i t h o u t dr i v e a n d di r ec t o r y n a m e. U s e t h e pa t h pr o p er t y t o
d e t e r m i n e t h a t i n f o r m a t i o n . T h i s p r o p e r t y c a n b e se t o r r e a d o n l y a t
run time.
FillColor
T h e F i l l C o l o r pr o p er t y s e t s t h e c o l o r o f t h e i n t er i o r o f c i r c l e s a n d bo x e s
dr a w n i n a c o n t a i n e r . D e f i n e a n o bj ec t ’ s F i l l C o l o r pr o p er t y ei t h er
di r e c t l y w i t h h e x a dec i m a l n u m be r , o r w i t h Q B C o l o r o r R G B f u n c t i o n s.
C h a n g e s t o t h e F i l l C o l o r pr o p er t y h a s n o e f f ec t o n pr e v i o u s l y dr a w n
o bj e c t s .
FixedCols, FixedRows
U s e t h e F i x e dC o l s a n d F i x e dR o w s p r o pe r t i e s t o r e a d o r s et t h e
n u m b e r o f f i x e d r o w s o r c o l u m n s o n t h e l ef t a n d t o p o f a g r i d.
F i x e d r o w s a n d c o l u m n s a r e t y pi c a l l y u s e d f o r h e a d i n g s.
Font
D i s p l a y s a di a l o g bo x t o s pec i f y F o n t n a m e, F o n t S t y l e, F o n t S i z e o f t h e
c o n t r o l . W h e n s el ec t i n g f o n t s, y o u n e e d t o r em e m b er t h a t n o t ev e r y
s y s t e m h a s e v e r y f o n t . H o w e v e r , y o u c a n a l w a y s u se c er t a i n f o n t s t h a t
a r e i n s t a l l e d w i t h W i n do w s l i k e T i m es N ew R o m a n , A r i a l , C o u r i e r N ew
etc.
FontCount
T h e F o n t C o u n t pr o p er t y i n d i c a t e s t h e n u m b er o f pr i n t er o r sc r e en f o n t s
a v a i l a bl e , d e p e n di n g o n w h et h e r y o u s p ec i f y t h e sc r e en o r pr i n t er
o bj e c t . F o r s c r e en f o n t s, t h e v a l u e r et u r n ed en c o m p a ss e s a l l t h e
W i n do w s S c r e e n f o n t s a s w el l a s sc a l a bl e f o n t s.
Fonts
T h i s p r o p e r t y p r o v i de s t h e n a m e o f o n e o f t h e a v a i l a bl e f o n t s o f t h e
s c r e e n o r pr i n t e r , d ep en di n g o n w h i c h o f t h e s e o bj ec t s y o u sp ec i f y a n d
w h i c h f o n t n u m be r y o u u s e w i t h i n d ex . T h e i n d ex pr o p er t y m a y b e
c h a n g e d w h e n e v er t h e a c t i v e pr i n t e r i s c h a n g e d o r n ew f o n t i s a d d e d
t o t h e s y s t e m w i t h C o n t r o l P a n el .
Forecolor
T h i s i s t h e F o r e gr o u n d c o l o r f o r t h e c o n t r o l . A n y t ex t i n t h e c o n t r o l w i l l
b e s h o w n i n t h i s c o l o r . T h e sa m e r u l e s a p pl y t o p i c k i n g f o r e gr o u n d
c o l o r s a s t h e y do t o b a c k g r o u n d c o l o r s f o r t h e B a c k C o l o r p r o p e r t y
GridLines, GridLinesFixed
U s e t h i s p r o pe r t y t o r e a d o r se t t h e st y l e o f a gr i d’ s
gr i d l i n e s i n t h e n o n f i x e d a n d f i x e d c e l l s. T h i s p r o p er t y i s
a v a i l a bl e a t d e si gn t i m e a n d r ea d a bl e a t a n d w r i t a b l e a t
run time.
Height, Width
B y d e f a u l t H e i g h t a n d W i d t h a r e g i v en i n t w i p s. A t w i p i s a p pr o x i m a t el y
1 / 1 4 4 0 i n c h . T h i s pr o p er t y l e t s t h e u s er t o s e t t h e H e i gh t a n d W i dt h o f
the control
Icon
T h i s p r o p e r t y d e t e r m i n e s t h e i c o n di s pl a y e d o n t h e sc r ee n w h e n a f o r m
i s i n a m i n i m i z e d w i n do w st a t e. O n l y a v a i l a bl e w i t h F o r m a n d M D I
f o r m , a n d t h e f i l e m u s t b e i n a st a n d a r d i c o n f o r m a t .
Index
I n l a r ge i n t e r f a c e f o r m s, y o u m a y h a v e m o r e c o n t r o l s o f t h e s a m e t y p e.
T o v o i d du pl i c a t i o n o f c o di n g f o r c o n t r o l s V I S U A L B A S I C pr o v i d e s a
f e a t u r e k n o w n a s c o n t r o l a r r a y . A c o n t r o l a r r a y l et s y o u g r o u p i d en t i c a l
c o n t r o l s t h e s a m e n a m e bu t a bl e t o a c c e s s t h e m by a n u m b er . T h e
I n d e x pr o p e r t y h o l d s a n u m b er f o r a c o n t r o l i n a c o n t r o l a r r a y .
Interval
T h e I n t e r v a l p r o pe r t y o f a t i m e r c o n t r o l i n d i c a t e s t h e l en gt h o f t i m e t o
w a i t b e f o r e pr o c e s si n g t h e T i m e r e v en t . T h i s p r o p er t y m a y b e c h a n g e s
e i t h e r a t de s i g n o r r u n t i m e. E a c h t i m e r c o n t r o l ’ s i n t e r v a l p r o p e r t y i s
i n d e p e n d e n t o f t h e i n t er v a l p r o pe r t i es o f o t h er t i m e r c o n t r o l o n t h e
same form.
Italic
T h i s p r o p e r t y d e t e r m i n e s w h et h er t h e t e x t c o n t r o l l e d b y a S t d F o n t
o bj e c t a p pe a r s a s I t a l i c t y p e. W h e n i t i s i t a l i c , t h e t ex t i s sl a n t e d, o r
s c r i p t l i k e . T h i s pr o p er t y c a n b e c h a n g e d a t de s i gn t i m e ( u si n g F o n t
D i a l o g) a n d r u n t i m e.
Left, Top
T h e L e f t a n d T o p pr o p er t i e s a r e t h e H o r i z o n t a l a n d V er t i c a l po s i t i o n s
r e s p e c t i v e l y o f t h e u p p e r - l ef t p o i n t o f t h e c o n t r o l .
List
T h e L i s t pr o p e r t y h a s t w o f u n c t i o n s. F i r s t , i t c a n se t t h e v a l u e o f a l i st
e n t r y i n a L i s t o r C o m bo B o x ; t h a t i s, s p ec i f y a n i t e m t o b e di s pl a y ed o n
a L i s t . S e c o n d, i t c a n r e a d t h e c u r r en t v a l u e ( c o n t e n t s) o f a l i st en t r y
f r o m a l i s t o r c o m b o bo x . T h i s pr o p er t y c a n n o t b e s e t a t d e si gn t i m e
NetScape COMPUTER ACADEMY
16
ListCount
T h e L i s t C o u n t pr o p er t y i s r ea d a t r u n t i m e t o d e t er m i n e t h e n u m b e r o f
l i s t e d i t e m s i n a L i st , C o m bo B o x , D r i v eL i st , F i l e L i st et c . T h i s i s r ea d o n l y pr o p e r t y , a n d c a n n o t b e s e t b y t h e pr o gr a m a t d es i gn o r r u n t i m e.
ListIndex
T h e L i s t I n de x p r o pe r t y r et u r n s t h e i n d ex n u m be r o f t h e s el ec t e d i t e m
i n a l i s t . T h e s e l ec t e d i t em i s t h e o n e t h a t h a s b e en p r ev i o u sl y s e t b y
t h e pr o g r a m , o r h i gh l i gh t e d by t h e u s er u s i n g a r r o w k ey s o r b y c l i c k i n g
o n t h e i t e m . A s s i gn i n g a v a l u e t o t h e L i st I n d e x p r o p er t y c h a n g e s t h e
s e l e c t e d i t e m t o t h e en t r y a t t h e s p ec i f i e d i n d ex . T h i s pr o p er t y c a n n o t
b e s e t a t d e s i gn t i m e. I f n o i t e m i s s e l ec t e d t h i s pr o p er t y r e t u r n s a
value -1
Locked
W h e n t h i s p r o pe r t y i s s e t t o T r u e, u s er c a n s el ec t t h e d a t a i n t h i s
c o n t r o l bu t c a n n o t e d i t i t . I f y o u c o m b i n e t h e L o c k e d pr o p er t y w i t h a
ba c k gr o u n d c o l o r c h a n g e, y o u c a n ef f ec t i v e l y u s e o n e w i n do w f o r t w o
pu r po s e s . T h a t i s v i ew i n g a n d e di t i n g. B y de f a u l t t h i s p r o p e r t y i s s e t
to False.
MaskColor
A M a s k c o l o r i s a c o l o r i n ea c h gr a ph i c t h a t V I S U A L B A S I C a s su m e s t o
b e t r a n s pa r e n t .
Max
T h e M a x pr o p e r t y s et s o r r e t u r n s t h e m a x i m u m v a l u e o f a sc r o l l b a r .
T h i s p r o p e r t y c a n b e s et a t d e s i g n t i m e, a n d s e t o r r e a d a t r u n t i m e.
F o r a S c r o l l B a r c o n t r o l t h e m a x i m u m v a l u e i s 3 2 7 6 7 , b ec a u s e i t i s a n
i n t e ge r v a l u e .
MaxButton
C o n t r o l s w h e t h e r t h e m a x i m i z e i c o n bu t t o n a pp e a r s i n t h e t o p - r i gh t
c o r n e r o f t h e f o r m a t r u n t i m e. T h i s pr o p er t y i s r e a do n l y a t r u n t i m e.
MaxLength
T h i s p r o p e r t y s e t s t h e m a x i m u m a m o u n t o f t e x t t h e T ex t B o x i s a l l o w e d
t o h o l d. I f t h i s v a l u e s i s se t t o z e r o , t h e T ex t B o x i s n o t l i m i t ed .
MdiChild
T h e M D I C h i l d p r o pe r t y d ef i n e s w h et h e r a f o r m i s a r e gu l a r , n o n - M D I
f o r m o r M D I c h i l d f o r m . T h i s p r o p e r t y i s r ea d o n l y a t r u n t i m e. A C h i l d
f o r m c a n b e o n l y di s pl a y e d i n si d e a P a r en t f o r m c a l l e d M D I f o r m .
Min
T h e M i n p r o p e r t y o f a S c r o l l b a r c o n t r o l s et s o r r e t u r n s t h e m i n i m u m
v a l u e . T h i s pr o p er t y c a n be s et a t de s i gn t i m e o r r u n t i m e. t h e
m i n i m u m v a l u e o f a sc r o l l ba r c o n t r o l i s – 3 2 7 6 8 b ei n g a n i n t eg er .
MinButton
T h i s p r o p e r t y c o n t r o l s w h et h e r t h e m i n i m i z e bu t t o n o n t h e f o r m i s
di s pl a y e d o r n o t . T h i s pr o p er t y i s r e a d o n l y a t r u n t i m e.
MouseIcon
I f y o u w i s h t o s h o w a c u st o m i c o n w h i l e t h e c u r s o r i s o v er a c o n t r o l ,
s e t t h e M o u s e I c o n pr o p e r t y t o t h a t pi c t u r e.
MultiLine
T h e M u l t i L i n e p r o p e r t y l et s y o u h a v e m u l t i p l e l i n e s o f t ex t i n y o u r
c o n t r o l l i k e T e x t B o x . B y D ef a u l t t h i s p r o p e r t y i s s et t o f a l s e t h a t m e a n s
y o u c a n e n t e r o n l y o n e l i n e o f t ex t . W h en y o u se t t h i s pr o p er t y t o t r u e
t h e E n t e r k e y c a n b e u s e d t o a d d a n ew l i n e t o t h a t T e x t B o x .
MultiSelect
T h i s p r o p e r t y l e t s t h e u s er c h o o s e m o r e t h a n o n e i t e m a t a t i m e f r o m a
L i s t B o x , C o m bo B o x et c . I t h a s t h r e e v a l u e s. 0 – S i n gl e S el ec t i o n o n l y
( D e f a u l t ) , 1 – S i m pl e m u l t i p l e s el ec t i o n , 2 – E x t e n d e d m u l t i pl e
selection.
Options
T h e o p t i o n s p r o pe r t y o f a D a t a C o n t r o l i s u s ed t o s et c h a r a c t er i s t i c s o f t h e
D a t a c o n t r o l ’ s R ec o r d s et . T h i s pr o p er t y i s a v a i l a bl e t o r e a d a n d w r i t e
a t t r i bu t e bo t h d e si gn a n d r u n t i m e.
Orientation
T h e O r i e n t a t i o n p r o pe r t y s et s o r r et u r n s a v a l u e i n d i c a t i n g w h et h e r y o u r
o u t p u t w i l l b e p r i n t e d i n po r t r a i t o r l a n d sc a p e m o d e. T h i s pr o p er t y i s n o t
a v a i l a bl e a t t r i bu t e de s i gn t i m e. T h e s e t t i n g s o f t h i s pr o p er t y a r e 1 v b P R O R P o r t r a i t , 2 - v b P R O R L a n dsc a p e.
Page
T h e P a g e p r o pe r t y r et u r n s t h e c u r r en t pa g e n u m b er i n P r i n t er o b j ec t .
Y o u c a n u s e t h i s pr o p er t y t o pu t t h e pr o p er pa g e n u m b er o n e a c h
pa g e . N o t a v a i l a b l e a t d e si gn t i m e, r e a d - o n l y a t r u n t i m e .
PasswordChar
U s e t h e P a s s w o r d C h a r p r o p er t y t o s e t u p a t ex t b o x f o r pa s sw o r d en t r y .
B y d e f a u l t , t h i s pr o p er t y di s pl a y s t h e c h a r a c t e r t h a t t h e u s er t y p e s. I f
y o u s e t a n y t h i n g o t h e r t h a n em pt y s t r i n g, i t w i l l di s pl a y t h e f i r st
c h a r a c t e r c o n t a i n e d i n t h e pr o p er t y se t t i n g i n st e a d o f c h a r a c t e r t y p e d
by t h e u s e r . T h i s gi v es t h e u s er v i su a l f e ed b a c k f o r e a c h c h a r a c t er
t y p e d w i t h o u t di s pl a y i n g t h e a c t u a l c h a r a c t e r s. M o st w i n do w s pr o g r a m s
u s e t h e a s t e r i s k ( * ) c h a r a c t er a s p a ssw o r d c h a r a c t e r .
Path
T h i s p r o p e r t y s e t s o r r e a d s t h e c u r r en t l y o pe n e d di r ec t o r y p a t h i n a
di r e c t o r y l i s t bo x , o r t h e c u r r e n t di r ec t o r y i n a f i l e l i st bo x . A t d e s i gn
t i m e t h i s p r o p e r t y i s s e t t o c u r r en t d ef a u l t d i r ec t o r y , a n d c a n n o t b e
c h a n g e d. T h i s p r o pe r t y c a n b e s et o r r e a d a t r u n t i m e.
NetScape COMPUTER ACADEMY
17
Pattern
T h e pa t t e r n pr o p e r t y s et s o r r e a d s t h e c u r r en t l y s el ec t e d f i l e m a t c h i n g
pa t t e r n i n a F i l e l i st bo x . O n l y f i l e s t h a t m a t c h t h e pa t t er n pr o p er t y a r e
di s pl a y e d i n a f i l e l i st b o x . B y d ef a u l t t h e pr o p er t y i s s e t t o ( “ * . * ” ) .
Y o u c a n c h a n g e t h e p a t t er n pr o p er t y t o d i sp l a y di f f er en t f i l e t y p es
using semicolon like *.BMP; *.GIF; *.JPEG; *.WMF
Picture
S e t t h e p i c t u r e t o b e d i s pl a y e d o n t h e c o n t r o l . U s ed w i t h I m a g e,
Picture control, Command button etc.
RecordCount
T h e R e c o r dC o u n t p r o p er t y a l l o w s t h e a p pl i c a t i o n t o s ee h o w m a n y
r e c o r d s a r e i n a r ec o r d s et . H o w e v e r , t h i s n u m be r i s n o t a c c u r a t e u n t i l
t h e e n t i r e r e c o r d s et h a s b ee n r ea d. A M o v eL a st m e t h o d w i l l gu a r a n t ee
a l l t h e r e c o r d s h a v e b e e n r e a d a n d t h e R ec o r dC o u n t p r o pe r t y h a s t h e
correct value.
Recordset
T h e R e c o r d s e t p r o pe r t y s et s o r r et u r n s a R ec o r d s et o bj ec t d ef i n e d by a
D a t a c o n t r o l ’ s R ec o r dS o u r c e pr o p er t y o r a n ex i s t i n g R ec o r d s e t o b j ec t .
T h e R e c o r d s e t o b j ec t c a n b e a n y o f t h e t h r ee t y p es d ef i n e d f o r t h e
R e c o r d s e t o bj e c t .
Recordsource
T h e R e c o r dS o u r c e pr o p e r t y s et s o r r e t u r n s t h e u n d er l y i n g so u r c e o f t h e
D a t a c o n t r o l ’ s r ec o r d s et . T h i s so u r c e c a n b e a t a bl e, a S Q L s t a t e m en t ,
o r a Q u e r y D e f o bj ec t .
RightToLeft
T o s e t c h a r a c t e r s t o R i g h t T o L ef t f o r l a n gu a g es l i k e A r a b i c a n d H e br ew .
RowSource
T h e R o w S o u r c e pr o p er t y pr o v i d e s t h e D B C o m bo a n d t h e D B L i s t w i t h
t h e i r s o u r c e r e c o r d s et . T h e B o u n d C o l u m n , B o u n d T ex t , a n d L i st F i e l d a r e
d e p e n d e n t u po n t h i s s et t i n g f o r t h e i r d a t a . Y o u m u s t s e t t h e
R o w S o u r c e pr o p er t y a t d e si gn t i m e a n d c a n n o t c h a n g e i t du r i n g
runtime.
ScaleHeight
T h e S c a l e H e i gh t p r o p e r t y m ea su r e s t h e u s a bl e h ei gh t o f a f o r m ,
pi c t u r e bo x o r pr i n t e r o b j ec t , ex c l u di n g t h e bo r d e r o r t i t l e ba r o f t h e
o bj e c t . Y o u c a n c h a n g e t h i s v a l u e a t d e si gn t i m e o r r u n t i m e. A n ew
v a l u e b e c o m e s t h e u s er - d ef i n e d pr o po r t i o n a l m e a su r em en t o f t h e f o r m ,
pi c t u r e bo x , o r pr i n t e r o b j ec t .
ScaleLeft
T h e S c a l e L e f t pr o p er t y s et s o r d et er m i n e s t h e l ef t c o o r d i n a t e o f t h e
u p p e r l e f t c o r n e r o f a f o r m , p i c t u r e bo x , o r p r i n t er o bj ec t , e x c l u di n g
t h e bo r d e r o f t h e o b j ec t .
ScaleMode
T h i s p r o p e r t y i n di c a t e s w h a t u n i t o f m e a su r e t o u s e f o r t h e f o r m ,
pi c t u r e bo x o r pr i n t e r o b j ec t . U n l e s s t h e sc a l eM o d e p r o pe r t y i s 0 , a l l t h e
di m e n s i o n s o f t h e f o r m s, c o n t r o l s, a n d gr a ph i c a l o bj ec t s u s e t h i s
m e a s u r e m e n t . T h e d ef a u l t u n i t i s T w i p s, w h i c h e qu i v a l en t t o 1 / 1 4 4 0
i n c h . T h e v b c o n st a n t s y o u c a n u se d f o r t h i s pr o p er t y a r e 0 - v bU s er , 1 v b T w i p s , 2 - v b P o i n t s, 3 - v bP i x e l s, 4 - v bC h a r a c t e r s, 5 - v bI n c h es, 6 v b M i l l i m e t e r s , 7 - v b C e n t i m e t e r s.
ScaleTop
T h i s p r o p e r t y s e t s o r r e a d s t h e c o o r di n a t e s o f t h e t o p o f a f o r m ,
pi c t u r e bo x o r pr i n t e r o b j ec t ex c l u di n g bo r d er o r t i t l e ba r o f t h e o bj ec t .
ScaleWidth
T h i s p r o p e r t y s e t s o r d et er m i n e s t h e u sa b l e w i d t h o f a f o r m , M D I f o r m ,
P i c t u r e bo x o r pr i n t e r o b j ec t ex c l u di n g t h e bo r d er a n d t i t l e b a r . T h i s
w i d t h i s m e a s u r ed i n t h e u n i t s i n di c a t e d by sc a l e m o d e pr o p er t y .
ScrollBars
T h i s p r o p e r t y l e t s y o u s el ec t h o r i z o n t a l , v er t i c a l , o r bo t h sc r o l l b a r s f o r
this control
Selected
T h e s e l e c t e d p r o pe r t y l e t s y o u d e t er m i n e w h i c h i t e m s i n a m u l t i pl e
s e l e c t i o n l i s t a r e s el ec t e d. T h i s pr o p er t y i s a n a r r a y o f T r u e a n d F a l s e
v a l u e s , w i t h o n e en t r y f o r e a c h i t e m i n t h e L i st .
SelLength
T h e S e l L e n gt h pr o p er t y i s u se d t o s et o r r e t u r n t h e n u m b er o f s el ec t e d
c h a r a c t e r s w i t h i n a n o bj ec t . C h a r a c t e r s c a n b e s el ec t e d by t h e u s er
u s u a l l y f o r e d i t i n g. Y o u r pr o gr a m c a n a l so s el ec t a po r t i o n o f t ex t i n a
T e x t B o x . T h i s pr o p er t y c a n b e s et a n d r e a d a t r u n t i m e o n l y .
SelStart
T h e S e l S t a r t pr o p er t y i s u s e d t o s e t o r r et u r n t h e st a r t i n g p o s i t i o n o f
s e l e c t e d t e x t w i t h i n a n o bj ec t . I f t h er e i s n o s el e c t e d t ex t , t h i s
pr o p e r t y s e t s o r r et u r n s t h e po si t i o n o f t h e bo x ’ s i n s er t i o n po i n t .
SelText
T h e S e l T e x t pr o p er t y r e pl a c e s o r r et u r n s t h e c u r r en t l y se l ec t e d t ex t
w i t h i n a C o n t r o l . U s er s c a n s e l ec t t ex t e i t h e r b y u si n g m o u se o r
k e y bo a r d o r by a p r o gr a m a c t i o n
Size
T h e S i z e pr o p e r t y o f t h e S t d F o n t o bj ec t d et er m i n e s t h e po i n t s i z e o f
t e x t c o n t r o l l e d b y t h e S t dF o n t o bj ec t . T h i s pr o p e r t y c a n be m o d i f i e d a t
d e s i gn t i m e o r r u n t i m e.
NetScape COMPUTER ACADEMY
18
Sorted
T h e S o r t e d pr o p er t y s p e c i f i e s a t d e si gn t i m e w h et h e r o r n o t t h e i t em s
i n t h e l i s t o r c o m bo b o x a r e t o b e a u t o m a t i c a l l y so r t e d b y V I S U A L
BASIC.
Stretch
T h e S t r e t c h pr o p er t y d et er m i n e s w h et h er t h e i m a g e c o n t r o l s t r et c h e s
t o f i t t h e p i c t u r e o r t h e pi c t u r e st r e t c h e s t o f i t t h e i m a g e c o n t r o l . Y o u
c a n r e a d a n d w r i t e w i t h t h i s p r o pe r t y a t bo t h r u n t i m e a n d d es i gn t i m e.
Style
T h e S t y l e pr o p er t y s e t s t h e s t y l e o f a n o b j ec t . F o r a C o m bo B o x st y l e
pr o p e r t i e s a r e 0 – D r o p do w n C o m bo , 1 – S i m pl e C o m bo , 2 – D r o p do w n L i s t
a n d f o r a C o m m a n d B u t t o n t h i s p r o pe r t y c a n b e u s ed t o s et t h e S t y l e S t a n d a r d
o r G r a ph i c a l . S e t t h i s p r o p er t y t o s p ec i f y t h e s t y l e o f a C o m m a n d B u t t o n I t
h a s t w o v a l u e s . S t a n d a r d a n d G r a ph i c a l . S et t h e G r a ph i c a l p r o p er t y i f y o u
h a v e t o d i s p l a y pi c t u r e s o n C o m m a n d bu t t o n .
TabIndex
Y o u c a n u s e t h i s pr o p er t y t o de t er m i n e t h e o r d er i n w h i c h t h e u s er
m o v e s t h r o u g h t h e sc r e e n u si n g T a b k e y . C h a n g e t h i s p r o p e r t y i n w h i c h
o r d e r y o u w a n t t o f o c u s o n c o n t r o l s st a r t i n g f r o m Z e r o .
TabStop
I f t h e T a bS t o p pr o p er t y i s F a l s e, t h e u s er c a n n o t r e a c h t h i s c o n t r o l b y
pr e s s i n g T a b K e y . Y o u c a n u se t h i s pr o p er t y f o r c o n t r o l s su c h a s
P i c t u r e B o x c o n t r o l s be i n g u se d a s c o n t a i n er s i n w h i c h y o u do n o t w a n t
t h e u s e r t o a c c i d en t a l l y T a b i n t o .
Text
T h i s p r o p e r t y c o n t a i n s t h e t ex t d i s pl a y e d i n c o n t r o l . A s d ef a u l t V I S U A L
B A S I C a l w a y s p u t t h e n a m e o f t h e c o n t r o l i n t h i s pr o p er t y .
ToolTipText
T h i s p r o p e r t y l e t s y o u p r o v i d e q u i c k , h e l pf u l i n f o r m a t i o n a bo u t w h a t a
c o n t r o l do e s b y pu t t i n g i t i n t h e T o o l T i pT ex t p r o p er t y . I f t h e u s e r
pa u s e s o v e r a c o n t r o l , t h e T o o l T i p t ex t w i l l be d i s p l a y e d. T h i s pr o p e r t y
i s h a n d y t o p r o v i d e m o r e i n f o r m a t i o n t o t h e u s e r a bo u t t h e c o n t r o l .
TopIndex
T h i s p r o p e r t y r e a d s o r s et s t h e t o p m o s t v i si bl e r o w i n a L i st B o x o r t h e
L i s t p a r t o f a C o m bo B o x . T h i s pr o p er t y a l l o w s y o u t o pr o g r a m m a t i c a l l y
d e t e r m i n e w h a t r o w s i n a L i s t a r e v i s i bl e. T h i s p r o p er t y i s o n l y r ea d
a n d w r i t e a t r u n t i m e.
Value
S e t s t h e v a l u e f o r t h e c o n t r o l s l i k e C h ec k B o x , O p t i o n bu t t o n , S c r o l l B a r s
e t c . i t m a y b e i n t e g er v a l u e, T r u e / F a l s e o r a n y pr e d ef i n e d v a l u e s et .
Visible
T h i s p r o p e r t y i n di c a t e s w h et h e r t h e c o n t r o l sh o u l d b e v i si bl e t o t h e
user at run time. It has two values True and False
NetScape COMPUTER ACADEMY
19
Chapter 5
Methods
Methods
M e t h o d i s a n a c t i o n t h a t c a n b e p e r f o r m e d o n o bj ec t s. I n o t h er w o r ds , i n O bj ec t O r i en t ed
P r o gr a m m i n g ( O O P ) , a m e t h o d i s a c o n n ec t e d o r bu i l d i n g pr o c e du r e, a bl o c k o f t h a t c a n b e
i n v o l v e d t o i m pa r t s o m e a c t i o n o n a p a r t i c u l a r o b j ec t .
S o m e Bas ic M e t h o ds
A d d I t e m : - T h e A d dI t e m m e t h o d a d ds a n i t em t o t h e l i st o f a L i s t B o x , C o m bo B o x c o n t r o l e t c . W h en
t h e l i s t b o x a n d c o m bo bo x o bj e c t s f i r st d i sp l a y , n o i t em s a r e a s si gn e d t o t h e l i s t . Y o u m u st u s e
t h e A d dI t e m m e t h o d t o c r e a t e l i s t e n t r i e s. W h en t h i s m e t h o d e x ec u t e s, t h e v a l u e o f t h e st r i n g
e x pr e s s i o n s p e c i f i e d by t h e I t e m $ a r gu m en t i s a d d e d t o t h e l i s t . Y o u c a n s pec i f y t h e e x a c t
pl a c e m e n t o f t h e n e w i t e m i n t h e l i s t b y pr o v i d i n g t h e I n d e x % a r gu m e n t . I f y o u su p pl y t h e i n d ex
n u m b e r , V I S U A L B A S I C w i l l a d d o n e t o t h e i n d ex n u m b er o f t h e i t e m t h a t c u r r en t l y h o l ds t h e
s pe c i f i e d i n d e x , a n d a l l t h o s e i t e m s t h a t f o l l o w i t . T h e n ew i t e m i s t h en a d d ed t o t h e l i st a t t h e
s pe c i f i e d i n d e x . S u pp l y i n g a n i n d e x n u m b e r i n s e r t s t h e n ew i t em a t t h a t po s i t i o n i n t h e l i s t . I t d o e s
n o t r e p l a c e t h e i t e m t h a t i s c u r r e n t l y a t t h a t po si t i o n . I f y o u s u p p l y a n I n d ex v a l u e , i t m u st be
gr e a t e r t h a n o r e qu a l t o 0 a n d n o t g r e a t er t h a n t h e v a l u e o f L i st C o u n t p r o p er t y
E . g. :
Private Sub Form_Load ( )
C o m bo 1 . A d dI t e m
C o m bo 1 . A d dI t e m
C o m bo 1 . A d dI t e m
C o m bo 1 . A d dI t e m
“ O r a n g e”
“ A p pl e ”
“Grape”
“Mango”
End Sub
A d d N e w : - T h e A d dN e w m e t h o d i s u s e d t o a d d n ew r o w s t o a R ec o r ds e t o bj ec t . I t c a n be u s e d w i t h
a n y T a b l e t y pe o r D y n a s e t t y p e r e c o r d s et . O n c e y o u a p p l i e d t h i s m et h o d t o a r ec o r d se t o bj ec t , a n
e di t bu f f e r i s c r e a t e d w i t h t h e e m p t y r ec o r d i n i t . Y o u c a n t h e n en t e r t h e r e qu i r e d d a t a i n t o t h e
f i e l d s a n d f i n a l l y u s e t h e U p d a t e m e t h o d t o s a v e t h e d a t a t o t h e r ec o r d s et . I f y o u a r e u s i n g a
c o u n t e r f i e l d i t w i l l a u t o m a t i c a l l y i n c r ea s e du r i n g U p da t e.
E . g. :
P r i v a t e S u b C m d A d d_ C l i c k ( )
rs.AddNew
rs!Item=Text1.Text
rs!Qty=Val(Text2.Text)
r s . U pd a t e
End Sub
Arrange:- Use the Arrange method on an MDI form to automatically arrange all MDI child forms
c o n t a i n e d w i t h i n i t . I t h a s f o u r v a l u e s . 0 – v b C a sc a d e, 1 – v bT i l eH o r i z o n t a l , 2 – v bT i l eV e r t i c a l , 3 –
vbArrangeIcons.
E . g. :
P r i v a t e S u b m n u A r r a n g e _ C l i c k ( I n d e x A s I n t e g er )
Select Case Index
Case 0
frmMDI.Arrange
Case 1
frmMDI.Arrange
Case 2
frmMDI.Arrange
Case 3
frmMDI.Arrange
v b C a sc a d e
v bT i l eH o r i z o n t a l
v bT i l eV er t i c a l
v b A r r a n g eI c o n s
End Select
End Sub
B e g i n T r a n s : - T h e B e g i n T r a n s m e t h o d st a r t s a n ew T r a n s a c t i o n w i t h i n a p a r t i c u l a r W o r k sp a c e
o bj e c t ’ s c o l l e c t i o n . T r a n s a c t i o n s a r e u s e d t o h el p en s u r e t h a t c h a n g e s t o t h e d a t a ba s e a r e c o m p l e t e
i n a l l r e s pe c t s b e f o r e b e i n g f i n a l i z e d. S e e A l so C o m m i t T r a n s a n d R o l l B a c k T r a n s m et h o d s.
C i r c l e : - T h i s m e t h o d g e n e r a t e s a c u r v e d sh a p e o n a n i n d i c a t ed o bj ec t o n t h e sc r e en o r p r i n t e r .
T h i s m e t h o d c a n c r e a t e a v a r i e t y o f c u r v e d o bj e c t s i n c l u di n g c i r c l e s, el l i p se s ( o v a l s) a n d a r c s. T h e
o bj e c t o n t h e s c r e e n t o b e dr a w n o n i s a F o r m , P i c t u r eB o x , o r P r i n t e r O bj ec t . I f t h e K e y w o r d S t e p
f o l l o w s t h e w o r d C i r c l e , t h e n X a n d Y c o o r d i n a t e s a r e r el a t i v e t o t h e v a l u e s o f C u r r en t X a n d
C u r r e n t Y p r o pe r t i e s . O m i t t i n g t h e w o r d S t e p m e a n s t h a t X a n d Y a r e r e l a t i v e t o t h e t o p - l ef t c o r n er
NetScape COMPUTER ACADEMY
20
o f t h e o bj e c t . T h e v a l u e s o f X a n d Y d ef i n e t h e po s i t i o n o f t h e c en t er o f t h e sh a p e. T h e R a di u s
a r gu m e n t de f i n e s t h e C i r c l e s r a d i u s . A l l t h e se m e a su r em en t s a r e d o n e i n u n i t o f m ea su r e de f i n e d
by c o n t a i n e r s S c a l e M o d e p r o p e r t y . T h e c o l o r a r g u m en t s et s t h e c o l o r o f l i n e su r r o u n d ed. T o s k i p a n
a r gu m e n t i n t h e m i dd l e o f t h e s y n t a x , i n c l u d e a c o m m a ( , ) f o r e a c h a r gu m en t . D o n ’ t en d a C i r c l e
method with a Comma.
E . g. :
Private Sub CmdCircle_Click( )
S t a t i c S t a r t A s D o u bl e
If Abs(Start
) > 6 . 2 8 3 T h en
Start=0
End If
Circle ( 400, 400) , 100 ,QBColor(3) , Start , -6.283 , 1
Start=Start – 0.785
End Sub
C l e a r : - T h e C l e a r m e t h o d gi v e s y o u a a n e a sy w a y t o c o m pl e t e l y c l e a r F l ex G r i d, l i st bo x o r
C o m bo B o x . T h i s m e t h o d i s a l s o u s e w i t h E r r o bj ec t w h i c h c l e a r s a l l t h e pr o p er t y s et t i n g s o f a n E r r
o bj e c t . T h e C l e a r m e t h o d w i t h a C l i p bo a r d o b j ec t c l e a r s t h e c o n t en t s o f C l i p bo a r d
E . g. :
Private Sub CmdClear_Click( )
C l i p bo a r d. C l e a r
C o m bo 1 . C l e a r
List1.Clear
End Sub
C l o s e : - f o r O L E o bj e c t s , U s e t h i s m e t h o d c l o s e a n o bj ec t a n d t er m i n a t e i t s c o n n ec t i o n t o t h e
a p p l i c a t i o n t h a t p r o v i de d i t . T h i s m e t h o d c a n b e a l so u s e d t o c l o s e a n o bj ec t l i k e D a t a b a s e, T a bl e
etc.
E . g. :
Private CmdClose_Click ( )
OLE1.Close
M y db. C l o s e
Myrs.Close
‘ w h er e M y db i s a D a t a ba s e o b j ec t
‘ W h er e M y r s i s a R ec o r d s et o bj ec t
End Sub
C l s : - T h e C l s m e t h o d r e m o v e s d r a w n g r a ph i c s o r t ex t f r o m a n o bj ec t o n t h e sc r e en . T h i s m et h o d
c h a n g e s t h e C u r r e n t X a n d C u r r e n t Y pr o p er t i e s o f a f o r m o r P i c t u r e B o x . T h i s m et h o d h a s n o e f f ec t
o n a F o r m ’ s c o n t r o l s a n d t h e i r c o n t e n t s. I t o n l y a f f ec t a n y d r a w n g r a ph i c s .
E . g. :
Private Sub CmdClear_Click ( )
Print “Hello Welcome”
M s gB o x “ P r i n t e d”
Cls
M s gB o x “ C l e a r e d ”
End Sub
C o m m i t : - T h i s m e t h o d a t t e m p t s t o c o m m i t t h e c u r r en t t r a n s a c t i o n . T h i s m et h o d f a i l s i f a n y o f t h e
o bj e c t s i n v o l v e d i n t h e t r a n s a c t i o n c a l l e d S et A bo r t o r D i s a b l eC o m m i t w i t h o u t l a t er c a l l i n g
E n a b l e C o m m i t o r S e t C o m p l e t e . S e e a l so T r a n s a c t i o n s, B e gi n , R o l l B a c k
C o m m i t T r a n s : - T h i s m e t h o d e n d s t h e t r a n s a c t i o n s et a n d a t t em pt s t o st o r e t h e t r a n s a c t i o n s t o t h e
da t a b a s e . O n c e y o u s u c c e s s f u l l y u s e d t h i s m et h o d, y o u c a n n o l o n g er u n do c h a n g e s m a d e du r i n g
t h e t r a n s a c t i o n . S e e a l s o B e gi n T r a n s , R o l l B a c k T r a n s m et h o d s.
C o p y : - T h i s m e t h o d a l l o w s y o u t o c o p y t h e o bj e c t i n a n O L E c o n t a i n e r c o n t r o l t o C l i pb o a r d.
E . g. :
P r i v a t e S u b C m d C o py _ C l i c k ( )
OLE1.Copy
End Sub
NetScape COMPUTER ACADEMY
21
C r e a t e D a t a b a s e : - T h i s m e t h o d i s u s e d t o c r e a t e a n ew i n s t a n c e o f a n a t i v e J e t d a t a ba s e.
E . g. :
Private Sub CmdCreate_Click( )
D i m W S A s W o r k S pa c e
Dim DB As Database
S e t W S = D B E n g i n e . W o r k s pa c e s( 0 )
S e t D B = W S . C r e a t e D a t a b a se ( “ C : \ M Y D A T A \ C L E N T S . M D B ” , d b L a n g G en er a l )
End Sub
C r e a t e W o r k S p a c e : - T h e C r e a t e W o r k S p a c e o f t h e D B E n g i n e o bj ec t i s u s e d t o c r e a t e a d di t i o n a l
w o r k s pa c e s i n t h e pa r t i c u l a r i n s t a n c e o f t h e D B E n gi n e. W h en u si n g t h i s m et h o d y o u m u st pr o v i d e
t h e n a m e , u s e r , a n d pa s s w o r d a r gu m en t s . T h e W o r k s p a c e o b j ec t c r e a t e d h a s a l i f e sp a n o f t h a t
pa r t i c u l a r s e s s i o n a n d di e s w h e n t h a t s es s i o n o f t h e D B E n g i n e e n d s. O n c e y o u c r e a t e s a
W o r k S p a c e , y o u c a n n o t c h a n g e a n y o f i t s pr o p er t i e s.
E . g. :
Private Sub Form_Load ( )
D i m W S a s W o r k s pa c e
Dim MUSER as String
MUSER=”NETS”
S e t W S = D B E n g i n e . C r e a t eW o r s k S pa c e ( “ E x ec u t i v e” , M U S E R , “ P A S S W O R D ” )
End Sub
D e l e t e : - T h e D e l e t e m e t h o d i s u s e d t o d el et e a r ec o r d i n a D y n a s e t o r T a b l e t y p e R ec o r ds e t o b j ec t
o r t o d e l e t e a s t o r e d o b j e c t i n a c o l l e c t i o n o f a pa r en t o bj ec t . T h e D e l e t e m et h o d o f O L E c o n t a i n er
c o n t r o l l e t s y o u d e l e t e a n o bj e c t .
E . g. :
P r i v a t e S u b C m dD e l e t e _ C l i c k ( )
If Not Rs.Nomatch Then
Rs.Delete
End If
End Sub
D r a g : - T h i s m e t h o d i n i t i a t e s o r e n d s a D r a g O p er a t i o n . W i t h t h i s m et h o d, y o u c a n m a n i pu l a t e
c o n t r o l s o n t h e s c r e e n w h e n a c o n t r o l ’ s D r a gM o d e p r o p e r t y i s m a n u a l . T h i s m et h o d t y pi c a l l y
a p p e a r s i n t h e M o u s e D o w n e v e n t o f t h e c o n t r o l t o b e d r a g g e d.
E . g. :
P r i v a t e S u b P i c t u r e 1 _ M o u s D o w n ( B u t t o n A s I n t e g er , S h i f t A s I n t eg e r , X A s S i n g l e, Y
As Single )
Picture1.Drag
End Sub
E n d D o c : - T h e E n d D o c m e t h o d e n d s t h e c u r r en t do c u m en t a n d s en d s o u t pu t t o t h e w i n d o w s
pr i n t i n g r o u t i n e s . U s e t h i s m e t h o d w h e n y o u h a v e c o m pl et e d a l l o f t h e p r i n t i n g f o r a do c u m en t .
E . g. :
Private Sub MnuPrint_Click ( )
Printer.Print “Hello”
Printer.Print “Welcome”
Printer.Print “to NetS”
P r i n t e r . E n dD o c
End Sub
E x e c u t e : - T h e E x e c u t e m e t h o d o f a D a t a ba s e o bj ec t o r Q u er y D ef o bj ec t i s u s e d t o r u n a n a c t i o n
Query or SQL statement
E . g. :
P r i v a t e S u b m n u A dd _ C l i c k ( )
M y db. E x e c u t e ( “ I n s e r t i n t o S t o c k ( I t em , Q t y ) V a l u e s ( ‘ T V ’ , 1 0 0 ) “ )
End Sub
NetScape COMPUTER ACADEMY
22
F i n d F i r s t , F i n d N e x t , F i n d P r e v i o u s , F i n d L a s t : - U s e d t o S e a r c h f o r a n i t em i n a D y n a s e t o r
S n a p s h o t t y p e r e c o r d s e t o bj e c t .
E . g. :
Private CmdSearch_Click ( )
R s . F i n dF i r s t “ I t e m = ’ T V ’ ”
I f R s . N o m a t c h = F a l s e T h en
Text1.Text=Rs!Qty
End If
End Sub
G e t D a t a : - R e t r i e v e s g r a p h i c s i n f o r m a t i o n ( pi c t u r e s) f r o m C l i p bo a r d a r e a . T h i s m e t h o d i s u se d t o
c o py g r a ph i c d a t a f r o m c l i pb o a r d t o a s p ec i f i c o bj ec t . T h e t y p e o f d a t a r e qu e st e d i s s p ec i f i ed b y
f o r m a t % p a r a m e t e r . T h i s p a r a m e t e r i s a n i n t e ge r w i t h t h e v a l u e o f 2 - ( v b C F B i t m a p ) , 3 ( v bC F m e t a f i l e ) , 8 - ( v bC F D I B ) , o r 1 4 - ( v bC F E M et a f i l e) .
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
P i c t u r e 1 . P i c t u r e = C l i p bo a r d. G e t D a t a ( v bC F B i t m a p )
End Sub
G e t F o r m a t : - T h e G e t F o r m a t m e t h o d r et u r n s a n i n t e g er v a l u e ( T r u e o r F a l s e) i n di c a t i n g w h et h er
t h e r e qu e s t e d da t a t y pe i s s t o r e d i n t h e C l i p bo a r d. T h e D i f f er en t D a t a f o r m a t s f o r t h e G e t F o r m a t
m e t h o d i n c l u d e s 1 - v b C F T e x t , 2 - v bC F B i t m a p, 3 - v bC F M et a F i l e, 8 - v b C F D I B , 9 - v bC F P a l e t t e, 1 4 vbCFEMetafile, 15 -vbCFFiles
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
T e x t S t o r e d= G e t F o r m a t ( v bC F T ex t )
Print TextStored
End Sub
G e t T e x t : - T h e G e t T e x t m e t h o d r e t r i e v e s t ex t i n f o r m a t i o n f r o m t h e c l i p bo a r d. T h i s m et h o d c o p i e s
t h e s p e c i f i e d t y p e o f t e x t f r o m t h e c l i p bo a r d i n t o t h e s p ec i f i e d o b j ec t . T h e t y p e o f d a t a r e qu e s t e d
i s s p e c i f i e d b y t h e f o r m a t % p a r a m e t e r . T h i s p a r a m et er i s a n i n t e g er w i t h a v a l u e o f 1 - ( v bC F T e x t ) ,
&HFFFFBF00-(vbCFLink), or &HFFFFBF01 -(vbCFRTF).
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
T e x t 1 . T e x t = C l i p bo a r d. G et T e x t ( v bC F T e x t )
End Sub
G o B a c k : - U s e d t o i n s t r u c t a H y p e r l i n k c o n t a i n er t o go t o t h e l a s t w e b pa g e i n i t s h i st o r y l i st .
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
UserControl.HyperLink.GoBack
End Sub
G o F o r w a r d : - U s e d t o i n s t r u c t a h y p e r l i n k a w a r e c o n t a i n er t o go t o t h e n ex t w e b pa g e i n i t s h i s t o r y
list.
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
UserControl.HyperLink.GoForward
End Sub
H i d e : - T h e H i d e m e t h o d m a k e s a n a c t i v e a n d v i si b l e f o r m di s a pp e a r f r o m t h e sc r ee n a n d i s t h e
s a m e a s s e t t i n g t h e f o r m ’ s v i s i b l e pr o p er t y t o F a l s e. T h i s m e t h o d do es n o t r em o v e f r o m m em o r y , i t
o n l y h i d e s t h e f o r m . Y o u c a n u s e S h o w m et h o d t o di s p l a y a h i d d en f o r m . A h i dd en f o r m c a n
r e s po n d t o c o de d e v e n t s a n d a n y r e s u l t i n g pr o p e r t y c h a n g e s.
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Form1.Hide
End Sub
NetScape COMPUTER ACADEMY
23
K i l l D o c : - T h e K i l l D o c m e t h o d i m m e di a t e l y en d s t h e c u r r en t p r i n t j o b a n d t h e pr i n t e r d r i v er r e s et s
t h e pr i n t e r . U s i n g t h i s m e t h o d y o u c a n n o w c a n c el a p r i n t j o b b ef o r e i t s t a r t s. I f y o u h a v e P r i n t
M a n a g e r r u n n i n g w i t h ba c k gr o u n d p r i n t i n g en a b l e d, K i l l d o c d e l et e s t h e c u r r en t pr i n t j o b a n d
pr e v e n t s t h e pr i n t e r f r o m pr i n t i n g a n y t h i n g.
E . g. :
P r i v a t e S u b c m dC a n c e l P r i n t _ C l i c k ( )
Printer.KillDoc
End Sub
L i n e : - T h e L i n e m e t h o d dr a w s a l i n e o r bo x sh a p e o b j ec t o n t h e sc r e en o r pr i n t e r . T h i s m et h o d c a n
c r e a t e n u m b e r o f s h a p e s , i n c l u di n g s t r a i g h t l i n es , squ a r e s, r ec t a n g l e s, p o l y go n s, a n d t r i a n g l e s. T h e
o bj e c t dr a w n o n m a y b e f o r m , pi c t u r e bo x , pr i n t er et c .
E . g. :
P r i v a t e S u b c m dL i n e _ C l i c k ( )
F o r m 1 . L i n e ( 1 0 0 , 1 0 0 ) - ( 3 0 0 , 3 0 0 ) , Q bc o l o r ( 5 )
End Sub
M o v e : - T h e M o v e m e t h o d m o v e s a n o b j ec t t o a n o t h e r l o c a t i o n o n t h e f o r m . Y o u m u st s p ec i f y t h e
l e f t a n d t o p pr o p e r t i e s o f t h e o bj e c t t o m o v e. T h e M o v e m et h o d o f a R ec o r d s et o b j ec t pr o v i d e s t h e
a p p l i c a t i o n w i t h t h e c a p a b i l i t y t o n a v i g a t e t h e R ec o r dS et i n l a r g e s t e p s.
E . g. :
P r i v a t e S u b c m dM o v e _ C l i c k ( )
Text1.Move 100,200
End Sub
M o v e F i r s t , M o v e L a s t , M o v e N e x t , M o ve P r e vi o u s : - T h es e m e t h o d s o f a R ec o r d se t o bj ec t p r o v i d e
t h e a pp l i c a t i o n w i t h t h e a b i l i t y t o n a v i g a t e t h e R ec o r dS et . T h e M o v eF i r st m et h o d m o v e s t o t h e f i r s t
r o w o f t h e R e c o r d s e t . T h e M o v e L a s t m e t h o d m o v es t o t h e l a st r ec o r d. T h e M o v eN ex t m et h o d m o v es
t o t h e n e x t r e c o r d i n t h e r e c o r ds e t . T h e M o v eP r e v i o u s m et h o d m o v e s t o t h e p r e v i o u s r ec o r d i n t h e
R e c o r dS e t .
E . g. :
P r i v a t e S u b c m dM o v e F i r s t _ C l i c k ( )
rs.MoveFirst
‘ w h e r e r s i s a r ec o r ds e t o bj ec t
End Sub
N e w P a g e : - T h e N e w P a g e m e t h o d e n d s o u t pu t f o r t h e c u r r en t pa g e a n d s et s u p t h e n e x t pa g e f o r
s u b s e qu e n t o u t pu t .
E . g. :
P r i v a t e S u b c m dN e x t _ C l i c k ( )
Printer.NewPage
End Sub
O p e n C o n n e c t i o n : - T h i s m e t h o d i s u s e d t o o p e n a n O D B C c o n n ec t i o n .
Syntax:
W o r k s pa c e . O p e n C o n n e c t i o n ( d a t a so u r c e, [ pr o m pt , [ r e a do n l y , [ c o n n ec t , [ o pt i o n s] ] ] ] )
Datasource is the name of the datasource
P r o m p t i s u s e d t o s pe c i f y t h e c h a r a c t er i st i c o f O D B C pr o m p t w h i c h h a s t h e v a l u e s r dD r i v e r P r o m p t ,
r dD r i v e r N o P r o m pt , r dD r i v e r C o m p l e t e , r dD r i v e r C o m p l e t er e qu i r e d et c .
R e a do n l y s p e c i f i e s w h e t h e r t h e d a t a s o u r c e i s t o b e o p en a s r e a d o n l y o r n o t
Connect is the connection string
O p t i o n s – s e t t o r dA s y n c E n a b l e i f y o u w a n t t o e x ec u t e c o m m a n d s a s y n c h r o n o u sl y
NetScape COMPUTER ACADEMY
24
O p e n D a t a b a s e : - T h e O p e n D a t a ba s e m et h o d i s u s e d t o o p en a da t a b a s e i n t h e s p ec i f i e d s e ss i o n
a n d r e t u r n s a r e f e r e n c e t o t h e D a t a b a se o bj ec t v a r i a bl e t h a t r e pr e s en t s i t . T h e f o l l o w i n g e x a m pl e
w i l l d e s c r i b e a bo u t t h e m e t h o d a n d i t s a r gu m e n t s.
Syntax:
S e t d a t a ba s e o bj e c t = w o r k s p a c e . O p e n D a t a ba s e( d bn a m e [ , o p t i o n s[ , r e a d o n l y [ , so u r c e] ] ] )
d bn a m e i s t h e d a t a b a s e n a m e w i t h f u l l di r ec t o r y pa t h , o pt i o n s d et er m i n e s h o w t h e da t a b a s e i s t o
b e o p e n e d t h a t i s i n e x c l u s i v e ( T r u e ) o r S h a r e ( F a l se) m o d e, r e a do n l y h a s t w o v a l u e s T r u e a n d
F a l s e , s o u r c e i s a s t r i n g e x pr e s s i o n w i t h t h e O D B C c o n n ec t a r gu m en t s.
E . g. :
Private Sub Form_Load( )
D i m db A s D a t a b a s e
D i m W S A s W o r k S pa c e
S e t W S = D B E n g i n e . W o r k s pa c e s( 0 )
S e t d b= W S . O p e n D a t a ba s e( “ C : \ A B C \ X Y Z . M D B ” )
End Sub
O p e n R e c o r d s e t : - T h e O p e n R e c o r d s e t m et h o d c r e a t e s a n ew R eo r d s et o bj ec t a n d a p p en d s i t t o t h e
R e c o r d s e t c o l l e c t i o n . T h e F o l l o w i n g e x a m p l e w i l l de sc r i b e a bo u t i t s a r gu m en t s a n d o pt i o n s
Syntax:
S e t r e c o r d s e t o b j e c t = da t a b a s e o bj e c t . O pe n R ec o r d s et ( so u r c e[ , t y p e[ , o pt i o n s[ , L o c k e di t s ] ] ] )
S e t r e c o r d s e t o b j e c t = o bj e c t . O p e n R e c o r d s et ( so u r c e[ , t y pe[ , o pt i o n s[ , L o c k ed i t s] ] ] )
R e c o r d s e t o bj e c t i s a v a r i a b l e r e pr e s e n t i n g a r ec o r d s et o bj ec t t y pe, D a t a b a s eo bj ec t i s a n o p en
da t a b a s e o b j e c t . O b j e c t i s a v a r i a b l e o f Q u er y D ef , R ec o r d s et o r T a bl e D ef t y p e t h a t r e f er en c e s a
v a l i d o bj e c t . S o u r c e i s a s t r i n g s p e c i f y i n g t h e s o u r c e o f r ec o r d s et , i t m a y b e a t a b l e o r Q u er y n a m e
i n t h e d a t a b a s e o r a S Q L s t a t e m e n t . T y p e d et er m i n e s t h e t y p e o f R ec o r d s et , t h a t i s D y n a se t , T a bl e,
o r S n a p s h o t t y p e . O pt i o n s i s a n i n t e g er sp ec i f y i n g t h e c h a r a c t er i s t i c s o f t h e n ew R ec o r d s et o bj e c t ,
t h e v a l u e s f o r o p t i o n s i s d bD e n y W r i t e, db D e n y R ea d, d bR ea do n l y , d bA p pe n d O n l y , d bF o r w a r do n l y ,
d bR u n A s y n c e t c . L o c k e di t s i s u s e d t o l o c k f o r t h e N ew R ec o r ds e t i t s v a l u e s a r e d bR e a do n l y ,
d bP e s s i m i s t i c , d bO p t i m i s t i c e t c .
E . g. :
Private Sub Form_Load( )
D i m db A s D a t a b a s e
D i m W S A s W o r k S pa c e
Dim rs As RecordSet
S e t W S = D B E n g i n e . W o r k s pa c e s( 0 )
S e t d b= W S . O p e n D a t a ba s e( “ C : \ A B C \ X Y Z . M D B ” )
S e t r s = d b. O p e n R e c o r d s e t ( “ S el ec t * f r o m S t o c k ” , d bO p en D y n a s e t )
End Sub
P o p u p M e n u : - T h e P o pu pM e n u m e t h o d di s pl a y s a po pu p m en u . T h e se m en u s c a n a pp e a r a n y w h er e
o n t h e f o r m , a n d a r e g e n e r a l l y c o n t e x t s en s i t i v e . M o s t a p p l i c a t i o n d i s p l a y t h e m w h en t h e a l t e r n a t e
m o u s e b u t t o n ( n o r m a l l y r i gh t m o u s e b u t t o n ) i s c l i c k ed . T h e s e t y p e m en u s a r e u s e d t o d i s p l a y
o pt i o n s a p pr o pr i a t e f o r t h e o bj e c t t h e u s er c l i c k e d. P o pu p m en u s d i s p l a y w h en y o u u se P o pu pM en u
m e t h o d o n a f o r m . Y o u s p e c i f y w h a t m e n u y o u w a n t t o di s pl a y , a n d g i v e t h e m et h o d o p t i o n a l
pa r a m e t e r s f o r e x a c t l y w h e r e i t d i s p l a y s a n d h o w i t b eh a v e s.
E . g. :
P r i v a t e S u b T e x t 1 _ M o u s e D o w n ( B u t t o n A s I n t e g er , X A s S i n g l e, Y A s S i n gl e)
I f B u t t o n = v bR i gh t B u t t o n T h en
P o pu p M e n u m e n u w i n do w s, v b P o pu pM en u R i gh t B u t t o n
End If
End Sub
P r i n t : - T h e P r i n t m e t h o d pu t s a s t r i n g o f t e x t o r n u m er i c v a l u e a t a n o bj ec t ’ s c u r r en t po s i t i o n .
E a c h pr i n t m e t h o d i d e n t i f i e s t h e o b j ec t t o p l a c e t h e st r i n g o n b y pr ec ed i n g i t w i t h t h e N a m e
pr o p e r t y o f t h e f o r m o r pi c t u r e bo x , o r P r i n t er o r D eb u g. A pr i n t m et h o d m a y c o n t a i n m u l t i p l e
e x pr e s s i o n s s e pa r a t e d b y S pc ( n ) , T a b( m ) , c o m m a s, a n d se m i c o l o n s.
E . g. :
Private Sub Form_Click( )
Printer.Print “This Text” , “Has Commas”,
Printer.Print “WelCome”
P r i n t e r . E n dD o c
End Sub
NetScape COMPUTER ACADEMY
25
P r i n t F o r m : - T h i s m e t h o d s e n d s a c o p y o f a V I S U A L B A S I C f o r m t o t h e w i n do w s pr i n t i n g r o u t i n e s.
T h i s c a n b e a n e a s y w a y t o t a k e a d v a n t a g e o f V I S U A L B A S I C ’ s f o r m d e si gn c a pa b i l i t i e s i n c r e a t i n g
pr i n t e d f o r m s , a n d t o f o r m a t p r i n t e d o u t pu t so t h a t i t i s i d en t i c a l t o w h a t i s sh o w n o n t h e sc r e e n .
E . g. :
Private Sub cmdPrintForm_Click( )
A d dr e s s F o r m . P r i n t F o r m
End Sub
R e f r e s h : - T h e R e f r e s h m e t h o d f o r c e s a n y c h a n g es a f f ec t i n g a c o n t r o l t o b e r ef l ec t ed i n i t s st a t u s
o r di s pl a y i m m e d i a t e l y . T h e R e f r e s h m et h o d i s u s ef u l i n t w o si t u a t i o n s. F i r s t , b ec a u s e w i n do w s i s a
m u l t i t a s k i n g pr o gr a m , i t i s po s s i bl e t o m a k e a c h a n g e t o a c o n t r o l t h a t i s n o t r ef l ec t e d o n t h e
s c r e e n b e c a u s e b a c k g r o u n d pr o c e s s i n g i s i n pr o gr e s s. U s i n g R e f r e sh m e t h o d c a u s e s a n y c h a n g e s
t o t h e s pe c i f i e d c o n t r o l t o b e r e f l e c t e d i m m e di a t el y . S ec o n d, t h e r ef r e sh m e t h o d c a n b e u s e d t o
c a u s e t h e D r i v e , D i r e c t o r y , a n d F i l e l i st b o x e s t o u p d a t e t h ei r l i st s. Y o u s pec i f y t h e r ef r e sh m et h o d
with the name of control
E . g. ;
P r i v a t e S u b c m dR e f r e s h _ C l i c k ( )
FileList1.Refresh
End Sub
R e m o v e I t e m : - T h e R e m o v e I t e m m e t h o d d el e t e s a n i t e m f r o m t h e l i s t bo x , o r c o m b o bo x i n di c a t e d
by t h e i n de x a r gu m e n t . W h e n a n i t e m i s r em o v ed f r o m a l i st o r c o m bo bo x a l w a y s s p ec i f y t h e
c o r r e c t i n d e x n u m b e r g r e a t e r t h a n o r e qu a l t o z er o ( 0 ) a n d l e s s t h a n L i st c o u n t pr o p e r t y o f t h e
o bj e c t . Y o u c a n u s e t h e L i s t I n de x p r o p er t y t o d e t e r m i n e t h e i n d ex o f c u r r en t l y se l ec t e d o b j ec t .
E . g. :
P r i v a t e S u b c m dR e m o v e _ C l i c k ( )
L i s t 1 . R e m o v e I t e m L i s t 1 . L i st I n de x
End Sub
R e q u e r y : - T h e R e qu e r y m e t h o d i s u s e d t o u pd a t e t h e d a t a i n a R ec o r dS et o bj ec t by r u n n i n g t h e
u n d e r l y i n g qu e r y a ga i n . T h i s m e t h o d en su r e s t h a t y o u r r ec o r d s et ’ s d a t a i s v a l i d t o b e r u n n i n g t h e
u n d e r l y i n g qu e r y , a g a i n r e po pu l a t i n g t h e R ec o r d s et w i t h t h e l a t es t da t a . T h i s m et h o d h a s t h e sa m e
e f f e c t h a s c l o s i n g t h e r e c o r d s e t a n d o p en i n g i t a ga i n . T h i s m e t h o d o n l y w o r k s w i t h D y n a s et a n d
S n a p s h o t t y p e r e c o r d s e t s w h o s e r e s t a r t a bl e p r o p er t y i s t r u e.
E . g. :
P r i v a t e S u b c m dR e f r e s h D a t a _ C l i c k ( )
R s . R e qu e r y
End Sub
R o l l b a c k T r a n s : - T h e R o l l B a c k T r a n s m et h o d en d s a n ew T r a n s a c t i o n s e t a n d r e st o r e s t h e d a t a b a se
t o i t s c o n di t i o n pr i o r t o t h e s t a r t o f t h e T r a n s a c t i o n . T r a n s a c t i o n s a r e u s ed t o h el p e n s u r e t h a t
c h a n g e s t o t h e d a t a b a s e a r e c o m pl e t e i n a l l r e s p ec t s b ef o r e be i n g f i n a l i z e d. S e e A l so C o m m i t T r a n s
a n d B e gi n T r a n s m e t h o d s .
S c a l e : - T h e S c a l e m e t h o d d e t e r m i n e t h e l i m i t s o f t h e c o o r d i n a t e s u s ed o n a f o r m , p i c t u r ebo x , o r
pr i n t e r o b j e c t . T h i s m e t h o d de f i n e s t h e S c a l eH ei gh t , S c a l eW i d t h , S c a l e L ef t , a n d S c a l e T o p
pr o p e r t i e s i n o n e e x p r e s s i o n i n s t e a d o f f o u r . I n t h i s m et h o d t h e f i r s t t w o c o o r d i n a t es sp ec i f y t h e
h o r i z o n t a l a n d v e r t i c a l c o o r di n a t e s o f t h e u p p er - l ef t c o r n er o f t h e o bj ec t i . e. , S c a l e L ef t a n d
S c a l e T o p. T h e n u m b e r s i n t h e n e x t s e t r ep r es en t t h e l o w er - r i gh t c o r n er o f t h e sa m e o b j ec t i . e. ,
S c a l e W i d t h a n d S c a l e H e i gh t .
E . g. :
Private Sub Form1_Resize( )
Form1.Scale (0,0) -(500,500)
T e x t 1 . M o v e 0 , 0 , S c a l e W i dt h , ( sc a l eH ei gh t / 2 )
End Sub
S c r o l l : - T h e S c r o l l m e t h o d s c r o l l s a G r i d c o n t r o l , S c r o l l ba r c o n t r o l et c ei t h e r H o r i z o n t a l l y o r
vertically.
E . g. :
P r i v a t e S u b c m dS c r o l l _ C l i c k ( )
G r i d. S c r o l l 1 , 1
End Sub
NetScape COMPUTER ACADEMY
26
S e e k : - T h e S e e k m e t h o d i s u s e d i n a T a b l e t y p e R ec o r d s et o b j ec t t o f i n d, u si n g a n i n d ex o bj e c t ,
t h e r o w c o n t a i n i n g t h e s pe c i f i e d c r i t e r i a . Y o u c a n s ee k o n l y o n a f i e l d o r f i e l d s t h a t a r e i n de x e d.
T h e s e e k m e t h o d i s t h e f a s t e s t m e t h o d l o c a t i n g da t a i n y o u r da t a b a s e. T h e s e ek m et h o d f i n d s t h e
f i r s t r o w t h a t m a t c h e s y o u r c r i t e r i a d e p en di n g o n t h e d i r ec t i o n o f se e k . i f a m a t c h i s f o u n d, t h e
N o M a t c h p r o pe r t y o f t h e r e c o r d s e t r e t u r n s F a l s e
Syntax:
R e c o r d s e t o bj e c t . S e e k c o m p a r i s o n , k e y 1 , k e y 2 …
E . g. :
P r i v a t e S u b c m dS e a r c h _ C l i c k ( )
Rs.Index=”ss”
‘ w h e r e s s i s a n i n d ex c r e a t e d f o r t h e t a b l e o n a p a r t i c u l a r f i el d
Rs.Seek “=”, ‘TV’
If rs.Nomatch=False Then
M s gB o x “ F o u n d”
End if
End Sub
S e t D a t a : - T h e S e t D a t a m e t h o d pl a c e s gr a p h i c i n f o r m a t i o n i n t h e C l i p bo a r d o b j ec t i n t h e sp ec i f i e d
f o r m a t . T h e t y pe o f d a t a s e n d t o t h e c l i p bo a r d i s s pec i f i e d b y t h e f o r m a t % p a r a m et e r . T h i s i n t e g er
h a s t h e v a l u e s 2 - v b C F B i t m a p, 3 - v b C F M et a f i l e, 8 - v bC F D I B , 9 - v bC F P a l et t e , 1 4 - v b C F E M et a f i l e
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
C l i p B o a r d. S e t D a t a P i c t u r e. P i c t u r e, v b C F B i t m a p
End Sub
S e t f o c u s : - T h e S e t F o c u s M e t h o d g i v e s a c o n t r o l o r f o r m t h e f o c u s. T h e c o n t r o l a n d f o r m
a r gu m e n t s o f a S e t F o c u s o pe r a t i o n m u st b e t h e N a m e pr o p er t y o f a F o r m o r c o n t r o l . O n l y t h o s e
c o n t r o l s a n d f o r m s w i t h E n a b l e d pr o p e r t y s et t o T r u e m a y be gi v en t h e F o c u s.
E . g. :
P r i v a t e S u b T e x t 1 _ K e y P r e s s ( K e y A sc i i A s I n t eg e r )
Text2.SetFocus
End Sub
S e t T e x t : - T h i s m e t h o d pl a c e s t e x t i n f o r m a t i o n i n t o t h e C l i p bo a r d o b j ec t i n t h e s p ec i f i e d f o r m a t .
T h e t y pe o f d a t a i s s p e c i f i e d b y f o r m a t % p a r a m et er . T h i s p a r a m e t e r i s a n i n t e g er w i t h v a l u e s
& H F F F F B 0 0 - v bC F L i n k , & H F F F F B 0 1 - v bC F R T F , 1 - v bC F T ex t .
E . g. :
P r i v a t e S u b c m dC o p y _ C l i c k ( )
C l i p bo a r d. S e t T e x t T e x t 1 . T ex t
End Sub
S h o w : - T h e S h o w m e t h o d l e t s y o u l o a d a n d di s pl a y a f o r m o n t h e sc r e en , o r di s pl a y a n a l r e a dy
l o a d e d f o r m . A f o r m r e m a i n s i n m e m o r y u n t i l i t i s r em o v ed u si n g a n U n l o a d s t a t em en t o r u n t i l t h e
pr o gr a m e n d s .
E . g. :
Private Sub mnuSales_Click( )
FrmSales.Show
End Sub
NetScape COMPUTER ACADEMY
27
T e x t H e i g h t , T e x t W i d t h : - T h e s e m e t h o ds h el p y o u po si t i o n t e x t o n a f o r m , pi c t u r e bo x , o r p r i n t e r
o bj e c t by t e l l i n g y o u w h a t t h e h e i gh t a n d w i d t h o f t h e t ex t st r i n g w o u l d b e i f di s pl a y e d u si n g t h e
c u r r e n t f o n t a n d po i n t s i z e . A v a l u e r et u r n e d b y t h e T e x t H e i g h t a n d T ex t W i dt h m et h o d s r e pr e se n t s
t h e s i z e o f t h e t e x t s t r i n g u s i n g t h e u n i t o f m e a su r e s pec i f i e d i n t h e S c a l eM o d e p r o p e r t y . B o t h
these methods are available at runtime only.
E . g. :
Private Sub Form_Resize( )
AutoRedraw=True
Font.Name=”Arial”
Font.Size=9
D i s p l a y $ = ” A s t r i n g f o r d em o ”
D o W h i l e T e x t W i dt h ( di s pl a y $ ) < S c a l eW i dt h – T e x t W i d t h ( “ “ )
F o n t . S i z e = F o n t . S i z e+ 0 . 5
Loop
X = T e x t W i dt h ( d i s p l a y $ )
Y = T e x t H e i g h t ( di s pl a y $ )
E n d Y = A b s ( S c a l e H e i gh t / Y ) + 1
For H= 1 to EndY
Print Display$
CurrentY=CurrentY+Y
CurrentX=0
Next
End Sub
U p d a t e : - T h e U p d a t e m e t h o d o f a R ec o r d se t o bj ec t sa v e s t h e c o n t en t s o f t h e e di t bu f f er t o t h e
R e c o r d s e t o bj e c t . T h i s m e t h o d i s o n l y v a l i d f o r D y n a se t a n d T a b l e t y p e r ec o r d s et s, i n a d d i t i o n t h e
u p da t a b l e p r o pe r t y o f t h e r e c o r d s e t m u st be t r u e. T h i s m et h o d i s u se d t o c o m p l et e t h e pr o c e ss
s t a r t e d w i t h t h e A d d N e w o r E di t m e t h o ds. I f y o u i n i t i a t e a n A d dN ew o r E di t w i t h o u t u s i n g a
s u b s e qu e n t U p d a t e m e t h o d, y o u r c h a n ge s w i l l b e l o s t w h en y o u m o v e t h e r ec o r d po i n t e r o r i s su e
a n o t h e r A dd N e w o r E di t m e t h o d.
E . g. :
P r i v a t e S u b c m dS a v e _ C l i c k ( )
R s . A d dN e w
Rs!Item=Text1.Text
Rs!Qty=Val(Text2.Text)
Rs.Update
End Sub
Z o r d e r : - T h i s m e t h o d pl a c e s a n o bj e c t i n f r o n t o f o r b eh i n d o t h er o bj ec t s w i t h i n i t s g r a ph i c a l l e v el .
Y o u c a n r e a d a n d w r i t e w i t h t h i s m e t h o d a t bo t h de s i g n a n d r u n t i m e. t h e c o n st a n t s u s e d f o r t h i s
m e t h o d a r e 0 - v b B r i n gT o F r o n t , 1 - v bS e n d T o B a c k .
E . g. :
Private Sub Timer1_Timer ( )
Static I As Integer
I m a g e 1 ( I ) . Z o r d e r v bB r i n gT o F r o n t
I=I+1
If I=10 Then I=0
End Sub
NetScape COMPUTER ACADEMY
28
Chapter 6
Event Driven Programming
Event driven programming
V I S U A L B A S I C pr o gr a m s a r e bu i l t a r o u n d ev en t s.
i n a pr o gr a m .
E v en t s a r e v a r i o u s t h i n g s t h a t c a n h a p p en
I n a n e v e n t d r i v e n a p p l i c a t i o n t h e p r o g r a m st a t em en t a r e e x ec u t e d o n l y w h en a pa r t i c u l a r
e v e n t c a l l e d t h e s p e c i f i c pa r t o f t h e c o d e t h a t i s a ss i gn t o t h e ev en t .
etc.
E . g. :
A t e x t bo x c o n t r o l s u p po r t s v a r i o u s ev en t s l i k e c h a n g e, c l i c k , m o u s e m o v e , k ey pr e ss
T h e s e a r e l i s t e d i n t h e pr o pe r t y d r o p do w n l i s t i n t h e c o d e w i n do w . S ev er a l e v e n t s a r e
a s s o c i a t e d w i t h di f f e r e n t c o n t r o l s a n d f o c u s so m e o f t h e e v en t s a r e c o m m o n a n d f ew b ei n g s pec i f i c
to each control.
VIS U AL BAS I C E v en t s
V I S U A L B A S I C r e c o gn i z e s di f f e r e n t e v en t s. S o m e e v en t s a r e r ec o g n i z e d b y m a n y o bj ec t s, so m e by
o n l y a f e w o r e v e n j u s t o n e o bj e c t . T h e f o l l o w i n g l i s t s t h e d i f f er en t e v en t s a n d t h ei r m ea n i n g.
Event
Description
Activate
A f t e r A d dF i l e
AfterChangeFileName
AfterCloseFile
AfterRemoveFile
AfterWriteFile
B e f o r e L o a dF i l e
Change
Click
C o n n e c t A d dI n
D bl C l i c k
Deactivate
D i s c o n n e c t A d dI n
D o G e t A d dF i l e N a m e
DoGetNewFileName
DoGetOpenProjectName
D r a gD r o p
D r a go v e r
DropDown
Error
GotFocus
Initialize
KeyDown
KeyPress
KeyUp
LinkClose
LinkError
LinkExecute
LinkNotify
LinkOpen
Load
LostFocus
MouseDown
MouseMove
MouseUp
ObjectMove
OLECompleteDrag
O L E D r a gD r o p
O L E D r a gO v e r
O L E G i v e F e e d ba c k
OLESetData
OLEStartDrag
F o r m j u s t r ec ei v ed f o c u s
F i l e a d d e d t o c u r r en t pr o j ec t
F i l e n a m e c h a n g ed
File closed
F i l e r e m o v e d f r o m t h e p r o j ec t
File saved
Before a file is added
Control’s value changed
C o n t r o l j u s t go t c l i c k ed
Add-in added to VISUAL BASIC
C o n t r o l j u s t go t do u b l e c l i c k e d
F o r m j u s t l o st f o c u s
Add-in removed from VISUAL BASIC
User selected Add File
User saving file or project
U s e r o p e n i n g a n ew p r o j ec t
C o n t r o l j u s t go t d r o p p e d
A n o t h e r c o n t r o l j u st go t dr a gg e d o v e r t h i s c o n t r o l
U s e r c l i c k ed t h e do w n a r r o w o n c o m bo bo x
E x t e r n a l l y c a u s e d da t a b a se er r o r
C o n t r o l j u s t r ec e i v e d t h e f o c u s
O b j e c t c r ea t ed
U s e r pr e s s ed a K e y
U s e r pr e s s ed a K e y
User released the Key
D D E l i n k j u st c l o s e d
D D E l i n k h a s a n er r o r
D D E l i n k j u st r ec ei v e d a n ex t e r n a l c o m m a n d
DDE link data has changed in a Notify style link
D D E l i n k h a s j u st o p en e d
F o r m h a s j u st l o a d e d
C o n t r o l j u s t l o st f o c u s
U s e r j u s t pr e ss e d m o u s e bu t t o n
User just moved mouse
U s e r j u s t r e l e a s ed m o u s e b u t t o n
OLE object moved or resized
S o u r c e o b j ec t i s n o t i f i e d t h a t dr o p a c t i o n o c c u r r e d
S o u r c e o b j ec t i s d r o pp e d o n t o a c o n t r o l
S o u r c e o b j ec t go t d r a g g e d o v er t h i s c o n t r o l
P r o v i d e s a dr a g i c o n f e e d b a c k t o t h e u s er
S e t s D a t a w h en a S o u r c e o b j ec t i s dr o p p ed
S e t s t h e t y p e o f d a t a f o r m a t a n d d r o p ef f ec t t h e so u r c e o bj ec t
s u p po r t s w h en dr a g i s s t a r t e d
C o n t r o l j u s t go t u n c o v e r e d
P a t h pr o p er t y j u s t c h a n g e d
P a t t e r n pr o p e r t y j u st c h a n ge d
F o r m i s a bo u t t o U n l o a d
C u r r e n t r ec o r d j u st c h a n g ed
U s e r s p e c i f i ed n ew f i l e n a m e
P r o m p t b ef o r e pr o j ec t sa v ed
F o r m j u s t c h a n g e d si z e
G r i d’ s a c t i v ec el l j u st c h a n g e d
Paint
PathChange
PatternChange
QueryUnload
Reposition
RequestChangeFileName
RequestWriteFile
Resize
RowColChange
NetScape COMPUTER ACADEMY
Scroll
S e l C h a n ge
Terminate
Timer
Unload
Updated
V a l i da t e
29
S c r o l l b a r t h u m b j u s t m o v ed
N e w c e l l s e l ec t ed i n g r i d
O b j e c t w a s d es t r o y ed
T i m e r i n t er v a l f i n i sh e d
Form unloading
OLE object changed
C u r r e n t r ec o r d a bo u t t o c h a n g e
Some Basic Events
A c t i v a t e : - T h e A c t i v a t e E v e n t o c c u r s w h en a n o bj ec t b ec o m e s a c t i v a t e d e i t h er b y c o d e o r b y t h e
user.
E . g. :
P r i v a t e S u b F o r m 1 _ A c t i v a t e( )
F o r m 1 . w i dt h = 4 0 0 0
End Sub
C h a n g e : - T h e c h a n g e e v e n t i n i t i a t e s a n a c t i o n w h en t h e u s er c h a n g e s t h e v a l u e o f a n o b j e c t ’ s
pr i m a r y p r o p e r t y , s u c h a s b y m a k i n g a s el ec t i o n o r en t e r i n g da t a .
E . g. :
P r i v a t e S u b T e x t 1 _ C h a n g e( )
End Sub
T h i s e v e n t o c c u r s i f t h e pr o p e r t y c h a n g e s b y a u s er a c t i o n , t h e pr o gr a m ’ s c o de, o r b y d y n a m i c d a t a
exchange events.
C l i c k : - U s e t h e C l i c k e v e n t t o r e a c t t o t h e u s e r ’ s c l i c k i n g a c h ec k bo x , c o m m a n d bu t t o n , o r o pt i o n
bu t t o n . T h i s e v e n t i s a l s o de f i n e d a s s u b p r o c e d u r e t h a t i s n a m ed w i t h t h e c o n t r o l ’ s n a m e
E . g. :
P r i v a t e S u b C o m m a n d1 _ c L i c k ( )
Text1.text=”Hello”
End Sub
D b l C l i c k : - U s e t h e D b l C l i c k e v e n t t o r ea c t t o t h e u s er ’ s pr e ss i n g t h e l e f t o r r i gh t m o u s e bu t t o n
t w i c e i n qu i c k s u c c e s s i o n .
E . g. :
P r i v a t e S u b L i s t 1 _ D bl C l i c k ( )
M s g bo x “ Y o u c l i c k e d t w i c e”
End Sub
D e a c t i v a t e : - T h e D e a c t i v a t e E v e n t o c c u r s w h e n a n o b j ec t bec o m es d e a c t i v a t e d ei t h er b y c o de o r
by t h e u s e r .
E . g. :
P r i v a t e S u b F o r m 1 _ d e a c t i v a t e( )
M s g bo x “ H e l l o ”
End Sub
D r a g D r o p : - A D r a g D r o p e v e n t c o n t a i n s t h e a c t i o n s t h a t o c c u r a t t h e c o m p l e t i o n o f a dr a g - a n d dr o p o pe r a t i o n o v e r a n o t h e r c o n t r o l . D r a g - a n d - d r o p o p er a t i o n s t er m i n a t e w i t h e i t h er a D r a g
m e t h o d e x p r e s s i o n o r t h e r e l e a s e o f a m o u s e bu t t o n . W h en t h e u s er r e l e a s e s t h e m o u s e b u t t o n
w h i l e t h e m o u s e po i n t e r i s o v e r a c o n t r o l , t h i s i s k n o w n a s t h e dr o p p a r t o f a d r a g - a n d - d r o p
operation.
E . g. :
P r i v a t e S u b P i c t u r e 2 _ D r a g D r o p( S o u r c e A s C o n t r o l , X A s S i n g l e, Y A s S i n gl e)
Picture2.Picture=Source.Picture
S o u r c e . P i c t u r e = L o a d P i c t u r e( “ ” )
End Sub
NetScape COMPUTER ACADEMY
30
D r a g O v e r : - A D r a g O v e r e v e n t c o n t a i n s t h e a c t i o n s t h a t t a k e p l a c e w h e n a dr a g o p e r a t i o n m o v e s
t h e m o u s e po i n t e r o v e r a c o n t r o l b e f o r e t h e u se r r el e a se s t h e m o u s e bu t t o n . T h e s e a c t i o n s do n o t
n e c e s s a r i l y t e r m i n a t e a dr a g - a n d - d r o p o p er a t i o n , bu t t h e D r a g O v er e v en t c a n se r v e t h i s p u r po se .
E . g. :
P r i v a t e S u b P i c t u r e 2 _ D r a g O v e r ( S o u r c e A s C o n t r o l , X A s S i n g l e, Y A s S i n gl e, S t a t e A s
I n t e ge r )
Select Case State
Case 0 , 2
Picture2.BackColor=QBColor(7)
S o u r c e . D r a gI c o n = L o a d P i c t u r e( “ C \ x y z . i c o ” )
Case 1
End Select
P i c t u r e 2 . B a c k C o l o r = Q bc o l o r ( 1 5 )
S o u r c e . D r a gI c o n = L o a d P i c t u r e( “ C \ x y z . i c o ” )
End Sub
D r o p D o w n : - T h e D r o p D o w n e v e n t s p ec i f i es w h a t a c t i o n s w i l l b e t a k en w h en t h e u se r o p en s t h e l i s t
po r t i o n o f a d r o p - do w n c o m bo bo x . T h i s pr o v i d e s y o u r pr o gr a m w i t h a n o p p o r t u n i t y t o t a i l o r t h e
l i s t e n t r i e s ba s e d o n i n f o r m a t i o n t h a t m a y n o t h a v e b e en a v a i l a b l e a t a n ea r l i e r t i m e, s u c h a s t h e
a c t i v i t y t h e u s e r i s pe r f o r m i n g o r pr e f er en c e s pr e v i o u sl y ex pr e s s ed b y t h e u se r .
E . g. :
P r i v a t e S u b C o m bo 1 _ D r o pD o w n ( )
I f C o m bo 1 . L i s t C o u n t < 1 0 T h e n
C o m bo 1 . A d dI t e m “ H el l o ”
End if
End Sub
G o t F o c u s : - T h e G o t F o c u s e v e n t s p e c i f i es w h a t a c t i o n s t o t a k e w h en a c o n t r o l o r f o r m r ec e i v e s t h e
f o c u s . A c o n t r o l o r f o r m r e c e i v e s t h e f o c u s ei t h er b y a u s er a c t i o n ( P r e ss i n g T a b o r M o u s e C l i c k )
o r b y c o d e u s i n g t h e S e t F o c u s m e t h o d.
E . g. :
Private Sub Text1_GotFocus( )
Text1.BackColor=QBColor(15)
End Sub
I n i t i a l i z e : - T h e I n i t i a l i z e e v e n t o c c u r s w h en a f o r m , M D I f o r m , o r C l a s s m o d u l e i s f i r st l o a d e d i n t o
m e m o r y u s i n g L o a d s t a t e m e n t f o r F o r m o r w i t h N ew K e y w o r d f o r c l a s s. T h i s e v en t i s u s e d t o
i n i t i a l i z e a n y i n f o r m a t i o n u s e d b y a f o r m o r o b j ec t . I n i t i a l i z e o c c u r s b e f o r e l o a d ev en t a n d o c c u r s
o n l y o n c e du r i n g t h e l i f e t i m e o f a f o r m o r o b j ec t .
E . g. : Private Sub Form_Initialize( )
Me.Data1.DatabaseName=”C: \ABC\XYZ.MDB”
M e . D a t a 1 . D a t a s o u r c e = ” N a m e a n d A dd r es s e s”
End Sub
K e y D o w n : - U s e t h e K e y D o w n e v e n t f o r l o w - l e v el k e y bo a r d h a n dl i n g. I t r epo r t s t h e c u r r en t st a t u s
o f t h e k e y bo a r d w h e n a k e y i s pr e s s e d a n d t h i s e v en t ’ s c o n t r o l h a s t h e f o c u s.
E . g. :
P r i v a t e S u b T e x t 1 _ K e y D o w n ( K e y C o d e A s I n t e g er , S h i f t A s I n t e ge r )
Text1.Text=KeyCode
End Sub
Table of KeyCode
KeyCode
V B .C o n s t a n t s
Meaning
&H1
&H2
&H3
&H4
&H8
&H9
&HC
&HD
&H10
&H11
vbKeyLButton
vbKeyRButton
vbKeyCancel
vbKeyMButton
vbKeyBack
vbKeyTab
vbKeyClear
vbKeyReturn
vbKeyShift
vbKeyControl
(uncommon)
(uncommon)
(uncommon)
(uncommon)
[B]
[T]
[L]
[ENTER]
[SHIFT]
[CTRL]
NetScape COMPUTER ACADEMY
31
&H12
&H13
&H14
&H1B
&H20
&H21
&H22
&H23
&H24
&H25
vbKeyMenu
vbKeyPause
vbKeyCapital
vbKeyEscape
vbKeySpace
vbKeyPrior
vbKeyNext
vbKeyEnd
vbKeyHome
vbKeyLeft
[ALT]
[PAUSE]
[CAPS LOCK]
[ESC]
[SPACEBAR]
[PAGE UP]
[PAGE DOWN]
[END]
[HOME]
[  ]
&H26
&H27
&H28
&H29
&H2A
&H2B
&H2C
&H2D
&H2E
&H2F
vbKeyUp
v b K e y R i gh t
vbKeyDown
vbKeySelect
vbKeyPrint
vbKeyExecute
vbKeySnapshot
vbKeyInsert
vbKeyDelete
vbKeyHelp
[
]
[  ]
[
]
(Uncommon)
[PRINT SCREEN]
(Uncommon)
Uncommon)
[INSERT]
[DELETE]
(Uncommon)
v b K e y A t h r o u g h v bK e y Z a r e t h e s a m e a s t h ei r A S C I I eq u i v a l en t s, A t h r o u gh Z .
v b K e y 0 t h r o u g h v bK e y 9 a r e s a m e a s A S C I I e qu i v a l en t s , 0 t h r o u gh 9
&H60
&H61
&H62
&H63
&H64
&H65
&H66
&H67
&H68
&H69
&H6A
&H6B
&H6C
&H6D
&H6E
&H6F
&H70
&H71
&H72
&H73
&H74
&H75
&H76
&H77
&H78
&H79
&H7A
&H7B
&H7C
&H7D
&H7E
&H7F
&H90
&H91
v b K e y N u m p a d0
v b K e y N u m p a d1
v b K e y N u m p a d2
v b K e y N u m p a d3
v b K e y N u m p a d4
v b K e y N u m p a d5
v b K e y N u m p a d6
v b K e y N u m p a d7
v b K e y N u m p a d8
v b K e y N u m p a d9
v b K e y M u l t i pl y
v b K e y A dd
vbKeySeparator
vbKeySubtract
vbKeyDecimal
vbKeyDivide
vbKeyF1
vbKeyF2
vbKeyF3
vbKeyF4
vbKeyF5
vbKeyF6
vbKeyF7
vbKeyF8
vbKeyF9
vbKeyF10
vbKeyF11
vbKeyF12
vbKeyF13
vbKeyF14
vbKeyF15
vbKeyF16
vbKeyNumlock
n/a
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
(uncommon)
N u m er i c p a d
N u m er i c p a d
N u m er i c p a d
1
2
3
4
5
6
7
8
9
0
!
@
(uncommon)
(uncommon)
(uncommon)
(uncommon)
[NUMLOCK]
$
0
1
2
3
4
5
6
7
8
9
*
+
–
.
/
K e y P r e s s : - T h e K e y P r e s s e v e n t i n t e r c e p t s A S C I I ( A m er i c a n S t a n d a r d C o d e f o r I n f o r m a t i o n
I n t e r c h a n g e ) k e y s t r o k e s w h e n t h i s e v en t ’ s c o n t r o l h a s t h e f o c u s. T h i s l e t s t h e pr o gr a m a u di t t h e
u s e r ’ s i n pu t b y t e by b y t e . T h i s c a n b e u se f u l f o r v a l i d a t i n g d a t a i n pu t a n d a l t er i n g t h e u s e r a s so o n
a s a n i n v a l i d c h a r a c t e r i s e n t e r e d.
E . g. :
P r i v a t e S u b T e x t 1 _ K e y P r e s s ( K e y A sc i i A s I n t e ge r )
If KeyAscii =13 Then
Text2.SetFocus
End If
End Sub
NetScape COMPUTER ACADEMY
32
Possible Values for KeyAscii argument
Valid Character
KeyAscii Code
[ C t r l ] + A t h r o u gh [ C t r l ] + Z
[ENTER] and [Ctrl]+[ENTER]
[BACKSPACE] and [Ctrl]+[BACKSPACE]
[TAB]
A n y P r i n t a bl e K e y bo a r d c h a r a c t e r
ASCII code of the character
13 and 10
8 and 127
9
ASCII code of the Character
K e y U p : - T h e K e y U p e v e n t i s u s e d f o r l o w - l e v el k ey bo a r d h a n d l i n g. I t r e po r t s t h e c u r r en t s t a t u s o f
t h e k e y bo a r d w h e n a k e y i s r e l e a s e d a n d t h i s ev en t ’ s c o n t r o l h a s t h e f o c u s.
E . g. :
P r i v a t e S u b T e x t 1 _ K e y U p ( K e y C o d e A s I n t e g er , S h i f t A s I n t e ge r )
L a b e l 1 . C a pt i o n = F o r m a t $ ( K e y C o d e, “ # # # ” ) ‘ sh o w l a st k ey r e l ea s e d
End Sub
M e a n i n g s o f K e y C o d e a r g u m e n t i n K e y U p a r e s a m e a s i n K e y D o w n e ve n t
M e a n i n g s o f S h i f t v a l u e s i n t h e K e y U p E ve n t
Shift
vbConstants
1
2
3
vbShiftMask
vbCtrlMask
vbAltMask
Meaning
[ S H I F T ] k e y w a s pr e s s ed
[ C T R L ] k e y w a s pr e s s ed
[ A L T ] k e y w a s pr e s s ed
T h i s e v e n t i s a c o m pl e m e n t t o K e y D o w n ev en t . E v er y t i m e t h e u s er r el e a se d a pr e ss e d k e y o n t h e
k e y bo a r d, i n c l u d i n g [ S H I F T ] , [ C T R L ] o r [ A L T ] k e y s , t h e o bj ec t t h a t c u r r e n t l y h a s t h e f o c u s r ec ei v e s
t h i s e v e n t . B e f o r e t h i s e v e n t o c c u r s , a K ey D o w n ev en t w i l l o c c u r a t l ea st o n c e, w i t h a n i de n t i c a l
K e y C o d e v a l u e . W h e r e t h e K e y D o w n e v en t m a y b e e x ec u t e d se v er a l t i m e s w h en a u s er h o l d s a k ey
do w n , t h e K e y U p e v e n t m a y b e e x e c u t ed o n l y o n c e pe r k e y st r o k e, w h en t h e u s er r e l ea s e s t h e k e y .
T h i s m a k e s t h i s e v e n t p e r f e c t f o r l o w - l e v e l h a n dl er s w h en y o u w i sh t o di s a bl e t h e a u t o m a t i c
r e p e t i t i o n o f k e y s o n t h e k e y bo a r d.
L o a d : - T h e L o a d e v e n t l o a d s a f o r m i n t o m e m o r y a n d s p ec i f i e s w h a t a c t i o n s o c c u r w h en i t l o a d s.
T h i s e v e n t i n i t i a l i z e s t h e f o r m a n d a n y r el a t e d v a r i a bl e s w h en t h e f o r m l o a d s. A l o a d ed f o r m i s i n
m e m o r y b u t c a n n o t b e s e e n b y t h e u s er . A f o r m ’ s L o a d e v en t t a k e s pl a c e i n t h r e e w a y s . F i r st , a n y
f o r m l o a d e d a t p r o gr a m s t a r t u p i n i t i a t e a F o r m _ L o a d e v en t . S ec o n d, V I S U A L B A S I C g en er a t e s a
F o r m _ L o a d e v e n t w h e n a f o r m i s l o a d e d p r o g r a m m a t i c a l l y , u si n g L o a d s t a t e m en t . T h i r d, a n y c h a n g e
o r r e f e r e n c e m a d e t o a pr o p e r t y o f a n “ u n l o a d e d” c o n t r o l o r f o r m l o a de d t h e f o r m a n d t r i g g er s t h e
Form_Load event.
E . g. :
Private Sub Form1_Load( )
C o m bo 1 . A d dI t e m = ” A p pl e s”
C o m bo 1 . A d dI t e m = ” O r a n g e”
C o m bo 1 . A d dI t e m = ” G r a p e”
End Sub
L o s t F o c u s : - T h e L o s t F o c u s e v e n t s pe c i f i e s w h a t a c t i o n s t o t a k e w h en a c o n t r o l o r f o r m l o s e s t h e
f o c u s , e i t h e r be c a u s e t h e u s e r s e l e c t e d a n o t h er o b j ec t o r t h e c o d e r e a ss i gn e d t h e f o c u s. T h e
L o s t F o c u s e v e n t c o u l d o c c u r i n d i f f e r e n t w a y . A u s er m a y c h o o s e a n o t h e r c o n t r o l u s i n g m o u s e o r b y
pr e s s i n g t a b k e y . A S e t F o c u s m e t h o d a l so gi v e t h e f o c u s t o a n o t h e r c o n t r o l . T h i s e v e n t c a n c o n t a i n
a c t i o n s t h a t m a y c h a n g e t h e a pp e a r a n c e o f c o n t r o l s o r f o r m s t o si gn i f y t h a t t h i s c o n t r o l h a s l o st
the focus.
E . g. :
Private Sub Text1_LostFocus ( )
C o m m a n d1 . F o r e C o l o r = H 0 0 F F 0 0 0 &
C o m m a n d1 . S e t F o c u s
End Sub
NetScape COMPUTER ACADEMY
33
M o u s e D o w n : - T h e M o u s e D o w n e v e n t o c c u r s w h en a n y b u t t o n o n t h e m o u s e i s pr e s s ed. U n l i k e t h e
C l i c k e v e n t , t h e M o u s e D o w n e v e n t c a n be u s ed t o d et e r m i n e n o t o n l y t h a t a m o u s e bu t t o n h a s b e en
pu s h e d, bu t w h i c h bu t t o n w a s pu s h e d. Y o u c a n a l so d et e r m i n e w h et h er [ S H I F T ] , [ C T R L ] o r [ A L T ]
k e y w a s b e i n g h e l d do w n w h e n t h e m o u s e bu t t o n w a s c l i c k e d. T h i s w i l l a l l o w f o r a v a r i et y o f
di f f e r e n t k i n d s o f i n t e r a c t i o n s w i t h y o u r a p p l i c a t i o n s. I t su p pl i e s f o u r a r gu m en t s t h a t i n d i c a t e
s t a t u s o f t h e m o u s e a t t r i bu t e t h e t i m e t h e e v en t i s c a l l e d
E . g. :
P r i v a t e S u b F o r m _ M o u s e D o w n ( B u t t o n A s I n t e g e r , S h i f t A s I n t e g er , X A s S i n gl e,
Y A s S i n gl e)
I f B u t t o n = v b L e f t B u t t o n T h en
StartX=X
StartY=Y
End If
End Sub
Meanings of Shift Values in MouseDown event
Shift
vbConstants
1
2
4
vbShiftMask
vbCtrlMask
vbAltMask
Meaning
[ S H I F T ] k e y w a s pr e s s ed du r i n g M o u s eD o w n
[ C T R L ] k e y w a s pr e s s ed du r i n g M o u se D o w n
[ A L T ] k e y w a s pr e s s ed d u r i n g M o u s eD o w n
T h e X a n d Y a r gu m e n t s a r e s i n gl e pr ec i s i o n v a r i a bl e s t h a t c o r r e spo n d t o t h e m o u s e po i n t er ’ s
po s i t i o n w i t h i n t h e r e l a t e d f o r m o r c o n t r o l a t t r i bu t e t h e t i m e t h e ev en t w a s c a l l e d. H e r e X i s
horizontal and Y is Vertical coordinates.
M o u s e M o v e : - T h e M o u s e M o v e e v e n t d ef i n e s t h e a c t i o n s t o t a k e w h en t h e u s er m o v e s t h e m o u s e
po i n t e r . Y o u c a n f i n d o u t w h e r e t h e m o u s e po i n t e r w a s w h en i t w a s m o v ed, w h a t bu t t o n ( i f a n y )
w a s do w n , a n d w h e t h e r t h e [ S H I F T ] , [ C O N T R O L ] o r [ A L T ] k e y w a s b ei n g h o l d do w n .
E . g. :
P r i v a t e S u b F o r m _ M o u s e M o v e ( B u t t o n A s I n t e g e r , S h i f t A s I n t e g er , X A s S i n gl e,
Y A s S i n gl e)
I f S h i f t A n d v bS h i f t M a s k T h en
Line ( 100, 100) – ( X, Y )
End If
End Sub
M o u s e U p : - T h e M o u s e U p e v e n t o c c u r s w h en a n y bu t t o n o n t h e m o u s e i s r el e a se d. Y o u c a n a l so
f i n d o u t w h e r e t h e m o u s e po i n t e r w a s w h en t h e b u t t o n w a s r el e a s e d. Y o u c a n a l so d e t e r m i n e
w h e t h e r [ S H I F T ] , [ C T R L ] o r [ A L T ] k e y w a s b ei n g h el d do w n w h en t h e m o u s e b u t t o n w a s r el e a se d .
E . g. :
P r i v a t e S u b F o r m _ M o u s e U p( B u t t o n A s I n t e g er , S h i f t A s I n t eg e r , X A s S i n gl e,
Y A s S i n gl e)
I f B u t t o n = v b L e f t B u t t o n T h en
E n dX = X
EndY=Y
End If
End Sub
Meaning of the Button values in MouseUp event
Button
vbConstants
Meaning
1
2
4
vbLeftButton
v bR i gh t B u t t o n
v b M i d dl e B u t t o n
L e f t bu t t o n w a s pr e s se d
R i gh t bu t t o n w a s p r es s e d
M i d d l e bu t t o n ( i f a v a i l a b l e ) w a s pr e s s ed
NetScape COMPUTER ACADEMY
34
P a i n t : - T h e P a i n t e v e n t de f i n e s w h a t a c t i o n s t a k e pl a c e w h en u n c o v er i n g a pr e v i o u sl y o b sc u r e d
pa r t o f a f o r m o r p i c t u r e bo x . E i t h e r r e st o r i n g a m i n i m i z e d f o r m o r u n c o v er i n g a n o b sc u r e d f o r m
t r i g g e r s a P a i n t e v e n t . T h i s e v e n t o n l y a p pl i e s t o g en e r a t e d gr a ph i c s a n d do e s n o t a f f ec t t h e
a p p e a r a n c e o f t h e c o n t r o l s o n a f o r m . T h i s e v e n t m a y c o n t a i n a c t i o n s t h a t pl a c e gr a ph i c s o bj ec t s
o n t h e s c r e e n . T h i s e v e n t r e p r o du c e s t h e s a m e gr a ph i c i m a g e o r i m a g e s o n a f o r m o r pi c t u r e b o x .
S o m e t i m e s , i t c a n pr o d u c e a t o t a l l y n ew i m a g e.
E . g. :
Private Sub Form_Paint ( )
Static Num as Integer
X=ScaleWidth/2
Y = S c a l e H e i gh t / 2
R a d i u s = S c a l e w i dt h / 4
FillStyle=0
Num=Num+1
Select Case Num
Case 1
Case 2
FillColor=QBColor(0)
Circle(X,Y), Radius , , -6.283 , -1.571
FillColor=QBColor(1)
Circle(X,Y), Radius , , -1.571 , -3.142
Case 3
End Select
End Sub
FillColor=QBColor(2)
Circle(X,Y), Radius , , -3.142 , -4.713
Q u e r y U n l o a d : - T h e Q u e r y U n L o a d e v en t l et s y o u r e a c t t o a n a t t e m p t t o U n l o a d a f o r m . T h i s a l l o w s
y o u t o pe r f o r m a n y n e c e s s a r y c l e a n u p l i k e s a v i n g u n s a v e d d a t a a n d po s si b l e q u e r y t h e u s er b ef o r e
a n y f o r m i s U n l o a d e d. T h i s e v e n t s pe c i f y w h a t a c t i o n s t a k e pl a c e w h en a n a t t em pt i s m a d e t o c l o s e
a f o r m . U s i n g t h i s e v e n t gi v e s t h e u s e r a c h a n c e t o s t o p t h e en t i r e u n l o a d i n g pr o c e s s b ef o r e a n y
f o r m s a r e u n l o a de d.
E . g. :
P r i v a t e S u b F o r m _ Q u e r y U n L o a d( C a n c el a s I n t e g er , U n L o a dM o d e a s I n t e g er )
If ChangeText then
S a v e C h a n ge = M s g B o x ( “ D o c u m en t C h a n g e d… S a v e? ” , _
v b e x c l a m a t i o n + v b Y e sN o C a n c el )
Select Case SaveChange
C a s e v bC a n c el
C a n c el = T r u e
Case vbYes
C a l l F i l eS a v e( 1 )
C a s e v bN o
C a n c el = F a l s e
End Select
‘ C a l l t h e pr o c e du r e t o s a v e f i l e
End if
End Sub
R e s i z e : - T h i s e v e n t s pe c i f i e s w h a t a c t i o n s t a k e pl a c e
o r w h e n t h e f o r m o r pi c t u r e b o x f i r s t b ec o m e s v i si b l e.
br i n gs t h e o bj e c t i n t o t h e u s e r s s i gh t o r c h a n ge s
W i n do w S t a t e , V i s i b l e , H e i gh t , o r W i dt h pr o p er t i e s o f a
E . g. :
Private Sub Form_Resize ( )
w h en t h e u s er r e s i z e s a f o r m o r pi c t u r e bo x ,
T h i s e v en t c a n b e t r i g g er e d by a n y t h i n g t h a t
i t s si z e. W h en y o u r pr o gr a m c h a n g e s t h e
f o r m . V I S U A L B A S I C a R e si z e e v en t .
F o r m 1 . w i dt h = 2 0 0 0
End Sub
S c r o l l : - T h i s e v e n t i s r a i s e d w h e n t h e sc r o l l b a r o f a n o b j ec t h a s b e en m o v e d. T h i s e v e n t c a n b e
u s e d t o m o n i t o r t h e s c r o l l i n g o f t h e A c t i v eX d o c u m en t .
E . g. :
Private Sub HScroll1_Scroll( )
Text1.Text=HScroll1.Value
End Sub
NetScape COMPUTER ACADEMY
35
T e r m i n a t e : - T h i s e v e n t o c c u r s w h e n a f o r m o r o b j ec t i s d es t r o y e d. Y o u d e st r o y a f o r m o r o b j ec t
by s e t t i n g i t t o n o t h i n g, w h i c h y o u do a f t er u n l o a d i n g i t i n t h e c a s e o f a f o r m . T er m i n a t e i s t h e l a st
e v e n t i n t h e l i f e t i m e o f a n o b j e c t . T e r m i n a t e e v en t o c c u r s a f t er U n l o a d e v e n t . U se t h e T e r m i n a t e
e v e n t f o r f i n a l c l e a n u p.
E . g. :
Private Sub Form_Terminate( )
R e D i m N A D T a bl e ( 0 )
‘ f r e e u p a n y a l l o c a t ed m e m o r y
End Sub
T i m e r : - T h e t i m e r e v e n t c o n t a i n s t h e a c t i o n s t h a t t a k e pl a c e w h en a t i m e e qu a l t o t h e i n t e r v a l
v a l u e o f t h e t i m e r c o n t r o l h a s e l a p s e d. T h i s e v en t t r i gg er s e v er y t i m e t h e i n t er v a l o f t i m e el a p s es
u n t i l t h e t i m e r c o n t r o l i s di s a b l e d. T h i s e v en t i s o n l y a ss o c i a t e d w i t h T i m er c o n t r o l .
E . g. :
Private Sub Timer1_Timer ( )
Static a As Integer
If A Then
Picture1.Picture=Picture2.Picture
Else
Picture1. Picture=Picture3.Picture
End If
A= Not A
End Sub
U n L o a d : - T h e U n l o a d e v e n t pr o c e du r e s p ec i f i e s w h a t a c t i o n s t o t a k e w h en a f o r m i s u n l o a d e d. A l l
f o r m s c l o s e a u t o m a t i c a l l y a t t h e e n d o f t h e p r o gr a m . A n u n l o a d s t a t em en t c a n a l s o c l o s e a f o r m .
O n e u s e o f t h i s e v e n t i s t o r e s e t t h e i n f o r m a t i o n o n t h e f o r m b ef o r e r e m o v i n g i t f r o m m em o r y .
A n o t h e r u s e o f t h e U n l o a d e v e n t c a n b e t o gi v e t h e u s er a f i n a l c h a n c e t o p r ev en t e n di n g t h e
pr o gr a m .
E . g. :
P r i v a t e S u b F o r m _ U n L o a d( C a n c e l A s I n t e g er )
I F M s g B o x ( “ A r e S u r e t o E x i t ? ” , v b Y es N o ) = v bY e s T h en
UnLoad Me
ELSE
Cancel = True
END IF
End Sub
NetScape COMPUTER ACADEMY
36
Chapter 7
Working With Forms & Project
Working with forms
T h e f o r m i s t h e o n e o f t h e m o s t b a si c o b j ec t i n V I S U A L B A S I C , i n w h i c h t h e a p p l i c a t i o n i s
d e v e l o p e d. A f o r m i s a w i n do w t h a t c o n t a i n s a p pl i c a t i o n c o de a n d h a s o t h e r o bj ec t s p l a c e d o n i t t o
c r e a t e t h e u s e r i n t e r f a c e . A t t h e t o p o f t h e f o r m i s t h e t i t l e b a r , w h i c h di s pl a y s t h e f o r m ' s t i t l e. A t
r i gh t i n t h e t i t l e b a r i s t h e C o n t r o l bo x , i n c l u d i n g m i n i m i z e, m a x i m i z e a n d C l o s e bu t t o n s. T h e m a i n
a r e a o f a f o r m - t h e a r e a w h e r e e v e r y t h i n g t a k e s pl a c e - i s c a l l e d t h e c l i e n t a r e a . I n g en e r a l , V I S U A L
B A S I C c o de w o r k s w i t h c o n t r o l s i n t h e c l i e n t a r e a a n d l e a v e s t h e r e st o f t h e f o r m t o V I S U A L B A S I C .
A l s o y o u c a n g i v e di f f e r e n t t y p e s o f b o r d er s t o y o u r f o r m .
A f o r m m a y f i l l t h e e n t i r e s c r e en o r h a v e o t h er f o r m s c o n t a i n e d w i t h i n i t o r m a y b e a
di a l o gu e bo x .
V I S U A L B A S I C i n i t i a l l y i n c l u d e s a d ef a u l t f o r m , f o r m 1 .
You can change the
pr o p e r t i e s o f a f o r m t o i d e n t i f y t h e pu r po s e. A f o r m h a s i t s o w n p r o p e r t y , e v en t s a n d m et h o d s.
T h e s e a r e f e w s pe c i a l pr o p e r t y a p p l i e d o n l y t o a f o r m ,
I)
a)
b)
c)
d)
e)
Border style
None
F i x e d s i n gl e : - A s i n g l e f i x e d w i d t h bo r d er i s s h o w n .
S i z a bl e : - T h e d e f a u l t s e t t i n g. U s e r c a n r e si z e t h e f o r m .
F i x e d do u b l e : - A do u bl e f i x e d w i dt h bo r d er i s sh o w n .
F i x e d t o o l w i n do w : - U s e d f o r t o o l b a r t h a t m a y b e f l o a t i n g o n l y t h e
t i t l e b a r a n d c l o s e bo x a r e v i si b l e i n a r e du c e d s i z e .
f ) S i z a bl e t o o l w i n do w : - S a m e a s f i x e d t o o l w i n d o w bu t bo r d er s a r e
r e s i z a bl e .
I I ) C a p t i o n : - T h e t i t l e f o r t h e w i n do w i s s t o r e i n c a pt i o n pr o p er t y .
t h e c a pt i o n a p p e a r s b e l o w t h e f o r m i t e m .
W h en t h e f o r m i s m i n i m i z e d,
I I I ) C o n t r o l b o x : - D e t e r m i n e s w h et h er t h e c o n t r o l bo x i s a v a i l a b l e by c l i c k i n g t h e u p p er l e f t
corner. True / false.
I V ) I c o n : - S pe c i f i e s t h e i c o n f o r t h e w i n do w i n u p pe r l ef t c o r n er .
V ) M a x b u t t o n : - W h e t h e r t h e m a x bu t t o n i s sh o w n o r n o t .
V I ) M D I C h i l d : - S p e c i f i e s i f t h i s w i n do w i s m u s t b e s h o w n w i t h i n a m u l t i p l e
(MDI) true / false.
do c u m en t
i n t er f a c e
V I I ) M i n b u t t o n : - I n di c a t e s w h e t h e r t h e m i n i m i z e bu t t o n i s s h o w n o r n o t . T r u e
/ f a l s e.
V I I I ) S t a r t u p p o s i t i o n ; - u s e d t o po si t i o n y o u r w i n do w . Y o u c a n p i c k a
st a r t i n g
po s i t i o n
f r o m t h e f o l l o w i n g,
( a ) M a n u a l : - A n y po s i t i o n m u s t b e do n e.
( b) C e n t e r o w n e r : - T h e f o r m s h o u l d b e sh o w n i n t h e c en t er o f i t s
c o n t a i n er .
( c ) C e n t e r S c r e e n : - T h e f o r m sh o u l d be sh o w n i n t h e c en t e r o f u s e r
sc r e en .
( d) W i n do w d e f a u l t : - L e t s w i n do w t o d e si gn w h er e t h e f o r m sh o u l d be sh o w n .
e ) W i n do w s t a t e : - I n di c a t e s w h et h e r t h e w i n do w i s sh o w n n o r m a l l y , m i n i m i z e d
m a x i m i z e d.
or
Displaying form: ( a ) S h o w m e t h o d: - U s e d t o di s pl a y t h e f o r m o b j ec t . E . g. : T o d i s pl a y f o r m 2 ,
Form2.show
( b) L o a d s t a t e m e n t : - I t u s e d t o l o a d a f o r m o r c o n t r o l i n t o m e m o r y b u t do es n o t
di s pl a y i t .
E . g. : - L o a d f o r m 2
Hiding and unloading: H i d e m e t h o d: - T h e h i d e m e t h o d h i d es a f o r m
E . g. : - F o r m 2 . h i d e .
U n l o a d s t a t e m e n t : - T h e u n l o a d st a t em en t r em o v e t h e f o r m t o d i sp l a y a n d
memory.
E . g. : u n l o a d f o r m 2 .
release
its
NetScape COMPUTER ACADEMY
37
Setting run time and design time properties
M a n y pr o p e r t i e s c a n b e s e t a t r u n t i m e o r de s i gn t i m e. A t de s i gn t i m e, t h e c o n t r o l s a r e
a d d e d t o a p r o j e c t a n d t h e i r p r o pe r t i e s a r e se t u si n g pr o p er t i e s w i n do w .
D u r i n g r u n t i m e , t o s e t a p r o p e r t y , y o u m u s t w r i t e t h e r e l e v a n t c o d e.
O b j e c t . pr o p e r t y n a m e = v a l u e
E . g. : - T e x t 1 . T e x t = " N e t s "
C o m m a n d1 . c a pt i o n = " c l o s e "
L i s t 1 . v i s i bl e = f a l s e
Check 1.value = 1
A t t h e l e f t s i d e o f t h e a s s i gn m en t s t a t em en t , o b j ec t . p r o p er t y n a m e i s i d en t i f y i n g t h e o bj ec t
a n d p r o pe r t y t o b e s e t . T h e v a l u e o n t h e r i gh t s i d e gi v e s a n ew s et t i n g f o r t h e o bj ec t . W h e n a
pr o gr a m r e s e t s a p r o p e r t y a t r u n t i m e , t h e n ew s et t i n g o v e r w r i t e t h e v a l u e o f t h e c u r r en t s et t i n g .
Moving and Sizing Controls using Code
S o m e t i m e s i t ' s n e c e s s a r y t o m o v e o r r e s i z e t h e c o n t r o l s i n a f o r m a s a pr o gr a m i s r u n n i n g, bu t f o r
s o m e r e a s o n , m a n y V I S U A L B A S I C p r o g r a m m er s t h i n k y o u c a n o n l y do t h a t a t de s i g n t i m e. I n f a c t ,
y o u c a n do i t a t r u n t i m e e a s i l y .
A l l c o n t r o l s h a v e t h e s e pr o pe r t i e s a v a i l a bl e a t de s i g n t i m e o r r u n t i m e t o s e t t h ei r l o c a t i o n a n d
di m e n s i o n s .




T o p - T h e y c o o r d i n a t e o f t h e t o p l ef t o f t h e c o n t r o l .
L e f t - T h e x c o o r d i n a t e o f t h e t o p l ef t o f t h e c o n t r o l .
W i d t h - T h e w i dt h o f t h e c o n t r o l .
H e i gh t - T h e h e i g h t o f t h e c o n t r o l .
Y o u c a n c h a n g e a l l t h e s e s e t t i n g s i n t er a c t i v e l y t o m o v e o r si z e a c o n t r o l i n a f o r m . N o t e t h a t a l l
m e a s u r e m e n t s a r e i n T w i p ( 1 / 1 4 4 0 o f a n i n c h ) b y d ef a u l t , a n d t h a t t h e o r i gi n ( 0 , 0 ) i n a f o r m i s a t
upper left.
Y o u c a n a l s o u s e a c o n t r o l ' s M o v e ( ) m et h o d t o m o v e a c o n t r o l t o a n ew l o c a t i o n :
O b j e c t .m o v e l e f t , [ t o p , [ w i d t h , [ h e i g h t ] ] ]
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
C o m m a n d1 . W i d t h =
2 * C o m m a n d1 . W i d t h
C o m m a n d1 . H e i gh t = 2 * C o m m a n d1 . H ei gh t
C o m m a n d1 . M o v e ( C o m m a n d1 . L e f t + 5 0 0 )
End Sub
Showing and Hiding Controls in a Form
Y o u c a n u s e t h e V i s i bl e pr o p e r t y t o sh o w o r h i d e c o n t r o l s a t r u n t i m e. Y o u c a n s et t h i s pr o p e r t y
a l s o a t de s i g n t i m e .
O b j e c t . V i s i bl e = T r u e
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
T e x t 1 . V i s i bl e = N o t T e x t 1 . V i si bl e
End Sub
Measurements in Forms
T h e de f a u l t m e a s u r e m e n t u n i t s f o r f o r m s a r e t w i p s.
Y o u c a n g e t t h e di m e n s i o n s o f a f o r m ' s c l i en t a r e a w i t h t h es e pr o p er t i e s




S c a l e W i d t h - T h e w i dt h o f t h e c l i en t a r e a .
S c a l e H e i gh t - T h e h e i g h t o f c l i e n t a r e a .
S c a l e L e f t - T h e h o r i z o n t a l c o o r di n a t e o f u p p er l e f t o f c l i en t a r ea .
S c a l e T o p - T h e v e r t i c a l c o o r d i n a t e o f u pp e r l ef t o f c l i e n t a r ea .
A n d y o u ge t t h e o v e r a l l di m e n s i o n s o f t h e f o r m u si n g t h es e pr o p er t i e s




W i d t h - T h e w i dt h o f t h e f o r m
H e i gh t - T h e h e i g h t o f t h e f o r m
L e f t - T h e h o r i z o n t a l c o o r di n a t e o f u p p er l ef t o f F o r m .
T o p - T h e v e r t i c a l c o o r d i n a t e o f u p pe r l ef t o f t h e F o r m .
NetScape COMPUTER ACADEMY
38
Y o u c a n a l s o u s e t h e S c a l e M o d e pr o p e r t y t o s et a f o r m ' s c o o r d i n a t e sy s t em u n i t s - y o u do n ' t h a v e t o
u s e t w i p s . H e r e a r e t h e po s s i bl e v a l u e s f o r S c a l e M o d e.








0-User defined
1-Twips (1/1440 of an inch)
2-Points (1/72 of an inch )
3-Pixels
4 - C h a r a c t e r s ( 1 2 0 t w i ps h o r i z o n t a l l y , 2 4 0 t w i p s v er t i c a l l y )
5-Inches
6-Millimeters
7-Centimeters
Creating Forms in Code
N e w f o r m s a r e s i m p l y n e w o bj e c t s i n V I S U A L B A S I C . T o d ec l a r e a n ew f o r m b a s e d o n a f o r m y o u
a l r e a d y h a v e , s a y F o r m 1 , y o u j u s t u s e D i m . N e x t , y o u c r e a t e t h e n ew f o r m w i t h t h e N ew k e y w o r d,
F i n a l l y y o u sh o w i t u s i n g S h o w m e t h o d .
Private Sub NewForm_Click( )
Dim NewForm As Form1
Set NewForm=New Form1
NewForm.Show
End Sub
Developing an appli cation
A n a pp l i c a t i o n c a n b e c r e a t e d w i t h t h e pr o j ec t . A pr o j ec t i s a c o l l ec t i o n o f f i l es t h a t a r e
u s e d t o b u i l d a n a p pl i c a t i o n .
W r i t i n g a V I S U A L B A S I C pr o gr a m h a s t w o st e p s.
1 ) V i s u a l pr o g r a m m i n g s t e p: - i t i n v o l v e s d e s i g n i n g a n a p pl i c a t i o n w i t h v a r i o u s t o o l s t h a t c o m e
along with VISUAL BASIC package.
2 ) C o d e pr o gr a m m i n g s t e p: - T h i s i n v o l v es w r i t i n g p r o gr a m s i n c o d e w i n d o w .
S a v i n g a p r o j e c t : - C h o o s e f i l e s a v e . W h en a p r o j ec t i s sa v e d t w o f i l e s a r e s a v e d; n a m el y p r o j ec t
f i l e a n d f o r m f i l e . T h e pr o j e c t f i l e h a s e x t en si o n V B P a n d c o n t a i n s t h e i n f o r m a t i o n t h a t V I S U A L
B A S I C u s e s f o r bu i l di n g t h e p r o j e c t . T h e f o r m f i l e c o n t a i n s i n f o r m a t i o n a bo u t t h e f o r m a n d h a s
. F R M e x t e n s i o n . I f y o u h a v e a s t a n d a r d m o d u l e w i t h i n y o u r p r o j ec t i t i s s a v e d i n s ep a r a t e f i l e w i t h
.BAS extension.
R u n n i n g t h e p r o j e c t : - Y o u c a n r u n y o u r p r o j ec t u s i n g a n y o f t h e f o l l o w i n g m e t h o d s
P r e s s F 5 , C l i c k t h e r u n b u t t o n o n t h e st a n d a r d t o o l b a r
Choose start from run menu on the step tool bar
C r e a t i n g a n e x e c u t i v e f i l e : - C h o o s e f i l e> m a k e E X E f i l e c o m m a n d. A s t h e a p pl i c a t i o n i s c o n v e r t e d
i n t o e x e t h e u s e r c a n r u n i t o n a n y o t h e r w i n do w s p r o gr a m .
E n d i n g a n a p pl i c a t i o n : - T h e E n d s t a t e m en t i s u s e d t o t er m i n a t e t h e ex ec u t e t h e a p pl i c a t i o n i t
unload all the form from memory.
NetScape COMPUTER ACADEMY
39
Chapter 8
VISUAL BASIC Language
Elements of Visual Basic Syntax
E v e r y P r o g r a m u s e s a n o . o f b a s i c b u i l d i n g bl o c k s. T h e s e el e m e n t s w i l l b e i n e v e r y pr o gr a m y o u
write in one way or another.
1)
Literals :-
a L i t e r a l i s t h e si m pl e st bu i l di n g bl o c k y o u w i l l se e i n y o u r V I S U A L B A S I C
pr o gr a m . I t i s e i t h e r a pi e c e o f t ex t o r a n u m b er t h a t y o u u s e i n y o u r p r o gr a m s. E v er y
pr o gr a m w i l l h a v e s o m e l i t e r a l s i n i t . T ex t l i t e r a l s a r e k n o w n a s s t r i n g s, a n d a r e a l w a y s
s u r r o u n d e d w i t h do u bl e qu o t e d w h en u s ed i n a p r o g r a m
E . g .: Print “ This is Text “
H e r e , “ T h i s i s a T e x t “ i s a s t r i n g. N u m er i c l i t e r a l s do n o t r e qu i r e do u b l e q u o t e s w i t h i n y o u r
pr o gr a m s .
E . g .: 2)
Print 3456
Constants:- A c o n s t a n t c a n b e u s ed t o r e p l a c e a l i t er a l t h a t i s d i r ec t l y i n y o u r c o de.
U s i n g a c o n s t a n t y o u c a n c h a n g e t h e v a l u e o f c o n st a n t a n d a l l o f t h e u s es o f t h a t c o n st a n t
w i l l u s e t h e c o r r e c t v a l u e . C o n st a n t s a r e t r e a t e d j u s t l i k e l i t er a l s b y V i s u a l B a si c . I n o r de r
t o u s e a c o n s t a n t , y o u m u s t d ec l a r e i t . D ec l a r i n g a c o n s t a n t s i m pl y m e a n s t h a t y o u a r e
t e l l i n g V i s u a l B a s i c a bo u t i t . T h e C o n s t k e y w o r d i s u se d t o d ec l a r e a c o n s t a n t .
E . g .: -
3)
Const MyConstant =”Hi”
Data Type s:-
E a c h k i n d o f d a t a y o u u s e i n V i su a l B a si c i s k n o w n a s D a t a T y p e. E a c h
da t a t y p e h a s l i m i t s t o t h e k i n d o f i n f o r m a t i o n a n d t h e m i n i m u m a n d m a x i m u m v a l u e
it
c a n h o l d. I n a dd i t i o n s o m e t y p e s c a n i n t er c h a n g e w i t h so m e o t h er t y p es. B y
d ef a u l t
VISUAL
B A S I C v a r i a b l e s a r e v a r i a n t d a t a t y p e s. T h e v a r i a n t d a t a t y p e c a n s t o r e n u m e r i c ,
da t e/ t i m e,
s t r i n g da t a ' s . W h e n a v a r i a b l e i s d e c l a r e d a d a t a t y pe i s su p pl i ed f o r i t t h a t de t er m i n e s t h e k i n d o f
da t a t h e y c a n s t o r e . T h e f u n d a m e n t a l d a t a t y p e i n V I S U A L B A S I C
a r e v a r i a n t , i n t e g er , l o n g,
s i n g l e , do u b l e , s t r i n g, c u r r e n c y , b y t e a n d B o o l e a n . E a c h da t a t y p e h a s l i m i t s w i t h t h e k i n d o f
information and the minimum and maximum
v a l u e i t c a n h a v e.
Type
Value range
1. Byte
0 to 255
2. Boolean
true or false
3 . I n t e ge r
-32768 to 32767
4. Long
-2,147,483,648 to 2,147,483,647
5 . S i n gl e
7. Date
- 3 . 4 0 2 8 2 3 * 1 0 3 t o - 1 . 4 0 1 2 9 8 * 1 0 4 5 ( f o r - v e v a l u e)
1 . 4 0 1 2 9 8 * 1 0 - 4 5 t o 3 . 4 0 2 8 2 3 * 1 0 3 8 ( f o r + v e v a l u e)
- 1 . 7 9 * 1 0 3 0 8 t o - 4 . 9 4 * 1 0 - 3 2 4 ( f o r - v e v a l u e)
4 . 9 4 * 1 0 - 3 2 4 t o 1 . 7 9 * 1 0 3 0 8 ( f o r + v e v a l u e)
J a n u a r y 1 , 1 0 0 t o D ec em b er 1 , 9 9 9 9
8. String
0 t o a p pr o x . 2 b i l l i o n c h a r a c t er s
9. Currency
922,337,203,685,477.5908
6. Double
10. Decimal
to
922,337,203,585,477.
5907
-79,228,162,514,264,337,593,543,950,335 to
79,228,162,514,264,337,593,543,950,335
4) Variables:- V a r i a bl e s a r e u s e d f o r s t o r i n g v a l u e s t em po r a r i l y . A d ef i n e d n a m i n g st r a t e g y a s
t o b e f o l l o w s w h i l e n a m i n g a v a r i a bl e .
A v a r i a b l e n a m e m u s t b e gi n w i t h a n a l ph a b et a n d sh o u l d n o t ex c e e d 2 5 5 c h a r a c t er s. I t m u st b e
u n i qu e w i t h i n t h e s a m e s c o pe . I t s h o u l d n o t c o n t a i n a n y sp ec i a l c h a r a c t er s l i k e % , & , ! E t c .
Visual Basic declaring statements
Dim
Private P u bl i c ReDim Static T y pe
-
U s i n g D i m a l o n e c r e a t e s v a r i a n t s. U s e t h e A s k e y w o r d t o s pec i f y v a r i a b l e t y p e
M a k e s v a r i a bl e a v a i l a b l e o n l y i n t h e c u r r en t f o r m / m o du l e
M a k e s v a r i a bl e gl o b a l - v a r i a b l e i s a v a i l a bl e t o t h e r e st o f pr o gr a m
R e a l l o c a t e s s t o r a g e s p a c e f o r dy n a m i c a r r a y v a r i a b l e s
V a r i a b l e pr e s e r v e s i t s v a l u e b et w e en pr o c e du r e c a l l s
D e c l a r e s a U s e r t y pe
NetScape COMPUTER ACADEMY
40
Declaring a variable: T h e r e a r e m a n y w a y s f o r d e c l a r i n g a v a r i a b l e i n V I S U A L B A S I C . D e pe n d i n g o n w h er e t h e v a r i a b l e s
a r e d e c l a r e d a n d h o w t h e y c a n b e u s e b y o u r a p pl i c a t i o n . T h e d i f f er en t w a y s o f d ec l a r i n g v a r i a b l e s
are
1. Implicit declaration: - D e c l a r i n g a v a r i a b l e t el l s V I S U A L B A S I C t o r es e r v e s s pa c e i n
m e m o r y . I t i s n o t a m u s t t h a t a v a r i a b l e sh o u l d b e d ec l a r ed b ef o r e u s i n g i t . A u t o m a t i c a l l y w h en
V I S U A L B A S I C e n c o u n t e r s a n e w v a r i a b l e, i t a s si gn s de f a u l t v a r i a b l e t y p e a n d v a l u e. T h i s i s c a l l e d
i m pl i c i t d e c l a r a t i o n . T h i s t y p e o f d e c l a r a t i o n i s e a s i er f o r t h e u s er s, i t i s a d v i s a bl e t o dec l a r e t h em
explicitly.
T h e v a r i a bl e s a r e d e c l a r e d w i t h a D I M st a t em en t t o n a m e t h e v a r i a bl e a n d i t s t y p e. T h e A s
t y p e c l a u s e i n D I M s t a t e m e n t a l l o w s t o d ef i n e t h e da t a t y p e o r o b j ec t t y p e o f t h e v a r i a b l e. T h i s
t y p e o f d e c l a r a t i o n i s e x pl i c i t d e c l a r a t i o n .
Syntax
DIM variable [as type]
1.
2.
3.
4.
Dim
di m
di m
di m
ab as integer
ab
ac as string
ac as Boolean
->variant
Using Option Explicit statement
i t m a y b e c o n v e n i e n t t o de c l a r e v a r i a b l e s i m p l i c i t l y ; b u t i t c a n l e a d t o er r o r s t h a t m a y n o t
b e r e c o gn i z e d a t r u n t i m e . I n V I S U A L B A S I C t o pr ev en t er r o r s o f t h i s n a t u r e, w e c a n d ec l a r e a
v a r i a bl e by a dd i n g t h e f o l l o w i n g s t a t e m en t t o t h e g en e r a l d ec l a r a t i o n s e gm en t
Option Explicit.
T h i s f o r c e s t h e u s e r t o d e c l a r e a l l t h e v a r i a bl e s . T h i s s t a t em en t c h ec k s i n t h e m o du l e f o r u s a g e o f
a n y u n d e c l a r e d v a r i a b l e s a n d r e po r t s a n er r o r t o t h e u s e r . T h e u s er c a n t h u s r ec t i f y t h e er r o r . T h i s
s t a t e m e n t c a n b e p l a c e d i n g e n e r a l d e c l a r a t i o n s ec t i o n o f ea c h m o du l e u si n g f o l l o w i n g s t e p s.
Choose tools > options > e dit
C h e c k r e qu i r e v a r i a b l e d e c l a r a t i o n
Selecting Variable Types
T h e r e ’ s a w i d e r a n g e o f d a t a t y pe s . V i su a l B a s i c h a s a l a r g e n u m b er o f d a t a f o r m a t s. T h e v a r i a n t
t y p e d e s e r v e s s p e c i a l m e n t i o n , be c a u s e i t ’ s t h e def a u l t v a r i a bl e t y p e. I f y o u do n ’ t d ec l a r e a t y p e
f o r a v a r i a bl e , i t i s m a d e a v a r i a n t .
E . g. :
Dim ab
B e c a r e f u l o f v a r i a n t s - t h e y w a s t e t i m e bec a u s e V I S U A L B A S I C h a s t o t r a n sl a t e t h em i n t o o t h er da t a
t y p e s b e f o r e u s i n g t h e m , a n d t h e y a l s o t a k e u p m o r e s p a c e t h a n o t h er d a t a t y pe s.
Converting betwe en Data Types
V I S U A L B A S I C s u ppo r t s a n o . o f w a y s f o r c o n v e r t i n g f r o m o n e t y p e o f v a r i a bl e t o a n o t h er - i n f a c t ,
t h a t ’ s o n e o f t h e s t r e n gt h s o f t h e l a n gu a g e. T h e po ss i bl e c o n v e r si o n st a t em en t s a n d p r o c edu r es a r e
VISUAL BASIC Data Conversion functions
ANSI value to string
S t r i n g t o l o w e r c a s e o r U p pe r c a s e
Date to serial number
D e c i m a l n u m b e r t o o t h e r ba s e s
N u m be r t o s t r i n g
One data type to another
Date to day, month, weekday, or year
Time to hour, minute or second
String to ASCII value
String to number
T i m e t o s e r i a l n u m be r
Chr
F o r m a t , L C a s e, U C a s e
D a t eS er i a l , D a t eV a l u e
H ex , O c t
Format, Str
C B o o l , C B y t e, C C u r , C D a t e , C D b l , C D ec ,
C I n t , C L n g, C S n g, C S t r , C V a r , C V E r r , F i x , I n t
D a y , M o n t h , W e ek d a y , Y e a r
H o u r , M i n u t e, S ec o n d
A sc
Val
T i m eS er i a l , T i m eV a l u e
Scope of variables: -
A v a r i a bl e i s s c o p e d t o pr o c ed u r e l ev e l ( l o c a l ) o r m o du l e l e v el de p en di n g o n h o w i t i s
d e c l a r e d. A v a r i a bl e i s d e c l a r e d i n g en er a l d ec l a r a t i o n sec t i o n o r f o r m a n d i s a v a i l a b l e t o a l l t h e
pr o c e du r e s . T h i s i s c a l l e d m o du l e l e v e l v a r i a bl e d ec l a r a t i o n .
L o c a l v a r i a bl e s a r e r e c o gn i z e d o n l y i n t h e p r o c e du r e i n w h i c h t h e y a r e d ec l a r e d. T h e y c a n b e
d e c l a r e d w i t h di m a n d s t a t i c k e y w o r d. I f w e w a n t a v a r i a bl e t o be a v a i l a b l e t o a l l t h e p r o c edu r e s
w i t h i n t h e s a m e m o du l e o r a l l p r o c e du r e s i n a p p l i c a t i o n , a v a r i a bl e i s de c l a r e d w i t h b r o a d e r sc o p e.
NetScape COMPUTER ACADEMY
41
Local variables
A l o c a l v a r i a b l e i s o n e t h a t d e c l a r e d i n si d e a pr o c e du r e. I t i s o n l y a v a i l a b l e t o t h e c o de i n s i d e t h e
pr o c e du r e a n d c a n b e d e c l a r e d u s i n g d i m s t a t e m en t . O n c e a pr o c e du r e i s e x ec u t e d, t h e v a l u e s o f
i t s l o c a l v a r i a b l e a r e l o s e d a n d t h e m em o r y u s e d by t h i s v a r i a bl e c a n b e r ec l a i m . V a r i a b l e t h a t a r e
d e c l a r e d w i t h k e y w o r d d i m e x i s t o n l y a s l o n g a s t h e pr o c e du r e ex ec u t e d.
Static variable
S t a t i c v a r i a b l e s a r e n o t r e i n i t i a l i z e d e a c h t i m e V I S U A L B A S I C i n v o l v e s a pr o c e du r e a n d t h u s r et a i n s
o r pr e s e r v e s v a l u e s e v e n w h e n a pr o c e du r e en d s.
A s t a t i c v a r i a b l e i s d e c l a r e d a s gi v e n be l o w .
Static ab as integer.
Module level variable
A m o du l e l ev e l v a r i a b l e i s a v a i l a b l e t o a l l t h e pr o c e du r e s i n m o du l e .
pu bl i c o r p r i v a t e k e y w o r d s .
T h ey a r e dec l a r ed u s i n g
P u bl i c a b a s i n t e ge r
Private xy as string
D e c l a r i n g a v a r i a bl e w i t h pu b l i c k e y w o r d m a k e s i t a v a i l a bl e t h r o u gh o u t t h e a pp l i c a t i o n e v en f o r
o t h e r m o du l e s . A t t h e m o du l e l e v e l t h e r e i s n o di f f er en c e b e t w e en d i m a n d p r i v a t e, bu t pr i v a t e i s
r e f e r r e d b e c a u s e i t i s e a s i e r t o r e a d.
P u bl i c v a r i a b l e s s h o u l d n o t be de c l a r ed w i t h i n a pr o c e du r e. P u b l i c v a r i a bl e s i n di f f er en t m o du l e s
c a n h a v e t h e s a m e n a m e a n d t h e y c a n b e di f f er e n t i a t e d i n c o d e.
E . g. : i f a pu bl i c i n t e g e r v a r i a bl e a b i s d ec l a r e d i n bo t h f o r m 1 a n d M o d u l e 1 o f a p r o j ec t , i t c a n b e
r e f e r r e d a s f o r m 1 .a b a n d m o d u l e 1 .a b.
s a m e v a r i a b l e c a n n o t b e u s e d f o r d i f f e r en t d a t a t y p e s.
Global Scope
M o s t po w e r f u l o f t h e s c o p e . T o d e f i n e a v a r i a b l e a s gl o b a l . t h e pu b l i c d ec l a r a t i o n s t a t em en t i s
u s e d. T h e s y n t a x o f t h e pu bl i c s t a t e m en t i s s a m e a s D i m ex c e pt t h e k ey w o r d pu bl i c
Public VS local variable
A v a r i a bl e c a n h a v e t h e s a m e n a m e , d i f f er en t sc o p e.
E . g. : w e c a n h a v e a pu bl i c v a r i a bl e n a m ed X w i t h i n a pr o c ed u r e. W e c a n d ec l a r e a l o c a l v a r i a bl e
X . r e f e r e n c e t o t h e n a m e X w i t h i n t h e p r o c ed u r e w o u l d a c c e ss t h e l o c a l v a r i a bl e a n d r ef er en c e o u t
t h e pr o c e du r e w o u l d a c c e s s pu bl i c v a r i a b l e.
Verifying Data Types
Y o u c a n c h a n g e a v a r i a bl e ’ s t y p e w i t h R e D i m i n V I S U A L B A S I C , a s s i g n o b j ec t s t o v a r i a b l e s u s i n g
S e t , a n d e v e n c o n v e r t s t a n da r d v a r i a bl e s i n t o a r r a y s. V I S U A L B A S I C h a s a n u m b er o f d a t a
v e r i f i c a t i o n f u n c t i o n s , a n d y o u c a n u s e t h e s e f u n c t i o n s t o i n t er r o ga t e o bj ec t s a n d d e t e r m i n e t h ei r
types.
Function
Description
IsArray( )
IsDate( )
I s E m pt y ( )
IsError( )
I s M i s s i n g( )
Returns True
Returns True
Returns True
Returns True
Returns True
pa r a m e t e r i n
Returns True
Returns True
Returns True
IsNull( )
IsNumeric( )
IsObject( )
E . g. :
if passed an array
i f p a s s e d a da t e
i f p a s s e d v a r i a b l e i s u n i n i t i a l i z ed
i f p a s s e d a n er r o r v a l u e
i f v a l u e w a s n o t pa s s e d f o r sp ec i f i e d
p r o c e du r e c a l l
if passed Null
if passed Numeric value
i f p a s s e d a n O b j ec t
Dim x As Integer
X=100
Print IsNumer ic(x)
5) O pe ra t or s: - V i s u a l B a s i c h a s a n u m b e r o f o p er a t o r s t o w o r k w i t h n u m e r i c , B o o l e a n , a n d
da t a .
a)
b)
text
Assi g n me n t o p era t o r: - T h e e qu a l s i g n ( = ) i s u s e d t o a s si gn t h e v a l u e o f a
c o n s t a n t , l i t e r a l , o r v a r i a b l e t o a n o t h er v a r i a b l e . L i t er a l a n d c a n n o t b e o n t h e l e f t
s i d e , t h e y s h o u l d be o n r i gh t si d e i n u si n g a s si g n m en t o pe r a t o r .
Ari t h m e tic Op e ra t or s: - A r i t h m e t i c
i ) A d d i t i o n o p e r a t o r ( + ) : - t h e a d di t i o n o p er a t o r i s t h e pl u s si gn c o m m o n l y
used in addition.
E . g. : - P r i n t 3 + 4 . 5
= 7.5
NetScape COMPUTER ACADEMY
42
i i ) S u bt r a c t i o n o pe r a t o r ( - ) : - t h e S u b t r a c t i o n o p er a t o r i s t h e sa m e a s t h e o n e y o u u s e f o r
s u bt r a c t i o n , t h e m i n u s s i gn . T h i s c h a r a c t e r i s a l s o u s ed t o sh o w n e g a t i v e n u m b er s
E . g. : - P r i n t 8 - 4 . 5 = 3 . 5
i i i ) M u l t i pl i c a t i o n o p e r a t o r ( * ) : - T h e a st er i sk i s u se d t o m u l t i pl y t w o v a r i a b l e s, c o n st a n t s ,
o r l i t e r a l s a n d pr o du c e a r e s u l t .
E . g. : - P r i n t 3 * 4 . 5 = 1 3 . 5
i v ) D i v i s i o n o p e r a t o r ( / ) : - T h e f o r w a r d sl a sh i s u s e d t o di v i d e t w o v a r i a b l e s, c o n st a n t s, o r
literals.
E . g. : - P r i n t 8 / 4
= 2
v ) I n t e g e r D i v i s i o n o pe r a t o r ( \ ) : - i n t e g er di v i s i o n o p er a t o r r o u n d s t h e t w o n u m b er s t o
i n t e ge r v a l u e s a n d p r o d u c e s t h e r e su l t a s a n i n t e g er . S t a n d a r d d ec i m a l di v i s i o n do e s n o t
r o u n d o r t r u n c a t e t h e o p e r a n d s o r t h e r e su l t .
E . g. : - P r i n t 5 . 6 \ 2 = 3
h e r e t h i s p r o c e s s r o u n d s 5 . 6 t o 6 , a n d di v i s i o n p r o du c e s t h e r e su l t 3
v i ) E x po n e n t O p e r a t o r ( ^ ) : - T h e e x po n en t o p e r a t o r i s u s ed t o r a i s e a n u m b e r t o a po w er .
E . g. : - P r i n t 2 ^ 3 = 8 ( 2 * 2 * 2 )
v i i ) M o d u l u s o pe r a t o r ( m o d ) : - T h e m o du l u s f u n c t i o n c a l c u l a t es t h i s v a l u e by pr o du c i n g t h e
r e m a i n de r l e f t w h e n di v i d i n g t h e t w o i n t e ge r s . W h en u se d w i t h n o i n t e ge r s, t h e f u n c t i o n
r o u n ds bo t h o p e r a n d s b e f o r e pr o c e s si n g t h e r e su l t .
E . g. : - P r i n t 1 1 m o d 3
=
2
C)
C o mp ar iso n O p e ra t o rs: - V I S U A L B A S I C p r o v i d e s a n u m b e r o f o p er a t o r s t o u s e
f o r c o m p a r i s o n s o f n u m b er s a n d s t r i n g s. U si n g o n e o f t h es e o p e r a t o r s w i t h t w o
v a r i a bl e s , c o n s t a n t s , o r l i t e r a l s c r e a t e s a l o g i c a l e x pr es s i o n . T h e o p e r a t o r s l i s t ed
b e l o w c a n b e u s e d t o c o m p a r e t w o qu a n t i t i e s.
Operator
Meaning
=
<>
>
>=
<
<=
is
is
is
is
is
is
e qu a l t o
n o t e qu a l t o
gr e a t er t h a n
gr e a t er t h e n o r e qu a l t o
less than
l e s s t h a n o r e qu a l t o
D)
C on ca t en a ti o n Op e r at or : - C o n c a t en a t i o n i s t h e pr o c e s s o f pu t t i n g t w o s t r i n g s
E)
E . g. : - a b= “ I C ” + “ E S ”
Print ab
= “ICES”
L o gic al O pe ra t ors : - L o gi c a l o p e r a t o r s a r e u s e d t o p er f o r m o pe r a t i o n b et w e en
v a l u e s o r e x pr e s s i o n s t h a t r e su l t i n ei t h e r T r u e o r F a l s e. Y o u c a n u s e l o gi c a l
o p e r a t o r s t o c o m bi n e m u l t i p l e e x p r es s i o n s.
t o g e t h e r . c o n c a t e n a t i o n i s a v e r y u s ef u l f e a t u r e. T o c o n c a t en a t e t w o s t r i n g s, y o u u s e
t h e a m p e r s a n d ( & ) o pe r a t o r .
i)
N o t o p e r a t o r : - T h e N o t o p er a t o r s i m pl y r e v er s e s a T r u e t o F a l s e a n d v i c e
versa.
E . g. : -
ii)
Print Not (3>4)
t ex t 1 . f o n t . bo l d= N o t t e x t 1 . f o n t . b o l d
A n d o p e r a t o r : - T h e A n d o p er a t o r i s u s e d t o c o m b i n e t w o l o gi c a l e x p r e s si o n s
a n d pr o du c e a r e su l t . W h en y o u u s e t h e A n d o p er a t o r , bo t h e x p r es s i o n s m u st
b e T r u e i n o r d e r t o g et a T r u e r e su l t .
E . g. : - I f a = 5 A n d c = 1 0 t h en P r i n t “ O k ”
iii)
O r o p e r a t o r : - T h e O r o p er a t o r w i l l pr o du c e a T r u e r e su l t i f e i t h e r c o n di t i o n i s
T r u e . I f bo t h c o n di t i o n s a r e F a l s e, t h a t i s t h e o n l y t i m e t h e O r o pe r a t o r w i l l
pr o du c e a F a l s e r e su l t .
E . g. : - I f a = 5 O r c = 1 0 t h en P r i n t “ O k ”
iv)
X o r : i f a = 1 0 X o r b= 5 t h en c o m bi n e s t w o e x p r e s si o n s. T h e en t i r e ex pr e ss i o n
i s c o n s i d e r e d t r u e, I f t h e t w o ex pr e s si o n s a r e n o t bo t h t r u e a n d f a l se.
v)
E q v ( e qu i v a l e n t ) : c o m b i n e s t w o ex pr e s si o n s. B o t h e x pr e ss i o n s m u st b e t r u e
o r f a l s e f o r t h e e n t i r e e x pr e s si o n i s t o b e t r u e .
vi)
I m p : c o m bi n e s t w o ex pr e s si o n s. T h e e n t i r e e x p r e s s i o n i s t r u e ex c e pt w h en
t h e f i r s t e x p r e s s i o n i s t r u e a n d s ec o n d e x pr e ss i o n i s f a l s e.
NetScape COMPUTER ACADEMY
43
Chapter 9
Modules
Modules:1) Modules:C o d e i n V I S U A L B A S I C i s s t o r e d i n t h e f o r m o f m o du l es. T h e t h r e e k i n d s o f m o du l e s a r e
f o r m m o du l e s , s t a n d a r d m o du l e s a n d c l a ss m o du l e s.
A s i m pl e a p pl i c a t i o n m a y c o n t a i n a si n g l e f o r m a n d t h e c o d e i s w r i t t en i n t h a t f o r m m o du l e
i t s e l f . A s t h e a p pl i c a t i o n gr o w s a d di t i o n a l f o r m a r e a dd e d a n d t h e r e m a y b e c o m m o n c o d e t o b e
e x e c u t e d i n s e v e r a l f o r m s . T o a v o i d t h e du pl i c a t i o n o f c o de, a s ep a r a t e m o d u l e c o n t a i n i n g a
pr o c e du r e i s c r e a t e d. T h a t i m p l e m e n t s t h e c o m m o n c o d e. T h i s i s a st a n d a r d m o du l e. C l a s s m o du l e s
a r e t h e f o u n d a t i o n o f o bj e c t o r i e n t e d pr o gr a m m i n g( O O P ) . N ew o bj ec t c a n b e c r e a t e d w r i t i n g c o d e
i n c l a s s m o du l e s .
T o a d d a S t a n da r d m o du l e C h o o se P r o j ec t  A d d M o du l e
T o a d d a C l a s s m o du l e C h o o s e P r o j ec t  A d d C l a s s M o d u l e
E a c h m o du l e c a n c o n t a i n ,
Declarations : - m a y i n c l u de c o n s t a n t , t y pe, v a r i a b l e a n d a l l pr o c e du r e d ec l a r a t i o n .
Procedure : - A s u b f u n c t i o n , o r pr o p er t y pr o c e du r e t h a t c a n c o n t a i n pi ec e s o f c o d e t h a t c a n be
executed as a unit.
Component parts of a VISUAL BASIC project
Component
File Extension
Description
S t a n d a r d M o du l e
.BAS
c o n t a i n p r o j ec t c o d e, ge n er a l l y
a c c e s si b l e t h r o u gh y o u r pr o j ec t
F o r m M o du l e
.FRM, .FRX
d es i gn a n d c o d e u s e r i n t er f a c e
C l a s s M o du l e
.CLS
d ef i n e m e t h o ds a n d p r o p er t i es o f a
c u st o m o b j ec t
ActiveX Control
.OCX
a d d a dd i t i o n a l f u n c t i o n s t o t h e
T o o l bo x
ActiveX Server
.EXE, .DLL
Add functionality of OLE 2.0
I n s e r t a b l e O bj e c t s
A d d o bj ec t s f r o m a n O L E 2 . 0
O b j e c t L i br a r y
.OLB, .TLB
o bt a i n i n f o r m a t i o n a bo u t O L E
a u t o m a t i o n o b j ec t s
R e s o u r c e M o du l e
.RES
st o r e st r i n g, bi t m a p, a n d o t h er
compiled data.
ActiveX Designers
.DSR, .DSX
A d d v i su a l i n t er f a c es f o r t a sk s t h a t
m i gh t r e qu i r e a gr e a t de a l o f c o di n g
S t a n d a r d M o d u l e : - S t a n d a r d M o du l e s w i t h t h e ex t en s i o n . B A S , c o n t a i n d ec l a r a t i o n s o f c o n st a n t s,
t y p e s a n d v a r i a b l e s , a s w e l l a s p r o c ed u r e s a n d f u n c t i o n s. S t a n d a r d M o du l e c o n t a i n o n l y c o d es.
M o du l e l e v e l d e c l a r a t i o n s a n d de f i n i t i o n s i n a s t a n da r d m o du l e a r e b y d ef a u l t P u bl i c , w h i c h m ea n s
t h a t c o n s t a n t s , v a r i a bl e s a n d pr o c e du r e s d ec l a r e d w i t h i n a s t a n d a r d m o du l e a r e b y d ef a u l t
a c c e s s i b l e b y c o d e i n o t h e r m o d u l e s a n d f o r m s . S o m e i t em s y o u m a y w a n t t o pu t i n a st a n d a r d
m o du l e a r e A P I d e c l a r a t i o n s , C o n s t a n t s, u s e r - d ef i n e d t y p e s, v a r i a b l e s a n d g en e r a l a n d ex t er n a l
pr o c e du r e s .
F o r m M o d u l e : - F o r m m o du l e s , w i t h t h e e x t e n si o n . F R M , a r e t h e f o u n d a t i o n o f y o u r a p pl i c a t i o n s
u s e r i n t e r f a c e . T h e y c o n t a i n a l l y o u r t ex t f i e l d s a n d c o n t r o l s, i n c l u d i n g a n y pr o p er t y s et t i n g s o f
t h e s e c o n t r o l s . F o r m s a l s o c a n c o n t a i n c o n st a n t a n d v a r i a bl e d ec l a r a t i o n , pr o c e du r e s, a n d ev en t
pr o c e du r e s f o r t h e v a r i o u s f o r m a n d c o n t r o l e v en t s. M o r e c o m pl e x a p pl i c a t i o n s m a y h a v e s ev er a l
f o r m s , e a c h w i t h i t s o w n f o r m m o du l e . D ec l a r a t i o n s i n a f o r m m o du l e a r e pr i v a t e by d ef a u l t , w h i c h
m e a n s t h a t c o n s t a n t s , v a r i a b l e s , a n d pr o c e du r e s i n a f o r m m o du l e a r e n o t a v a i l a b l e t o c o d e o u t s i d e
t h a t f o r m u n l e s s y o u e x pl i c i t l y d e c l a r e t h em a s pu bl i c .
C l a s s M o d u l e : - C l a s s m o du l e s , w i t h t h e ex t e n si o n . C L S , a r e s i m i l a r t o f o r m m o d u l e s, e x c e p t t h a t
t h e y h a v e n o v i s u a l c o m po n e n t . Y o u c a n u s e c l a s s m o du l e t o c r e a t e y o u r o w n o bj ec t s. C l a ss
m o du l e s c a n i n c l u d e c o d e f o r m e t h o d s a n d p r o p er t i es a s so c i a t e d w i t h a n o bj ec t t h a t y o u d ef i n e,
bu t t h e y c a n n o t i n c l u d e t h e i r o w n e v e n t s.
NetScape COMPUTER ACADEMY
44
A c t i v e X C o n t r o l s : - A c t i v e X c o n t r o l s, w i t h e x t en s i o n . O C X , c o n t a i n i n f o r m a t i o n V I S U A L B A S I C
n e e ds t o p r o v i d e n e w f e a t u r e s a n d c o n t r o l s t o y o u r a p pl i c a t i o n ’ s t o o l b a r . A n A c t i v eX c o n t r o l c a n be
a v a r i a t i o n o n a n e x i s t i n g M i c r o s o f t W i n do w s C o n t r o l , su c h a s a m o d i f i e d v e r s i o n o f t h e g a u g e
c o n t r o l , o r i t c a n b e a c o m p l e t e l y n e w c a t eg o r y o f c o n t r o l , su c h a s gr a p h i c s i m po r t f i l t e r t h a t l e t s
y o u i m po r t m a n y t y p e s o f gr a ph i c a l i m a g e s. A n A c t i v eX c o n t r o l i s j u s t a n o t h e r t er m f o r a n O L E
o bj e c t . I t i s b a s e d o n M i c r o s o f t C O M ( C o m po n en t O b j ec t M o de l ) a r c h i t ec t u r e a n d i s se l f - r e gi st e r i n g
o bj e c t . Y o u c a n u s e A c t i v e X c o n t r o l s i n b o t h 1 6 bi t a n d 3 2 b i t v e r s i o n o f V I S U A L B A S I C . I n g en er a l
a l m o s t a l l n e w A c t i v e X c o n t r o l s a r e 3 2 b i t . Y o u c a n a d d o r r e m o v e a n A c t i v eX c o n t r o l f r o m y o u r
t o o l bo x b y u s i n g P r o j e c t > C o m po n e n t D i a l o g b o x . T o a d d a c o n t r o l s e l ec t t h e c h ec k bo x a g a i n st
t h e c o n t r o l n a m e a n d t o r e m o v e i t d e s el ec t t h e c h ec k bo x . I f t h e c o n t r o l i s i n u s e w i t h i n y o u r
pr o j e c t , w h i c h m e a n s t h a t t h e c o n t r o l i s p l a c e d o n y o u r f o r m , y o u c a n n o t r e m o v e i t f r o m T o o l bo x .
A c t i v e X E x e : - A c t i v e X E x e s , w i t h e x t en s i o n . E X E , w er e f o r m e r l y k n o w n a s O L E a u t o m a t i o n s e r v er s.
T h e y a l l o w y o u t o u s e t h e m e t h o d s a n d p r o p e r t i e s ex po s e d b y O L E 2 . 0 o bj ec t s i n y o u r p r o j ec t s. A l l
e di t i o n s o f V I S U A L B A S I C s o m e w i t h po w er f u l s et o f O L E s er v e r o bj ec t s . Y o u c a n a l so c r e a t e y o u r
o w n o b j e c t s o r o b t a i n t h e m f r o m T h i r d - p a r t y d e v e l o pe r s. Y o u ’ l l n e e d t o a d d a r ef er en c e t o t h e
o bj e c t a p pl i c a t i o n t o y o u r pr o j e c t b e f o r e y o u c a n u s e a n y o f i t s c l a s s e s. U s e P r o j ec t s > R e f e r en c e s
m e n u c o m m a n d. F r o m t h e d i a l o g s e l e c t t h e o bj ec t n a m e a n d p r e s s O K .
A c t i v e X D L L : - A n A c t i v e X D L L o f f e r s t h e s a m e be n e f i t s o f t r u e d y n a m i c l i n k l i br a r i e s ( D L L ) , w i t h
t h e e x c e p t i o n o f m a k i n g D e c l a r e s t a t e m en t c a l l s a ga i n st t h em . I n o r d er t o t a k e a dv a n t a g e o f t h em ,
u s e t h e D L L t h r o u g h O L E a u t o m a t i o n . O n c e a n A c t i v eX D L L i s pr o p er l y r e gi s t e r ed i n y o u r W i n d o w s
R e g i s t r y , i t c a n b e a d d e d t o y o u r a p pl i c a t i o n l i k e a n y o t h e r O L E o bj ec t . A n y O L E - c o m p l i a n t
a p p l i c a t i o n c a n t a k e a d v a n t a g e o f t h i s D L L a s w el l . T h e a d v a n t a g e o f a n A c t i v eX D L L o v er a n o u t o f - pr o c e s s O L E s e r v e r i s t h a t a n A c t i v eX D L L l o a d s i t s e l f i n t h e p r o c e ss i n g sp a c e o f t h e c l i en t
a p p l i c a t i o n . B e c a u t i o u s , h o w e v e r , a n u n s t a b l e A c t i v eX c a n c a u s e i n s t a b i l i t y w i t h i n t h e a p p l i c a t i o n
I n s e r t a b l e O b j e c t s : - T h e y do n o t h a v e f i l e ex t en si o n s. T h ey
a s M i c r o s o f t E x c e l o r W o r d f o r W i n d o w s, t h a t s u p po r t a v i su a l
c a n a d d t h e s e i n s e r t a b l e o b j e c t s d i r ec t l y o n t o y o u r V I S U A L
s o l u t i o n . Y o u c a n a d d o r r e m o v e a n i n s er t a bl e o b j ec t t o
C o m po n e n t s D i a l o g bo x .
e x i st w i t h i n o bj ec t A p p l i c a t i o n s su c h
u s e r i n t e r f a c e. A s w i t h c o n t r o l s, y o u
B A S I C f o r m t o c r e a t e a n i n t e gr a t e d
y o u r T o o l bo x b y u s i n g P r o j ec t >
O b j e c t L i b r a r i e s : - A n o bj e c t l i br a r y f i l e, w i t h ex t en s i o n . O L D o r . T L B , pr o v i de s i n f o r m a t i o n a b o u t
a v a i l a bl e O L E a u t o m a t i o n o b j e c t s t o O L E a u t o m a t i o n c o n t r o l l er s, su c h a s V I S U A L B A S I C
a p p l i c a t i o n s . E x e c u t a b l e F i l e s ( E X E ) a n d D y n a m i c L i n k L i br a r y ( D L L ) f i l e s c a n a l so c o n t a i n o bj ec t
l i br a r i e s . T o a dd a n o bj e c t l i b r a r y t o y o u r V I S U A L B A S I C d e v e l o pm en t e n v i r o n m en t , u s e t h e P r o j ec t
> R e f e r e n c e s d i a l o g. T o v i e w t h e r e f e r en c ed o bj ec t l i b r a r i e s, u s e t h e O b j ec t B r o w s er b y s e l ec t i n g i t
from View Menu.
R e s o u r c e F i l e s : - a R e s o u r c e F i l e , w i t h ex t en si o n . R E S , c a n c o n t a i n bi t m a ps, t e x t st r i n g s, a n d
o t h e r d a t a . U s i n g t h e r e s o u r c e f i l e i n c r e a s es y o u r a p pl i c a t i o n ’ s pe r f o r m a n c e a n d c a p a c i t y b ec a u s e
i t a l l o w s y o u t o l o a d s t r i n g s , i m a g e s , a n d d a t a i n t o m em o r y w h en n e e d ed, r a t h e r t h a n w h en t h e
f o r m o r m o d u l e i s l o a d e d . R e s o u r c e s a r e u s ef u l f o r i so l a t i n g st r i n g s a n d i m a g e s f r o m s o u r c e c o d e,
w h i c h m a k e s i t e a s i e r t o l o c a l i z e a n a p pl i c a t i o n . R e so u r c e f i l e s a r e c o m pi l e d r e so u r c e c o d e;
t h e r e f o r e , w h e n y o u a dd a r e s o u r c e f i l e t o y o u r pr o gr a m , t h e V i ew F o r m a n d V i ew C o d e b u t t o n s i n
t h e pr o j e c t E x pl o r e r a r e d i s a bl e d w h e n t h e f i l e i s s e l ec t e d. T o c r ea t e a r eso u r c e f i l e, y o u n e ed t o
u s e a d e v e l o p m e n t pr o d u c t t h a t h a s a r e so u r c e e di t o r a n d c o m p i l er , su c h M i c r o so f t V i su a l C + + .
A c t i v e X D e s i g n e r s : - A n A c t i v e X d e si gn er , w i t h a n ex t en s i o n o f . D S R , pr o v i d e s a v i su a l d e si gn
i n t e r f a c e f o r t a s k s t h a t m i gh t r e qu i r e a l o t o f c o di n g. A n A c t i v eX d e si g n er i s l i k e a f o r m m o du l e o r
c l a s s m o du l e . A c t i v e X d e s i gn e r s a r e ba s e d o n t h e C o m po n e n t O b j ec t M o d el ( C O M ) . T h e C O M i s w h a t
a l l A c t i v e X a n d O L E t e c h n o l o gi e s a r e b a s ed o n i t . I t i s a st a n d a r d t h a t d ef i n e s h o w a p p l i c a t i o n s
e x po s e o bj e c t s . S i m i l a r t o a r e s o u r c e f i l e, a n A c t i v eX d e si gn er i s l o a d e d o n l y w h en i t i s n e e d e d. T o
i n c l u d e A c t i v e X d e s i gn e r s i n y o u r pr o j ec t S el ec t D e si gn er s t a b f r o m P r o j ec t > C o m po n en t d i a l o g.
Procedure and control structures.
VISUAL BASIC
application.
offers
di f f e r e n t
types
of
p r o c e du r e s
to
e x ec u t e
small
s ec t i o n s
of
coding
in
Procedures:
V I S U A L B A S I C pr o g r a m s c a n b e b r o k en i n t o sm a l l e r l o gi c a l c o m p o n en t s c a l l ed pr o c e du r e s.
P r o c e du r e s a r e u s e f u l f o r c o n d e n s i n g r e p ea t ed o pe r a t i o n s i n a p r o gr a m . A pr o c ed u r e u s e d i n a
pr o gr a m c a n be a c t a s b u i l di n g bl o c k s f o r o t h er pr o gr a m s w i t h sl i g h t m o di f i c a t i o n s.
Sub procedures
A s u b p r o c e du r e c a n b e pl a c e d i n S t a n d a r d, C l a s s a n d F o r m m o d u l es. E a c h t i m e t h e pr o c e du r e i s
c a l l e d t h e s t a t e m e n t be t w e e n s u b a n d E n d s u b a r e e x ec u t e d. S u br o u t i n e s a r e t h e h a n d y bl o c k s o f
c o d e t h a t c a n o r ga n i z e y o u r c o de i n t o si n g l e - p u r po se d s ec t i o n s t o m a k e pr o g r a m m i n g e a s i er .
S u br o u t i n e s di d n o t r e t u r n v a l u e s , b u t y o u c a n p a ss v a l u e s t o su br o u t i n e s i n a n a r g u m en t l i st .
Syntax is
Private/Public/Friend/Static sub procedure name {arg list}
Statements
End sub
NetScape COMPUTER ACADEMY
45
A r g l i s t : - I t i s a l i s t o f a r gu m e n t s s e p a r a t e d b y c o m m a s. E a c h a r gu m en t a c t s l i k e a v a r i a bl e i n t h e
pr o c e du r e . T h e r e a r e t w o t y p e s o f s u b pr o c ed u r e s n a m el y
General procedures
Event procedures
T h e P u bl i c k e y w o r d m a k e s a pr o c e du r e a c c es s i b l e t o a l l o t h er pr o c e du r e s i n a l l m o du l e s a n d f o r m s.
T h e P r i v a t e k e y w o r d m a k e s a p r o c e d u r e a c c e s si bl e o n l y t o o t h er pr o c e d u r e i n t h e m o du l e o r f o r m
i n w h i c h i t i s d e c l a r e d. T h e F r i e n d k e y w o r d i s u s e d o n l y i n c l a ss m o d u l e s a n d s p ec i f i e s t h a t t h e
pr o c e du r e i s v i s i b l e t h r o u gh o u t t h e pr o j ec t , bu t n o t v i si bl e t o a c o n t r o l l er o f a n i n st a n c e o f a n
o bj e c t . T h e S t a t i c k e y w o r d s p e c i f i e s t h a t t h e pr o c e du r e ’ s l o c a l v a r i a b l e s sh o u l d be p r es e r v ed
b e t w e e n c a l l s . I n a r g l i s t y o u c a n i n c l u de O p t i o n a l , w h i c h m e a n s t h a t a n a r g u m en t i s n o t r e qu i r e d,
B y V a l m e a n s t h a t t h e a r gu m e n t pa s s e d b y V a l u e, B y R ef m e a n s t h a t t h e a r gu m en t i s p a s s ed by
reference.
Event procedures
A n e v e n t pr o c e du r e i s a p r o c e du r e t h a t c o n t a i n s t h e c o n t r o l ’ s a c t u a l n a m e, u n d er sc o r e ( _ ) a n d t h e
event name.
E . g. :
Private command1_click()
End sub
General procedure:
A g e n e r a l pr o c e du r e i s d e c l a r e d w h e n s e v er a l e v en t p r o c e du r e s p e r f o r m t h e s a m e a c t i o n . I t i s a
go o d p r o g r a m m i n g pr a c t i c e t o w r i t e c o m m o n st a t e m e n t s i n a g en er a l p r o c e du r e a n d t h en c a l l t h em
i n e v e n t p r o c e du r e s . I n o r d e r t o a d d a g en er a l p r o c ed u r e, t h e c o d e w i n do w i s o p en e d f o r t h e
m o du l e t o w h i c h t h e p r o c e du r e i s a d d e d. C h o o s e t o o l s> a d d pr o c e du r e. T y p e t h e n a m e o f t h e
pr o c e du r e i n n a m e bo x . U n de r t y p e c h o o s e su b, f u n c t i o n , pr o p er t y o r e v en t . U n d er sc o p e pu bl i c i s
s e l e c t e d t o c r e a t e a pr o c e du r e t h a t c a n be i n v o k e d o u t s i de t h e m o d u l e, o r pr i v a t e t o c r ea t e a
pr o c e du r e t h a t c a n b e i n v o k e f r o m w i t h i n t h e m o du l e.
Y o u c a n a l s o c r e a t e n e w p r o c e du r e b y t y p i n g su b pr o c e du r e n a m e, f u n c t i o n pr o c e du r e n a m e,
pr o p e r t y pr o c e du r e n a m e .
Procedure Scope
Y o u c a n r e s t r i c t t h e s c o p e o f pr o c e du r e s, a n d y o u do t h a t w i t h P r i v a t e, P u bl i c , F r i en d a n d S t a t i c
k e y w o r d s . T h e P r i v a t e a n d P u bl i c k e y w o r d s a r e t h e m a i n k e y w o r d s h er e; u s i n g t h em , y o u c a n
s pe c i f y i f a s u br o u t i n e o r f u n c t i o n i s pr i v a t e t o t h e m o du l e o r f o r m i n w h i c h i t i s d ec l a r e d o r pu b l i c
( t h a t i s gl o b a l ) t o a l l f o r m s a n d m o du l es. Y o u u s e t h e s e k e y w o r d s b ef o r e t h e S u b o r F u n c t i o n
keywords like this
Private Function Return7()
Dim Retval
Retval=7
Return7=Retval
End Function
Y o u c a n a l s o d e c l a r e pr o c e du r e s a s f r i en d pr o c e du r e s w i t h F r i en d k e y w o r d, w h i c h a r e u su a l l y u s ed
i n c l a s s e d m o du l e s t o d e c l a r e t h a t t h e p r o c ed u r e i s a v a i l a bl e o u t si d e t h e c l a s s, bu t n o t o u t si d e t h e
c u r r e n t p r o j e c t . t h i s r e s t r i c t s t h o s e f u n c t i o n s b ei n g c a l l e d i f t h e c u r r en t p r o j ec t se r v e s a s a n O L E
automation server.
Y o u c a n a l s o d e c l a r e pr o c e du r e s a s S t a t i c , w h i c h m e a n s t h a t t h e v a r i a b l e s i n t h e pr o c e du r e do n o t
c h a n g e be t w e e n pr o c e du r e c a l l s , a n d t h a t c a n b e v er y u s ef u l i n c a s e s l i k e t h i s, w h e r e w e s u p po r t a
c o u n t e r v a r i a b l e t h a t i s i n c r e m e n t e d e a c h t i m e a f u n c t i o n i s c a l l e d:
Static Function Counter()
D i m C o u n t e r V a l u e a s I n t e ge r
Countervalue=CounterValue+1
Counter=CounterValue
End Function
Function procedures
F u n c t i o n s a r e l i k e s u b p r o c e du r e s , e x c e pt t h e y r e t u r n a v a l u e. T h e y a r e u s ef u l f o r t a k i n g o n e o r
m o r e pi e c e o f d a t a c a l l e d a r gu m e n t s . T h e f u n c t i o n r et u r n s a v a l u e t h a t i n di c a t e s t h e r e su l t s o f
t a s k c o m pl e t e d w i t h i n t h e f u n c t i o n . T h e E x i t F u n c t i o n k ey w o r d c a u s e a n i m m ed i a t e ex i t f r o m a
F u n c t i o n pr o c e du r e . A F u n c t i o n i s a b l o c k o f c o d e t h a t y o u c a l l a n d p a s s a r gu m en t s t o , a n d u s i n g
f u n c t i o n s h e l p s br e a k y o u r c o d e u p i n t o m a n a g ea bl e pa r t s.
Syntax
Private\Public \Friend\Static Function name (arglist) As Type
Statements
End Function
NetScape COMPUTER ACADEMY
E . g. :
46
F u n c t i o n p r o d( a a s do u b l e , b a s do u bl e) a s do u b l e.
P r o d= a * b
End function
Property procedures
T h i s i s u s e d t o c r e a t e r e a d o n l y pr o p e r t i es f o r f o r m s , st a n d a r d m o du l e s a n d c l a s s m o du l e s. V I S U A L
B A S I C p r o v i de s t h r e e k i n d s o f p r o p e r t y p r o c e du r e s.
P r o p e r t y l e t p r o c e d u r e : - t h a t s e t s t h e v a l u e o f t h e pr o p er t y
P r o p e r t y g e t p r o c e d u r e : - t h a t r e t u r n s t h e v a l u e o f p r o pe r t y
P r o p e r t y s e t p r o c e d u r e : - t h a t s e t s t h e r ef er en c e t o a n o b j ec t
E . g. : P u bl i c P r o p e r t y L e t C o m pa n y ( B y v a l s I n pu t a s S t r i n g)
M v a r C o m p a n y = s I n pu t
End Property
P u bl i c P r o p e r t y G e t C o m pa n y ( ) A s S t r i n g
C o m pa n y = m v a r C o m pa n y
End Property
ByVal Vs ByRef
W h e n Y o u c r e a t e P r o c e du r e s t h a t t a k e a r gu m en t s, t h er e a r e t w o po s si bl e w a y s t o pa s s t h o s e
a r gu m e n t s : b y V a l u e ( B y V a l ) o r r e f e r en c e ( B y R ef ) . B y V a l m e a n s t h a t V I S U A L B A S I C pa s s e s a c o p y
o f t h e v a r i a bl e t o t h e p r o c e du r e . T h i s m et h o d do es n o t a l l o w t h e pr o c e du r e t o c h a n g e t h e a c t u a l
c o n t e n t s o f t h e v a r i a bl e i n t h e c a l l i n g pr o c e du r e. B y D ef a u l t V I S U A L B A S I C pa s s e s a r gu m en t s by
r e f e r e n c e . P a s s i n g a r gu m e n t s b y v a l u e u s i n g B y V a l i s ge n e r a l l y f a st er t h a n p a ss i n g a r g u m en t s by
r e f e r e n c e u s i n g B y R e f . S o i f y o u r c o d e do es n o t n e e d t o c h a n ge t h e da t a t y p e, u se B y V a l f o r
fastest results.
T h e e x c e p t i o n t o t h i s r u l e o c c u r s w h en pa s si n g l a r g e st r i n g o r a r r a y a r gu m e n t s. E v en i f t h e
pr o c e du r e w i l l n o t m o di f y t h e m , i t ’ s o f t e n f a s t e r t o p a ss t h e a r g u m en t B y R ef t h a n u s i n g B y V a l . T h i s
i s b e c a u s e B y R e f p a s s e s a f o u r - by t e po i n t er t o y o u r da t a , n o t t h e a c t u a l d a t a . I f y o u a r e pa s s i n g a
l a r g e c h a r a c t e r s t r i n g o r l a r g e a r r a y , i t ’ s qu i c k er t o u s e B y R ef i n st e a d o f B y V a l .
E . g. : Dim Arg As String
A r g= ” h a n k ”
A bc A r g
‘ C a l l s a bc
I F A r g= ” h a n k ” T h e n
M s gB o x ” S a m e ”
Else
M s gB o x ” C h a n g e d”
End If
S u b A bc ( B y V a l A r g a s S t r i n g)
A r g= ” N e t s ”
End Sub
I n t h i s e x a m p l e , A r g v a r i a bl e w o u l d r em a i n “ h a n k ” o u t si d e o f S u b A bc , e v en t h o u gh i t w a s c h a n g e d
w i t h i n t h e pr o c e du r e . T h i s i s be c a u s e B y V a l k e y w o r d di d n o t pa s s t h e a c t u a l v a r i a bl e A r g. I t pa s s e d
a c o py i n s t e a d. O n t h e o t h e r h a n d, b y u si n g B y R ef ( o r l e a v i n g m o d i f i e r ) , t h e c h a n ge t o A r g w i t h
S u b A bc w o u l d c h a n ge t h e da t a o u t s i d e o f t h e p r o c e du r e.
NetScape COMPUTER ACADEMY
47
Sending Keystroke s to Other Programs
Y o u c a n u s e t h e S e n dK e y s ( ) f u n c t i o n t o se n d k e y s t o t h e p r o g r a m t h a t c u r r en t l y h a s t h e W i n do w s
f o c u s , j u s t a s i f y o u t y p e s t h o s e k e y s y o u r s el f . U s i n g t h e A l t k e y , y o u c a n r ea c h t h e m e n u i t em s i n
y o u r s pr e a d s h e e t s F i l e m e n u .
Syntax
S e n dK e y s s t r i n g [ , w a i t ]
T h e s t r i n g e x pr e s s i o n i s t h e s t r i n g y o u w a n t t o s en d t o o t h er p r o g r a m . T h e w a i t a r gu m e n t i s a
B o o l e a n v a l u e i n d i c a t i n g t h e w a i t m o de. I f F a l s e, c o n t r o l r et u r n s r i g h t a f t e r t h e k ey s a r e s en t . I f
T r u e , t h e k e y w o r d s m u s t be pr o c e s s e d b y t h e o t h er pr o gr a m b e f o r e c o n t r o l r et u r n s. I f t h e k ey s y o u
w a n t t o s e n d a r e n o t s i m p l e t e x t , j u s t e m b e d t h e c o d e s y o u s e e i n t h e f o l l o w i n g t a b l e i n t h e t ex t
you send to SendKeys( )
SendKeys( ) key codes
Key
Code
B a c k S pa c e
Break
Caps Lock
Del or Delete
Down Arrow
End
Enter or Return
Esc
Help
Home
Ins or Insert
Left Arrow
Num Lock
Page Down
Page Up
Print Screen
R i gh t A r r o w
Scroll Lock
Tab
Up Arrow
F1-F16
Shift
Ctrl
Alt
{BACKSPACE}, {BS}, OR {BKSP}
{BREAK}
{CAPSLOCK}
{DELETE} OR {DEL}
{DOWN}
{END}
{ENTER} OR ~
{ESC}
{HELP}
{HOME}
{INSERT} OR {INS}
{LEFT}
{NUMLOCK}
{PGDN}
{PGUP}
{PRTSC}
{RIGHT}
{SCROLLLOCK}
{TAB}
{UP}
{F1} – {F16}
+
^
%
Ending a Program at any time
Y o u u s e E N D s t a t e m e n t t o s t o p e x e c u t i o n o f y o u r pr o g r a m - bu t n o t e t h a t i t do e s so i m m e di a t el y ,
w h i c h m e a n s t h a t n o U n l o a d( ) o r s i m i l a r ev en t h a n d l i n g f u n c t i o n s a r e c a l l e d. E n d j u st br i n gs t h e
pr o gr a m t o a n e n d.
Control Structures
W h e n d e s i gn i n g a n e w a p p l i c a t i o n t h e d ev e l o p er n ee d s t o ex ec u t e s ec t i o n o f c o d e s c o n di t i o n a l l y .
T h e pr o gr a m s h o u l d r e s po n d f o r c o n di t i o n o r t e st i f t h e c o n d i t i o n i s t r u e t h e n t h e c o d e w i l l b e
pr o c e s s e d. C o n t r o l s t a t e m e n t s a r e u s e d t o c o n t r o l t h e f l o w o f pr o gr a m e x ec u t i o n
V I S U A L B A S I C s u p po r t s c o n t r o l s t r u c t u r e s su c h a s
IF…THEN, IF… THEN…ELSE…END IF
SELECT…CASE…END SELECT
V I S U A L B A S I C s u p po r t s l o o p s t r u c t u r e s su c h a s
FOR…NEXT
FOR EACH… NEXT
DO WHILE… LOOP
DO…LOOP WHILE
WITH.... END WITH: WHILE… WEND
NetScape COMPUTER ACADEMY
48
IF…THEN…ELSE…END IF
I t i s u s e d f o r c o n d i t i o n a l e x e c u t i o n o f o n e o r m o r e s t a t em en t s.
Syntax:
IF <condition> THEN
STATEMENTS
ELSE
STATEMENTS
END IF
E . g. : -
IF a>=10 THEN
K= 10
ELSE
K=5
END IF
T h e s t a t e m e n t i s e x e c u t e d o n l y i f t h e c o n di t i o n i s t r u e, o t h er w i se t h e st a t em en t a f t er E L S E p a r t i s
e x e c u t e d.
SELECT CASE…CAS E…END SELECT
I t i s a n a l t e r n a t i v e o f I f … T h e n … E l s e. T h i s i s m o r e c o n v e n i en t t o u s e t h a n I f … E l s e … E n d i f .
Syntax:-
E g:
Select Case Index
Case 0
Statements
Case 1
Statements
Case 2
Statements
End Select
S el ec t C a s e
a
Case 0
a=a*10
Case 1
a=a*20
Case 2
a=a*30
E n d S e l ec t
Using Switch( ) and Choose( )
T h e S w i t c h ( ) f u n c t i o n e v a l u a t e s a l i s t o f ex p r e s si o n s a n d r e t u r n s a v a r i a n t v a l u e o r a n e x pr e ss i o n
a s s o c i a t e d w i t h t h e f i r s t e x pr e s s i o n i n t h e l i s t t h a t i s t r u e.
Syntax
S w i t c h ( e x p r - 1 , v a l u e - 1 [ , e x p r - 1 , va l u e - 2 … [ , e x p r - n , va l u e - n ] ] )
I n t h i s c a s e e x pr - 1 i s t h e f i r s t e x pr e s si o n t o ev a l u a t e; i f t r u e, S w i t c h ( ) r e t u r n s v a l u e - 1 . I f e x p r - 1
i s n o t T r u e bu t e x pr - 2 i s , S w i t c h ( ) r e t u r n s v a l u e - 2 a n d so o n .
E . g. :
Dim intValue
i n t V a l u e = I n p u t B o x ( “ E n t e r a N u m b er ” )
i n t A b s V a l u e = S w i t c h ( i n t v a l u e < 0 , - 1 * i n t v a l u e, i n t v a l u e > = 0 , i n t v a l u e)
M s gB o x “ A b s o l u t e v a l u e ” & S t r ( i n t A bsV a l u e)
T h e C h o o s e f u n c t i o n r e t u r n s o n e o f a n u m b er o f c h o i c e s ba s e d o n a n i n d ex .
Syntax
C h o o s e ( i n d e x , c h o i c e - 1 [ , c h o i c e - 2 ,… [ , c h o i c e - n ] ] )
I f t h e i n d e x v a l u e i s 1 , t h e f i r s t c h o i c e i s r et u r n e d, i f i n de x e qu a l s 2 , t h e s ec o n d c h o i c e i s
r e t u r n e d, a n d s o o n .
E x a m pl e
Dim intID
i n t I d= - 1
While intID < 1 or intID >3
i n t I D = I n pu t B o x ( “ E n t e r E m p l o y e e I D ” )
Wend
M s gB o x “ E m p l o y e e N a m e = ” & C h o o s e ( i n t I D , “ B o b” , “ D en i s e” , “ T e d ” )
NetScape COMPUTER ACADEMY
49
DO WHILE........LOOP : I t i s u s e d t o e x e c u t e s t a t e m e n t s u n t i l a c e r t a i n c o n di t i o n i s m et .
Syntax:D o W h i l e < L o gi c a l E x pn >
S t a t e m e n t s t o e x e c u t e i f ex pr e s si o n T r u e
Loop
E . g. : - t h e f o l l o w i n g D o L o o p c o u n t s f r o m 1 t o 1 0 0
A=1
Do while a<=100
A=a+1
Loop
DO .....LOOP WHIL E: -
T h e D o . . . l o o p w h i l e s t a t e m e n t f i r st ex ec u t e s t h e st a t e m e n t a n d t h en t e s t t h e c o n di t i o n a f t er
each execution.
Syntax
Do
Statements to Execute
Loop While <Logical Expn>
A=1
Do
a=a+1
Loop while a<=100
DO....LOOP UNTIL statement: -
T h e D o . . . l o o p u n t i l s t r u c t u r e e x ec u t es t h e st a t e m en t u n t i l t h e c o n d i t i o n i s s a t i s f i e d. I t i s a n
i n f i n i t e l o o p.
T o g e t r e l e a s e f r o m i n f i n i t e l o o p pr e s s C t r l + b r e a k .
Syntax:
Do
Statements
L o o p U n t i l < L o gi c a l E x p n >
FOR...NEXT :The For...Next...Loop is another way to make in VISUAL BASIC.
Syntax
F o r < c o u n t e r > = < i n i t i a l V a l u e > t o < M a x i m u m V a l u e> | S t e p < S t e p V a l u e>
Statements to Ex ecute
Next <counter>
E . g. : -
For I=1 to 100 step 1
Statements
Next
For I=0 to screen.fontcount -1
C o m bo 1 . a d d i t e m S c r e e n . f o n t s( I )
Next I
Exit for and exit loop:A f o r . . . n e x t l o o p c a n b e t e r m i n a t e d by a n e x i t f o r st a t em en t .
E . g. : For I=1 to 100
Text1.text=str(I)
If I=50 then
Exit for
End if
Next.
A D o w h i l e l o o p c a n b e t e r m i n a t e d u s i n g e x i t D o s t a t e m en t .
NetScape COMPUTER ACADEMY
50
FOR EACH… NEXT: T h e F o r E a c h … N e x t L o o p p e r f o r m s a b l o c k o f st a t em en t s l i k e F o r … N e x t l o o p, ex c e pt t h a t i t r e p e a t s
a g r o u p s o f s t a t e m e n t s f o r e a c h e l e m e n t i n a c o l l ec t i o n o f o bj ec t s o r a n a r r a y r a t h e r t h a n r e p e a t i n g
t h e s t a t e m e n t s a s pe c i f i e d n u m be r o f t i m e s. T h i s i s v e r y u s ef u l w h en y o u do n ’ t k n o w h o w m a n y
e l e m e n t s a r e i n a c o l l e c t i o n o r a r r a y . T h e l o o p st a r t s w i t h t h e f i r s t e l e m en t i n t h e a r r a y o r
collection.
E . g. : Dim MyArray(12) As Variant
Dim Element As Variant
1)
For Each Element in MyArray( )
M y A r r a y ( E l em en t ) = ” H el l o ”
Next Element
2)
Dim MyRs as Recordset
S e t M y R s = M y D b. C r e a t e R ec o r d s et ( “ S t o c k ” )
For Each Field in MyRs
C o m bo 1 . A d dI t e m M y R s. F i e l d. N a m e
Next Field
WITH.... END WITH: -
W h e n p r o pe r t i e s a r e s e t f o r o bj ec t s o r m et h o d s a r e c a l l e d, a l o t o f c o d i n g i s i n c l u d ed t h a t
a c t s o n s a m e o b j e c t . I t i s e a s i e r t o r e a d t h e c o d e b y i m pl em en t i n g W i t h . . .E n d w i t h st a t em en t . T h e
c o d e i s e x e c u t e d m o r e q u i c k l y a n d e f f i c i en t l y t h a t t h e o b j ec t i s ev a l u a t e d o n l y o n c e.
E . g. : With text1
. f o n t . bo l d= t r u e
.font.italic=true
.text1=”Nets”
End with
WHILE …WEND
T h e W h i l e / W e n d s t r u c t u r e i s s t r u c t u r a l l y i d en t i c a l t o o n e v a r i a t i o n o f t h e D o / L o o p st r u c t u r e
Syntax:
W h i l e < L o g i c a l E x pn >
Statements
E . g. : -
Wend
While Not rs.Eof
Print rs!Itemname
Wend
NetScape COMPUTER ACADEMY
51
Chapter 10
Arrays, DataTypes & Functions
Arrays:A s e qu e n c e o f v a r i a b l e s b y t h e s a m e n a m e c a n b e r ef er r e d u s i n g a r r a y s. T h e i n d i v i du a l
e l e m e n t o f a n a r r a y i s i d e n t i f i e d u s i n g a n i n de x . A r r a y s h a v e u p p er a n d l o w er bo u n ds. Y o u c a n
d e c l a r e a n a r r a y o f a n y o f b a s i c d a t a t y p e s a n d o bj ec t v a r i a b l es. T h e i n di v i du a l e l em en t s o f a n
array are same data type.
In VISUAL BASIC there are two types of arrays
1) Fixed size arrays : - i t c a n b e d ec l a r e d by gi v i n g a n a m e t o a r r a y w i t h u pp e r l i m i t i n
pa r e n t h e s i s . T h e u p p e r l i m i t s h o u l d a l w a y s be w i t h i n t h e r a n g e o f l o n g d a t a t y pe.
E . g. : D i m m y a r r a y ( 1 0 ) a s i n t e ge r
Dim myarray (10)
T h e a r r a y d e c l a r a t i o n c r e a t e s a n a r r a y w i t h 1 0 e l e m e n t s w i t h i n d ex n u m b er s r u n n i n g f r o m 0 t o 9 . I f
y o u w a n t t o s pe c i f y t h e l o w e r l i m i t s t h en p a r en t h e si s sh o u l d i n c l u de bo t h l o w er a n d u pp e r l i m i t a s
follows.
E . g. : D i m m y a r r a y ( 2 t o 1 2 ) a s i n t e g er
12.
I n t h e a bo v e s t a t e m e n t a n a r r a y o f 1 0 el em en t s i s d ec l a r e d w i t h i n d ex e s r u n n i n g f r o m 2 t o
A pu bl i c a r r a y c a n b e c r e a t e d u s i n g k e y w o r d p u bl i c i n st e a d o f d i m .
E . g. : - P u b l i c m y a r r a y ( 1 0 ) a s i n t e g e r
P u bl i c m y a r r a y ( 1 0 )
P u bl i c m y a r r a y ( 2 0 t o 1 2 )
Multi dimensional arrays:-
I t i s u s e d w h e n w e n e e d t o a l t e r r e l a t e d i n f o r m a t i o n o f di f f e r en t di m e n s i o n .
E . g. : Dim myarray(10,10)
Dim myarray (2 to 12,101 to 110)
A n y n o . O f d i m e n s i o n c a n b e d ec l a r e d i n a m u l t i di m e n s i o n a l a r r a y .
2) Dynamic arrays: -
T h e r e w i l l be s i t u a t i o n w e r e t h e u se r m a y n o t k n o w t h e e x a c t s i z e o f a r r a y a t d e si gn t i m e.
I n s u c h c i r c u m s t a n c e s , a d y n a m i c a r r a y c a n b e i n i t i a l l y d ec l a r ed a n d c a n h a v e e l em en t s w h en
n e e de d.
E . g. : Dim myarray ()
T h e a c t u a l n o . o f e l e m e n t c a n b e l o c a t e d u s i n g r e di m s t a t em en t .
Redim myarray(10)
Redim myarray(12)
T h e R e di m s t a t e m e n t c a n a p pe a r o n l y i n a pr o c e du r e. R e di m i s a ex ec u t a bl e s t a t em en t . T h e l o w er
a n d u p p e r l i m i t s c a n a l s o be s p e c i f i e d a s i n a f i x e d s i z e a r r a y .
E . g. : R e d i m m y a r r a y ( 2 t o 1 2 ) .
E a c h t i m e o n e x e c u t i n g t h e r e d i m st a t em en t , t h e c u r r en t d a t a st o r ed i n a a r r a y i s l o s t a n d
t h e d e f a u l t v a l u e i s s e t . B u t i f y o u w a n t t o c h a n g e t h e s i z e o f a r r a y w i t h o u t l o s i n g pr e v i o u s da t a
u s e ‘ p r e s e r v e ’ k e y w o r d w i t h r e di m s t a t e m e n t .
E . g. : R e d i m pr e s e r v e m y a r r a y ( 2 - 1 2 )
W h e n t h e p r e s e r v e k e y w o r d i s u se d, o n l y t h e u p p er l i m i t o f t h e l a st di m en si o n i n a
m u l t i di m e n s i o n a l a r r a y c a n b e c h a n g e d.
Th e Ar ray ( ) F un c ti o n
Y o u c a n a l s o u s e t h e A r r a y ( ) f u n c t i o n t o c r e a t e a n ew v a r i a n t h o l di n g a n a r r a y . H er e’ s h o w y o u
use Array( )
Array (arglist)
T h e a r g l i s t a r gu m e n t i s a l i s t o f v a l u e s t h a t a r e a ss i gn ed t o t h e el e m e n t s o f t h e a r r a y c o n t a i n e d
within the variant. Here’s an example that creates an array with the values 0, 1, and 2.
Dim A As Variant
A=Array (0,1,2)
NetScape COMPUTER ACADEMY
52
User defined data types:
V a r i a b l e s o f d i f f e r e n t da t a t y pe w h en c o m bi n e d a s a si n g l e v a r i a b l e t o h o l d s e v e r a l r e l a t e d
i n f o r m a t i o n i s c a l l e d u s e r d e f i n e d da t a t y p e s.
A t y p e s t a t e m e n t i s u s e d t o d e f i n e a u se r d ef i n e d t y p e i n t h e g en e r a l d ec l a r a t i o n sec t i o n o f a f o r m
o r m o du l e . U s e r d e f i n e d d a t a t y p e c a n a l so b e pr i v a t e i n a f o r m w h i l e i n a st a n d a r d m o du l e i t c a n
b e pu b l i c o r pr i v a t e .
E . g. :
Private type products
pr o d_ i d a s i n t e g e r
H_name as string
P r i c e a s do u b l e
End type
T h e u s e r de f i n e d d a t a t y p e c a n b e d ec l a r e d w i t h a v a r i a b l e u si n g d i m st a t em en t a s i n a n y o t h er
v a r i a bl e . A n a r r a y a l s o c a n b e d e c l a r e d o f u s e r d ef i n e d da t a t y p e
di m a b a s pr o du c t s
A u s e r d e f i n e d da t a c a n b e r e f e r r e d i n a n a p p l i c a t i o n b y u s i n g t h e v a r i a b l e n a m e.
along with item.name in the type block.
E . g. :
t h e pr o c e d u r e
ab.H_name=”TV”
T e x t 1 . t e x t = a b. H _ n a m e
Constants
C o n s t a n t s a r e n a m e d s t o r a g e l o c a t i o n i n m em o r y , t h e v a l u e o f w h i c h do e s n o t c h a n g e d u r i n g
pr o gr a m e x e c u t i o n .
T h e c o n s t a n t s t a t e m en t i s u se d t o c r e a t e a c o n st a n t .
C o n st a n t s c a n b e
d e c l a r e d i n l o c a l , f o r m m o du l e o r g l o ba l sc o p e a n d c a n b e pu b l i c o r pr i v a t e.
E . g. : P u b l i c c o n s t a n t s P i e a s s i n gl e = 3 . 1 4
Built-in functions
V I S U A L B A S I C o f f e r s m a n y b u i l t - i n f u n c t i o n s u n d er v a r i o u s c a t e go r i e s.
Numeric Functions
Date & Time function
D a t e a n d t i m e a r e i n t e r n a l l y s t o r e d a s n u m b e r i n V I S U A L B A S I C a n d r ep r e s en t
w i t h t h e da t e b e t w e e n 1 s t J a n 1 0 0 t o 3 1 s t D ec 9 9 9 9 .
a l l n u m b er po s i t i o n
T h e s y s t e m ’ s c u r r e n t d a t e a n d t i m e c a n b e r et r i e v ed b y u s i n g n o w , t i m e f u n c t i o n s i n V I S U A L B A S I C .
N o w ( ) f u n c t i o n r e t r i e v e s t h e d a t e a n d t i m e. D a t e( ) f u n c t i o n r e t r i e v es o n l y d a t e, a n d t i m e( ) o n l y
time.
String Functions
A b s : - T h e A b s f u n c t i o n r e t u r n s t h e a b so l u t e v a l u e s o f a n u m b er . A b s r e t u r n s t h e u n si gn e d v a l u e s
o f t h e s u p pl i e d n u m e r i c e x pr e s s i o n .
Syntax
E . g. :
Abs(number)
X=Abs(-5)

5
A s c , A s c B , A s c W : - T h e A s c f u n c t i o n r et u r n s t h e n u m e r i c c o d e o f a c h a r a c t e r . T h e r a n g e f o r
r e t u r n s i s f r o m 0 t o 2 5 5 . T h e A s c B f u n c t i o n i s u s e d w i t h b y t e st r i n g s . I n s t ea d o f r e t u r n i n g t h e
c h a r a c t e r c o d e f o r t h e f i r s t c h a r a c t e r , A sc B r e t u r n s t h e f i r st by t e. T h e A sc W f u n c t i o n r et u r n s t h e
U n i c o d e c h a r a c t e r c o de e x c e pt o n pl a t f o r m s w h e r e U n i c o d e i s n o t su p po r t e d.
Syntax
E . g. :
A s c ( s t r i n g e x pr e s s i o n )
X=Asc(“A”)
Print A  65
B O F : - T h e B O F f u n c t i o n r e t u r n s t h e b eg i n n i n g o f a n o pe n f i l e s t a t u s. T h i s f u n c t i o n i s u s ef u l w h en
f o r c h e c k i n g i f t h e c u r s o r h a s r e a c h e d b e gi n n i n g o f a f i l e. T h i s f u n c t i o n r e t u r n s T r u e i f t h e po i n t er
i s a t b e g i n n i n g o f f i l e , e l s e i t r e t u r n s F a l s e.
Syntax
Filename.BOF
E . g. : IF rs.BOF=True Then
M s gB o x “ B e g i n n i n g O f F i l e ”
End If
NetScape COMPUTER ACADEMY
53
C B o o l : - C o bo l f u n c t i o n c o n v e r t s a n u m er i c o r st r i n g e x pr e ss i o n t o B o o l e a n .
Syntax
E . g. :
C o bo l ( e x pr e s s i o n )
X = C o bo l ( 1 )
X = C o bo l ( 0 )


True
False
C b y t e : - C b y t e c o n v e r t s a n u m e r i c o r s t r i n g e x pr e ss i o n t o B y t e.
Syntax
E . g. :
Cbyte(expression)
X=Cbyte(25)
 255
‘ t h e n u m be r m u st b e b e t w e en 0 a n d 2 5 5 .
C c u r : - C o n v e r t f r o m a n u m e r i c o r s t r i n g ex pr e s s i o n t o C u r r en c y .
Syntax
E . g. :
C c u r ( e x pr e s s i o n )
X=Ccur(234444)

2 3 4 4 4 4 ‘ t h e n u m be r m u s t b e i n t h e r a n g e o f
c u r r en c y v a l u e.
Cdate:-Convert a numeric or string expression to Date
Syntax
E . g. :
Cdate(expression)
X=Cdate(“12/03/2001”)
 1 2 / 0 3 / 2 0 0 1 ‘ r e t u r n s a d a t e t y pe d a t a .
CDbl:- Convert a numeric or date to Double data type
Syntax
E . g. :
C D b l ( e x pr e s s i o n )
X = C d bl ( 1 2 3 2 2 )

1 2 3 2 2 ‘ t h e n u m be r m u st b e i n do u bl e da t a r a n g e.
C h r , C h r B ,C h r W : - T h e C h r f u n c t i o n r e t u r n t h e c h a r a c t e r t h a t c o r r e s po n d s t o t h e su p pl i e d A N S I
c o d e . N o r m a l l y t h e A N S I c o d e m u s t b e i n t h e r a n g e o f 0 t o 2 5 5 . T h i s f u n c t i o n i s u s ef u l f o r
s pe c i f y i n g c h a r a c t e r s t h a t y o u c a n n o t t y p e a t t h e k e y bo a r d, s u c h a s s p ec i a l c o n t r o l c o d e s f o r t h e
pr i n t e r . A n o t h e r go o d u s e i s t o pr o du c e do u bl e qu o t e m a r k s i n s t r i n g s . Y o u c a n u s e C h r ( 3 4 ) t o
r e t u r n do u b l e qu o t e m a r k s . T h e C h r B f u n c t i o n i s u s e d w i t h b y t e da t a c o n t a i n e d i n a st r i n g a n d
a l w a y s r e t u r n a s i n gl e b y t e . T h e C h r W f u n c t i o n r et u r n s a st r i n g c o n t a i n i n g U n i c o de c h a r a c t e r .
Syntax
E . g. :
Chr(ANSIcode)
X=Chr(65)
Print X  A
C d e c : - C o n v e r t a n u m e r i c o r s t r i n g t o D ec i m a l d a t a t y p e .
Syntax
E . g. :
C d e c ( e x pr e s s i o n )
X=Cdec(1233) 
1233
t h e n u m be r m u st b e i n d ec i m a l r a n ge.
C i n t : - C o n v e r t a n u m e r i c o r s t r i n g t o i n t e ge r d a t a t y p e.
Syntax
E . g. :
C i n t ( e x pr e s s i o n )
Cint(32155)

3 2 1 5 5 t h e n u m be r m u st b e i n i n t e g er d a t a r a n ge.
C L n g : - C o n v e r t a n u m e r i c o r s t r i n g t o l o n g d a t a t y p e.
Syntax
E . g. :
C l n g( e x pr e s s i o n )
C l n g( 1 2 3 3 )

1233
t h e n u m be r m u st b e i n l o n g da t a r a n g e
C S n g : - C o n v e r t a n u m e r i c o r s t r i n g t o s i n gl e da t a t y p e.
Syntax
E . g. :
C S n g ( e x pr e s s i o n )
CSng(1233)

1233
t h e n u m be r m u st b e i n s i n g l e d a t a r a n g e
NetScape COMPUTER ACADEMY
54
C S t r : - C o n v e r t a n u m e r i c o r s t r i n g t o st r i n g da t a t y pe .
Syntax
E . g. :
CStr(expression)
CStr(1233)

1233
C u r D i r : - R e t u r n s t h e c u r r e n t d e f a u l t di r ec t o r y f o r t h e s p ec i f i e d dr i v e . T h i s f u n c t i o n r e t u r n s a
v a r i a n t t y p e da t a . Y o u c a n a l s o u s e C u r D i r $ f u n c t i o n t o r e t u r n a s t r i n g t y p e d a t a .
Syntax
E . g. :
C u r D i r ( dr i v e $ )
X=CurDir(“C:”)
Print X
C v a r : - C o n v e r t s a s t r i n g o r n u m e r i c t o v a r i a n t d a t a t y pe.
Syntax
Cvar(expression)
E . g. :
Cvar(3444)

3444
D a t e , D a t e $ : - R e t u r n s C u r r e n t s y s t em d a t e. D a t e f u n c t i o n r e t u r n s da t e d a t a t y pe a n d D a t e $
r e t u r n s s t r i n g t y pe d a t e .
Syntax
E . g. :
Date
X=Date$
Print X
D a t e S e r i a l : - T h e D a t e S e r i a l f u n c t i o n c o n v er t s t h e n u m er i c v a l u e s o f a n i n di c a t e d d a t e t o a V i s u a l
B a s i c da t e da t a t y pe . T h i s f u n c t i o n r e t u r n s a v a r i a n t d a t a t h a t r e pr e s en t s t h e m o n t h , d a y , a n d y e a r
of a date on the calendar.
Syntax
DateSerial(year,month,day)
T h e y e a r a r gu m e n t i s a n u m b e r b et w e en 1 0 0 a n d 9 9 9 9 , t h e m o n t h a r g u m en t i s a n o .
of
m o n t h b e t w e e n 1 a n d 1 2 , da t e a r gu m e n t st a n d s f o r a v a l i d n u m b er f o r d a t e
b et w e en 1 a n d 3 1 .
E . g. :
Newdate=DateSerial(2001,12,25)
Print NewDate
D a t e V a l u e : - T h e D a t e V a l u e f u n c t i o n c o n v er t s a d a t e i n t h e f o r m o f a st r i n g i n t o a V i su a l B a si c
da t e d a t a t y p e . T h i s f u n c t i o n c h a n ge s di f f e r en t l y f o r m a t t e d d a t e s t o a u n i v er s a l n u m er i c a l f o r m .
Syntax
E . g. :
D a t e V a l u e ( d a t e s t r i n g)
D i m dt f i r s t a s d a t e
Dtfirst=DateValue(“25/12/2001”)
P r i n t dt F i r s t
D a y : - r e t u r n s a n i n t e ge r v a l u e r e p r e s en t i n g da y o f gi v en da t e .
Syntax
E . g. :
Day(dateexpression)
Dy=Day(now())
Print Dy
D I S T I N C T R O W : - T h e D i s t i n c t R o w f u n c t i o n f i l t e r s d u p l i c a t e r o w s f r o m a r ec o r d s et .
Syntax
E . g. :
S e l e c t D I S T I N C T R O W f i e l d 1 , f i el d2 , f i el d3 … f r o m T a b l en a m e
Select DISTINCTROW Customer.Name From Customer INNER JOIN on _
C u s t o m e r . C u s t o m e r I D = O r d e r . C u st o m e r I D
NetScape COMPUTER ACADEMY
55
E O F : - T h e E O F f u n c t i o n r e t u r n s t h e e n d o f f i l e st a t u s o f a n o p en f i l e. I t i s i m po r t a n t t o c h ec k t h e
e n d o f f i l e s t a t u s t o a v o i d r e a di n g p a st t h e en d o f f i l e. T h i s f u n c t i o n r et u r n s a B o o l e a n v a l u e T r u e
or False.
Syntax
E . g. :
Filename.EOF
IF rs.EOF Then
M s gB o x “ E n d o f F i l e ”
End If
E x p : - T h i s f u n c t i o n r a i s e s t h e n a t u r a l l o g a r i t h m i c ba s e e ( ba s e a bo u t 2 . 7 1 8 2 8 2 ) t o t h e s pec i f i ed
po w e r .
Syntax
E . g. :
E x p( n u m b e r )
X=Exp(1234)
Print X 
162754.791419004
F i l e L e n : - T h e F i l e L e n f u n c t i o n r e t u r n s t h e t o t a l l en g t h o f a f i l e i n by t e s . I t i s u s ef u l t o d e t e r m i n e
t h e s i z e o f a f i l e . T h i s f u n c t i o n r e t u r n s a l o n g i n t e ge r v a l u e.
Syntax
E . g. :
FileLen(filename)
X = F i l e L e n ( “ C : \ W i n do w s \ c o n f i g. t x t ” )
Print X
F i x : - T h e F i x f u n c t i o n r e t u r n s t h e w h o l e - n u m b e r po r t i o n o f a d bl e x p r es si o n . A l l d i gi t s t o t h e r i gh t
o f d e c i m a l a r e t r u n c t a t e d. N o r o u n d i n g i s p e r f o r m e d.
Syntax
E . g. :
F i x ( d bl e x pr e s s i o n )
X=Fix(5.34)

5
F o r m a t : - T h e F o r m a t f u n c t i o n t a k e s a s t r i n g, n u m b er , o r d a t e v a r i a n t a n d r et u r n s a f o r m a t t e d
n u m b e r , da t e , o r t i m e . T h e F o r m a t pa r a m et er c a n h a v e m o r e t h a n o n e pa r t d e p en di n g o n t h e t y p e
o f t h e i t e m t o b e f o r m a t t e d. F o r n u m b er s, y o u c a n h a v e u p t o f o u r pa r t s. P a r t 1 i s po s i t i v e
n u m b e r s , p a r t 2 f o r n e g a t i v e n u m b e r s , p a r t 3 f o r 0 , a n d p a r t 4 i s f o r n u l l . F o r st r i n g s y o u c a n h a v e
t w o p a r t s . T h e f i r s t p a r t f o r s t r i n g s w i t h o n e o r m o r e c h a r a c t er s a n d t h e s ec o n d p a r t f o r z er o
l e n g t h s t r i n gs ( “ “ ) o r N u l l .
Syntax
Format ( expression, “format1; format2”, firstdayofweek, firstweekofyear)
H e r e e x pr e s s i o n i s t h e d a t a t o f o r m a t , f o r m a t s p ec i f i es h o w t o f o r m a t t h e ex pr e s si o n ,
f i r s t d a y o f w e e k i s a n o p t i o n a l p a r a m e t er u s e d w h en f o r m a t t i n g d a t e s, f i r st w e ek o f y e a r i s a n o t h er
o pt i o n a l pa r a m e t e r w h e n f o r m a t t i n g d a t e s. T h e f o r m a t s a v a i l a bl e a r e
Argument
Description
(0)
(#)
(.)
(%)
D i s p l a y s a z e r o o r a n u m b er
D i s p l a y s a n u m be r o r n o t h i n g
D e c i m a l po i n t . A c t u a l d e c i m a l p o i n t i s b a s ed o n r e gi o n a l s et t i n g s
P e r c e n t a g e . N u m b e r i s m u l t i pl i e d by 1 0 0 a n d p e r c en t s i gn i s s h o w n b a s e d o n
po s i t i o n o f % i n f o r m a t .
T h o u s a n d s s e p a r a t o r . A c t u a l s e p a r a t o r d e p en ds o n r e gi o n a l s e t t i n g s
T i m e s e p a r a t o r . A c t u a l s e pa r a t o r d ep en d s o n r e g i o n a l s e t t i n gs
D a t e s e p a r a t o r . A c t u a l s e pa r a t o r d ep en d s o n r e g i o n a l s e t t i n gs
C h a r a c t e r p l a c e h o l d e r . D i s p l a y s a c h a r a c t er o r s p a c e .
Character placeholder
Displays a character or nothing
Force lowercase
Force uppercase
F o r c e l e f t t o r i gh t f i l l o f pl a c eh o l d er s
Scientific notation
Displays character entered
D i s p l a y s n e x t c h a r a c t e r , r e ga r dl e s s o f m e a n i n g w i t h i n t h e f o r m a t t e d s t r i n g
(,)
(:)
(/)
@
&
<
>
!
(E-E+e-e+)
-+$( )
(\)
“ G e n e r a l N u m be r ”
“Currency”
“Fixed”
No thousands separator
U s e t h o u s a n d s s e p a r a t o r a n d di s p l a y t w o pl a c e s t o t h e r i gh t o f d ec i m a l
pl a c e s
D i s p l a y a t l e a s t o n e n u m b er t o t h e l e f t o f d ec i m a l p l a c e a n d t w o t o t h e
r i gh t
NetScape COMPUTER ACADEMY
“ S t a n da r d ”
56
U s e t h o u s a n d s s e p a r a t o r , o n e p l a c e t o t h e l ef t o f dec i m a l a n d t w o t o
t h e r i gh t .
m u l t i pl i e s n u m b e r b y 1 0 0 w i t h t w o pl a c e s t o t h e r i g h t o f dec i m a l pl a c e.
standard scientific notation
D i s p l a y s Y e s u n l e s s t h e n u m b e r i s 0 ; t h en i t d i s p l a y s N o
D i s p l a y s F a l s e u n l e s s t h e n u m b er i s 0 ; t h en i t di s pl a y s T r u e
D i s p l a y s O n u n l e s s t h e n u m b er i s 0 ; t h en i t di s p l a y s O f f
“Percent”
“Scientific”
“Yes/No”
“True/False”
“On/Off”
E . g. :
a b= 1 0 0 0
B c = f o r m a t ( a b, ” 0 . 0 0 ” )
1000.00
a b= n o w ( )
bc = f o r m a t ( a b, ” D D / M M / Y Y ” )
E x a m pl e s
Sformat=”Currency”
P i c t u r e 1 . P r i n t S f o r m a t & “ : “ ; T a b( 3 0 ) ; F o r m a t ( V a l ( T e x t 1 ) , S f o r m a t )
Sformat=”######.00”
P i c t u r e 1 . P r i n t S f o r m a t & “ : “ ; T a b( 3 0 ) ; F o r m a t ( V a l ( T e x t 1 ) , S f o r m a t )
Sformat=”000000.##”
P i c t u r e 1 . P r i n t S f o r m a t & “ : “ ; T a b( 3 0 ) ; F o r m a t ( V a l ( T e x t 1 ) , S f o r m a t )
S f o r m a t = ” S t a n da r d”
P i c t u r e 1 . P r i n t S f o r m a t & “ : “ ; T a b( 3 0 ) ; F o r m a t ( V a l ( T e x t 1 ) , S f o r m a t )
S f o r m a t = ” G e n e r a l N u m b er ”
P i c t u r e 1 . P r i n t S f o r m a t & “ : “ ; T a b( 3 0 ) ; F o r m a t ( V a l ( T e x t 1 ) , S f o r m a t )
S f o r m a t = ” F i x e d”
P i c t u r e 1 . P r i n t S f o r m a t & “ : “ ; T a b( 3 0 ) ; F o r m a t ( V a l ( T e x t 1 ) , S f o r m a t )
Sformat=”Percent”
P i c t u r e 1 . P r i n t S f o r m a t & “ : “ ; T a b( 3 0 ) ; F o r m a t ( V a l ( T e x t 1 ) , S f o r m a t )
E x a m pl e s u s i n g F o r m a t $ t o di s pl a y d a t e a n d t i m e
F o r m a t $ ( N o w ,” m - d - y y ” )
F o r m a t $ ( N o w ,” m / d / y y ” )
F o r m a t $ ( N o w ,” m m - d d - y y ” )
F o r m a t $ ( N o w ,” d d d ,m m m m d , y y y ” )
F o r m a t $ ( N o w ,” d m m m ,y y y ” )
F o r m a t $ ( N o w ,” h h : m m : s s m m / d d / y y ” ) F o r m a t $ ( N o w ,” h h : m m : s s A M / P M m m - d d - y y ” )
“1-1-00”
“1/1/00”
“01-01-00”
“ ” F r i d a y ,J a n u a r y 1 , 2 0 0 0 ”
“ 1 J a n ,2 0 0 0 ”
“01:00:00 01/01/00”
“01:00:00 AM 01-01-00”
H e x : - T h e H e x f u n c t i o n c o n v e r t s a dec i m a l n u m e r i c ex p r e s si o n t o a v a r i a n t o r st r i n g t h a t
r e pr e s e n t s t h e v a l u e o f t h e n u m e r i c e x pr e s si o n i n h ex a d ec i m a l f o r m a t .
Syntax
E . g. :
H e x ( n u m e x pr e s s i o n )
X=Hex(1234.55)
Print X

4D3
H o u r : - T h e H o u r f u n c t i o n r e t u r n s a n i n t e g er r e p r e s en t i n g t h e h o u r o f g i v en t i m e .
Syntax
E . g. :
H o u r ( t i m e e x pr e s s i o n )
X=Hour(Now())
Print X
I N : - T h e I N f u n c t i o n c h e c k s t o s e e i f a v a l u e i s a m e m b e r o f su b qu er y ’ s r e su l t s. T h e o p t i o n a l N O T
c h e c k s i f a v a l u e i s n o t a m e m b e r o f a su b qu er y ’ s r e su l t s.
Syntax
E . g. :
Q u e r y e x pr e s s i o n [ N O T ] I N ( s u b qu er y )
S e l e c t N a m e f r o m C u s t o m e r s w h er e C u s t o m er I D
NOT IN(Select CustomerID From
P r o du c t s)
NetScape COMPUTER ACADEMY
57
I n p u t , I n p u t $ : - R e a d s a s t r i n g o f c h a r a c t e r s f r o m a f i l e, a s si gn i n g n o s pec i a l m e a n i n g t o c a r r i a g e
r e t u r n s a n d l i n e f e e ds .
Syntax
E . g. :
I n pu t $ ( i n pu t l e n g t h , f i l e n u m b e r )
I n pu t $ ( 1 0 0 , 1 ) ‘ r e a ds 1 0 0 c h a r a c t er s f r o m t h e f i l e o p en e d a s n u m b er 1 .
I n p u t B o x : - T h i s f u n c t i o n d i s p l a y s a d i a l o g bo x w i t h a m e s sa g e a n d a t e x t bo x i n w h i c h u s er c a n
enter some text
Syntax
E . g. :
I n pu t B o x ( P r o m p t [ , T i l t e ] [ , d e f a u l t t ex t ] [ , l ef t , t o p] [ , h el pf i l e, c o n t ex t ] )
S s = I n pu t B o x ( “ E n t e r y o u r n a m e ” , E n t r y B o x ” )
Print ss
I n s t r : - T h i s f u n c t i o n r e t u r n t h e po s i t i o n o f a n o c c u r r en c e o f a se a r c h st r i n g w i t h i n a n o t h er s t r i n g
b e i n g s e r a c h e d. I f t h e s t r i n g i s n o t f o u n d I n s t r f u n c t i o n r e t u r n s 0 .
Syntax
I n s t r ( [ s t a r t po ] , s t r i n g1 , s t r i n g2 )
T h e pa r a m e t e r s t r i n g1 i s t h e s t r i n g t h a t w i l l b e s e a r c h e d. S t r i n g2 i s t h e st r i n g t h a t i s b e i n g
s e a r c h e d f o r . I f s t r i n g2 i s f o u n d w i t h i n st r i n g1 , t h e I n st r r et u r n s t h e po si t i o n w h e r e t h e st r i n g i s
f o u n d. Y o u c a n u s e t h e o pt i o n a l s t a r t po s i t i o n p a r a m e t e r t o sp ec i f y t h e s e a r c h t o st a r t f o r .
E . g. :
X=Instr(“ICES”,”C”)
 2
I n t : - T h e I n t F u n c t i o n r e t u r n s t h e l a r g e st i n t e g e r t h a t i s l e s s t h a n o r eq u a l t o t h e su p pl i e d n u m er i c
e x pr e s s i o n . I t e s s e n t i a l l y r o u n d s a n u m er i c ex p r e ss i o n t o t h e n e a r e st i n t e ge r .
Syntax
E . g. :
I n t ( n u m e r i c e x pn )
X=Int(5.44)
 5
Return values for Fix, Int and Cint functions
Value
Fix
Int
Cint
2.7
2.2
2
-2
-2.2
-2.7
2
2
2
-2
-2
-2
2
2
2
-2
-3
-3
3
2
2
-2
-2
-3
L c a s e ( ) : C o n v e r t s g i v e n s t r i n g t o l o w e r c a s e.
Syntax
T e x t de s c r i pt i o n = L c a s e ( s t r i n g e x pr e s s i o n )
E . g. :
X=”ICES”
Y=Lcase(X)  ices
L e f t : - T h e L e f t f u n c t i o n r e t u r n a po r t i o n o f a v a r i a n t o r a st r i n g, st a r t i n g a t t h e f i r s t c h a r a c t e r
f r o m t h e l e f t s i d e o f t h e s t r i n g gi v e n . T h e s t r i n g a r gu m en t s pec i f i e s t h e s t r i n g a n d t h e i n t l en gt h
pa r a m e t e r s pe c i f i e s t h e n u m b e r o f c h a r a c t e r s t o c o py .
Syntax
E . g. :
L e f t ( s t r i n g, i n t l e n gt h )
X=Left(“ICES”,2)

IC
L e n : - T h e L e n f u n c t i o n r e t u r n t h e s t o r a g e l en gt h o f a v a r i a bl e. T h e y a r e m o st c o m m o n l y u s e d t o
f i n d t h e l e n gt h o f a s t r i n g.
Syntax
Len(stringepression)
E . g. :
X = L e n ( “ I n d i a n C o m pu t e r ” )

14
NetScape COMPUTER ACADEMY
58
L o a d P i c t u r e : - T h e L o a d P i c t u r e f u n c t i o n p l a c e s pi c t u r e s i n f o r m s, i m a g e c o n t r o l s a n d p i c t u r e
bo x e s . T h e l o a de d pi c t u r e m u s t b e i n bi t m a p ( . B M P ) , d ev i c e i n d ep en d e n t b i t m a p( D I B ) , i c o n ( I C O ) ,
r u n - l e n gt h e n c o d e d ( R L E ) , W i n do w s M e t a F i l e ( W M F ) , W i n do w s E x t en de d M et a f i l e ( E M F ) , G r a ph i c a l
I n t e r c h a n g e F o r m a t ( G I F ) , o r J o i n t P h o t o gr a p h i c E x pe r t s G r o u p ( J P G ) f o r m a t . U s e L o a d P i c t u r e
f u n c t i o n w i t h o u t f i l e n a m e t o c l e a r t h e c o n t en t s o f t h e o bj ec t
Syntax
E . g. :
LoadPicture(Filename)
Image1.Picture=LoadPicture(“C: \WINDOWS\CLOUDS.GIF”)
L o c : - T h e L o c f u n c t i o n r e t u r n s t h e c u r r en t po si t i o n o f t h e po i n t er f o r a n o p en f i l e, w h i c h i n di c a t e s
w h e r e t h e n e x t r e a d o r w r i t e o p e r a t i o n w i l l o c c u r . T h e m ea n i n g o f t h e n u m b er r et u r n ed d e p en ds o n
t h e m o d e u n d e r w h i c h t h e f i l e w a s o pe n e d.
Syntax
E . g. :
Loc(filename)
X=Loc(1)
t h i s e x a m pl e pl a c es a n u m b er r e pr e s en t i n g t h e c u r r en t po si t i o n i n t h e f i l e
L O F : - T h e L O F f i l e r e t u r n s t h e l e n g t h i n by t es o f a n o p en f i l e.
Syntax
E . g. :
LOF(filenumber)
LOF(1)
L o g : - T h e L o g f u n c t i o n r e t u r n s t h e n a t u r a l l o g a r i t h m o f a n u m er i c ex pr e ss i o n . T h e n a t u r a l
l o g a r i t h m , w h i c h h a s a b a s e o f a pp r o x i m a t e l y 2 . 7 1 8 2 8 2 .
Syntax
E . g. :
L o g( d b l e x pr e s s i o n )
L o g( 1 2 . 3 4 )

2.51284601847724
L s e t : - T h e L s e t f u n c t i o n m o v e s d a t a f r o m st r i n g o r u s er d ef i n e t y p e ( U D T ) t o a n o t h er . W h en L s et
i s u s e d t o m o v e d a t a f r o m o n e v a r i a b l e t o a n o t h e r , t h e d a t a i n t h e f r o m v a r i a b l e i s pl a c ed l ef t
justified in to the variable.
Syntax
E . g. :
Lset s1=s2
X=”ICES”
Y=”COMPUTER”
Lset X=Y
Print X

COMP
L t r i m : - T h e L t r i m f u n c t i o n r e t u r n s a c o p y o f a s t r i n g w i t h a n y l ea d i n g s pa c e s r e m o v e d. T h e S t r i n g
pa r a m e t e r s pe c i f i e s t h e s t r i n g.
Syntax
E . g. :
L t r i m ( s t r i n g)
X=Ltrim(“
ICES”)

“ICES”
M a x , M i n : - T h e M a x F u n c t i o n i s u s e d t o r et u r n t h e h i g h e s t v a l u e i n a g i v en f i el d, a n d t h e M i n
f u n c t i o n i s u s e d t o r e t u r n t h e l o w e s t v a l u e i n a gi v en f i e l d .
Syntax
E . g. :
M a x | M i n ( e x pr e s s i o n ) a s r e s u l t f i e l d
Select Max(Qty) As MXQty From Stock
Select Min(Qty) As MNQty From Stock
M i d : - T h e M i d f u n c t i o n r e t u r n s t h e s pec i f i e d po r t i o n o f a st r i n g e x pr e s si o n . T h i s f u n c t i o n r e t u r n s
t h e s p e c i f i e d s u b s t r i n g o f a s t r i n g e x pr e s si o n . T h e st r e x pr e s si o n p a r a m e t e r de s i g n a t e s t h e so u r c e
s t r i n g a n d c a n b e a f i x e d o r v a r i a b l e l en g t h s t r i n g, a st r i n g c o n s t a n t , a l i t er a l st r i n g, t h e r e su l t of
a n y f u n c t i o n t h a t r e t u r n s a s t r i n g, o r a v a r i a n t t h a t c a n e v a l u a t e t o a st r i n g. T h e i n t s t a r t p a r a m e t e r
s pe c i f i e s t h e po s i t i o n w i t h i n t h e s o u r c e st r i n g w h er e t h e c o p y w i l l be g i n . T h e i n t l en gt h p a r a m e t er
i s u s e d t o s p e c i f y h o w m a n y c h a r a c t e r s w i l l b e c o pi e d. T h i s i s a n o p t i o n a l p a r a m e t e r . I f n o t u s e d,
t h e f u n c t i o n w i l l r e t u r n a l l t h e c h a r a c t er s f r o m i n t s t a r t po si t i o n t o en d o f st r i n g.
Syntax
E . g. :
M i d( s t r e x pr e s s i o n , i n t s t a r t , i n t l e n gt h )
X = M i d( “ I C E S ” , 2 , 2 )

CE
NetScape COMPUTER ACADEMY
59
M i n u t e : - T h e M i n u t e f u n c t i o n r e t u r n s a n i n t e g e r r e pr e s en t i n g t h e M i n u t e o f g i v e n t i m e.
Syntax
E . g. :
M i n u t e ( t i m e e x pr e s s i o n )
X=Minute(Now())
Print X
M o n t h : - r e t u r n s a n i n t e g e r v a l u e r e pr e sen t i n g M o n t h o f g i v e n d a t e.
Syntax
E . g. :
M o n t h ( da t e e x pr e s s i o n )
Dy=Month(now())
Print Dy
M s g B o x : - T h e M s g B o x f u n c t i o n di s pl a y s a di a l o g bo x w i t h a m es s a ge a n d a n o p t i o n a l i c o n . Y o u r
pr o gr a m i n s t r u c t s t h e f u n c t i o n t o di s pl a y o n e o r m o r e se t s o f pr e d ef i n e d c o m m a n d bu t t o n s o n t h e
di a l o g bo x . W h e n t h e u s e r s e l e c t o n e o f t h e s e b u t t o n s, t h i s f u n c t i o n r et u r n s a n u m b er b a s e d o n t h e
selected button.
Syntax
E . g. :
M s gB o x ( M e s s a g e $ [ , O p t i o n s ] [ , B o x n a m e] [ , H e l p F i l e , c o n t e x t ] )
R e s u l t = M s g B o x ( “ A r e Y o u S u r e t o D e l et e” , v bC r i t i c a l + v bY e sN o , ” D el et e ” )
N o w : - T h e N o w F u n c t i o n pr o v i d e s t h e c u r r en t da t e a n d t i m e o f t h e c o m pu t er ’ s sy s t e m c l o c k c a l e n d a r a s a d a t e da t a t y p e .
Syntax
E . g. :
Now()
X=Now()
Print X
N p e r : - T h e N p e r f u n c t i o n c a l c u l a t e s t h e n u m b er o f p e r i o d s f o r a n a n n u i t y , a s su m i n g c o n st a n t
pa y m e n t s a n d i n t e r e s t r a t e .
Syntax
N p e r ( R a t e , P a y m e n t , S t a r t i n g V a l u e)
E . g. :
X=Nper(1.5/100,-2500,10000)
Print X 
61
N o t e : E i t h e r P a y m e n t o r S t a r t i n g v a l u e m u st b e gi v en i n n e g a t i v e v a l u e.
O c t : - T h e O c t f u n c t i o n r e t u r n s a v a r i a n t o r st r i n g t h a t r e pr e se n t s t h e s u p pl i ed n u m er i c e x pr e ss i o n
in octal notation (base 8)
Syntax
E . g. :
O c t ( n u m e x pr e s s i o n )
X=Oct(1234.55)
Print X

2323
P m t : - U s e t h e P M T f u n c t i o n t o r e t u r n t h e t o t a l p a y m en t a m o u n t ( P r i n c i p a l a n d i n t er e st ) o n a n
a n n u i t y , a s s u m i n g c o n s t a n t p e r i o d i c p a y m en t s a n d a c o n s t a n t i n t er e st r a t e.
Syntax
E . g. :
P M T ( R a t e , N o . o f p a y m e n t s , P r e s en t v a l u e)
X=PMT(1.5/100,60, -100000)
Print X

2539.34274271092
P V : - U s e t h e P V f u n c t i o n t o d e r i v e t h e pr e sen t v a l u e o f a n a n n u i t y , a s s u m i n g a c o n s t a n t s t r e a m o f
p e r i o d i c a n d a n u n v a r y i n g i n t e r e s t r a t e.
Syntax
E . g. :
P V ( R a t e , n o . o f pa y m e n t s , P a y m e n t )
X=PV(1.5/100,60, -2539.34274271092)
Print X
100000
NetScape COMPUTER ACADEMY
60
Q B C o l o r : - T h e Q B C o l o r f u n c t i o n h e l p s d ef i n e t h e c o l o r o f a n o bj ec t o n t h e sc r e en . A n o bj e c t
d e f i n e d w i t h t h i s f u n c t i o n i s o n e o f 1 6 po s si bl e c o l o r s. T h e s e c o l o r s si m u l a t e t h e 1 6 s t a n d a r d c o l o r s
o f o l d e r D O S ba s e d p r o g r a m m i n g l a n gu a g es.
It has following values
QBColor number
Color
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Black
Blue
Green
Cyan
Red
M a ge n t a
Yellow
W h i t e ( L i gh t G r a y )
Gray
L i gh t B l u e
L i gh t G r e en
L i gh t C y a n
L i gh t R e d
L i gh t M a g en t a
L i gh t Y e l l o w
B r i gh t W h i t e
Syntax
E . g. :
QBColor(color number)
Text1.BackColor=QBColor(10)
R a t e : - T h e R a t e f u n c t i o n r e t u r n s t h e i n t er e st o f a n a n n u i t y , gi v en a c o n st a n t p e r i o di c s er i es o f
c a s h p a y m e n t s a n d a n u n v a r y i n g i n t e r e st r a t e.
Syntax
R a t e ( n o . o f p a y m e n t s , pa y m e n t , p r e s en t v a l u e)
E . g. :
Rate(60, -2539.34274271092,100000)
Print X

1.5
R G B : - T h e R G B f u n c t i o n p r o v i de s a m ea n s o f d ef i n i n g t h e c o l o r o f a n o b j ec t o n t h e sc r e en . E a c h
v a l u e i n R G B f u n c t i o n e x p r e s s i o n r e pr e s en t s t h e a m o u n t o f r e d, g r e en , a n d b l u e c o n t a i n e d i n t h e
di s pl a y e d c o l o r . T h e f o l l o w i n g l i s t s s o m e c o m m o n c o l o r s w i t h t h e c o r r e spo n d i n g R e d, G r e en a n d
B l u e a r gu m e n t s .
Color
Red Value
Black
Red
Green
Yellow
Blue
M a ge n t a
Cyan
White
L i gh t G r a y
Dark Gray
Green Value
0
255
0
0
0
255
0
255
192
128
0
0
255
255
0
0
255
255
192
128
Bl u e V a l u e
0
0
0
255
255
255
255
255
192
128
Syntax
R G B ( r e d v a l u e , gr e e n v a l u e , bl u e v a l u e)
E . g. :
Text1.BackColor=RGB(150,200,100)
R i g h t : - T h e R i gh t F u n c t i o n r e t u r n s a po r t i o n o f a st r i n g, s t a r t i n g a t t h e l a s t c h a r a c t e r w o r k i n g t o
t h e l e f t , f o r t h e l e n gt h s p e c i f i e d. T h e s t r ex pn pa r a m e t e r i s u s e d t o s pec i f y t h e s t r i n g a n d i n t l en g t h
pa r a m e t e r s pe c i f i e s n o . o f c h a r a c t e r s t o c o p y f r o m t h e r i gh t s i d e.
Syntax
E . g. :
R i gh t ( s t r e x p n , i n t l e n gt h )
X = R i gh t ( “ I C E S ” , 2 )

ES
R n d : - T h e R n d f u n c t i o n r e t u r n s a s i n gl e - p r ec i si o n r a n do m n u m be r b e t w e en 0 a n d 1 .
Syntax
E . g. :
R n d( N u m be r )
T e x t 1 . b a c k c o l o r = r g b( r n d * 2 5 5 , r n d * 2 5 5 , r n d* 2 5 5 ) ‘ w i l l c h a n g e t h e b a c k c o l o r
continuously.
NetScape COMPUTER ACADEMY
61
R t r i m : - T h e R t r i m f u n c t i o n r e t u r n s a c o py o f a st r i n g w i t h a n y t r a i l i n g s p a c es r e m o v e d. T h e
s t r e x pn s p e c i f i e s t h e s t r i n g
Syntax
E . g. :
R t r i m ( s t r e x pn )
X=Rtrim(“ICES
“)

“ICES”
S e c o n d : - T h e S e c o n d f u n c t i o n r e t u r n s a n i n t e g e r r e pr e s en t i n g t h e S ec o n d o f g i v e n t i m e.
Syntax
E . g. :
S e c o n d( t i m e e x pr e s s i o n )
X = S e c o n d( N o w ( ) )
Print X
S g n : - T h e S gn f u n c t i o n e v a l u a t e s a n u m er i c e x pr e s si o n a n d r e t u r n s a v a l u e ba s e d o n w h et h e r t h e
n u m b e r e x pr e s s i o n i s n e ga t i v e , po s i t i v e o r 0 . I t r e t u r n s 1 i f n u m b e r i s po si t i v e, - 1 i f n u m be r i s
n e ga t i v e a n d 0 i f n u m b e r i s z e r o
Syntax
E . g. :
S gn ( n u m e r i c e x p r e s s i o n )
X = S gn ( - 1 0 0 )
Print X

-1
Shell:- The Shell function runs a specifie d .EXE, .COM, .BAT or .PIF program. The optional mode
a r gu m e n t s p e c i f i e s t h e w i n do w m o d e a n d h a s f o l l o w i n g v a l u e s
Constant
Number
V bH i d e
V bN o r m a l F o c u s
V bM i n i m i z e d F o c u s
V bM a x i m i z e dF o c u s
V bN o r m a l N o F o c u s
0
1
2
3
4
v b M i n i m i z e dN o F o c u s
6
Description
W i n do w
w i n do w
w i n do w
w i n do w
w i n do w
without
W i n do w
i s h i d den w i t h f o c u s
h a s f o c u s a n d r e st o r e d t o n o r m a l si z e
is minimized with focus
i s m a x i m i z ed w i t h f o c u s
i s r e s t o r e d t o i t s o r i g i n a l si z e a n d po si t i o n
focus
is minimized without Focus
Syntax
E . g. :
S h e l l ( P r o gr a m n a m e [ , m o d e ] )
w = S h e l l ( " C : \ W i n do w s \ C a l c . e x e" , 3 )
S p a c e : - T h e s pa c e f u n c t i o n r e t u r n s a st r i n g c o n t a i n i n g t h e s p ec i f i e d n u m be r o f s pa c e s. T h e
i n t l e n g t h s p e c i f i e s t h e n o . o f bl a n k s p a c es.
Syntax
E . g. :
S p a c e ( i n t l e n gt h )
X = S pa c e ( 5 )

“
“
S p c : - T h e S pc f u n c t i o n s k i p s a s p e c i f i e d n u m b er o f sp a c e s i n t h e P r i n t m et h o d.
Syntax
E . g. :
S pc ( n u m b e r )
P r i n t S pc ( 1 0 ) ; “ T e n s p a c e s i n , a n d n o w ” ; S pc ( I n t ( R n d* 2 0 ) ) ; ” r a n do m ! ”
S q r : - R e t u r n s t h e s qu a r e r o o t o f a n u m b er .
Syntax
E . g. :
S qr ( n u m b e r )
X = S qr ( 3 6 )

6
S t r : - T h e S t r f u n c t i o n c o n v e r t s n u m e r i c d a t a i n t o a n u n f o r m a t t e d s t r i n g.
Syntax
E . g. :
Str(number)
X=Str(1234)
Print X 
“1234”
NetScape COMPUTER ACADEMY
62
S t r C o m p : - T h e s t r C o m p c o m p a r e s t w o s t r i n g s a n d r et u r n s o n e o f f o u r v a l u e s ba s e d o n r e su l t a s
follows
Condition
Value
S t r i n g 1 < s t r i n g2
S t r i n g 1 = s t r i n g2
S t r i n g 1 > s t r i n g2
Either string is null
-1
0
1
Null
Syntax
S t r C o m p ( s t r i n g1 , s t r i n g2 [ , c o m p a r et y p e] )
Y o u c a n u s e t h e o pt i o n a l c o m p a r e t y pe a s 0 f o r c a se s en si t i v e a n d 1 f o r c a se i n se n s i t i v e
E . g. :
X = S t r C o m p( “ h e l l o ” , ” h a l l o ” )

1
S t r C o n v : - S t r C o n v c o n v e r t s a s t r i n g i n t o t h e sp e c i f i e d f o r m a t . T h e s t r ex pn s p ec i f i e s t h e st r i n g a n d
c o n v e r s i o n t y p e s p e c i f i e s t h e t y pe o f c o n v er s i o n u si n g v b c o n s t a n t s. T h e di f f e r e n t c o n st a n t s a r e
Constant
Value
V bU p p e r c a s e
VbLowercase
VbPropercase 3
1
2
Syntax
E . g. :
Description
C o n v er t s t o u pp e r c a s e
C o n v er t s t o l o w er c a s e
c o n v e r t s f i r st c h a r a c t e r o f e a c h w o r d t o u pp e r c a s e
S t r C o n v ( s t r e x pn , c o n v t y p e )
X = S t r C o n v ( “ i n di a n c o m p u t e r s ” , v bP r o p e r c a s e)

I n d i a n C o m pu t e r
S t r i n g : - T h e S t r i n g f u n c t i o n r e t u r n s a st r i n g c o n t a i n i n g t h e s p ec i f i ed n u m be r o f t h e r e qu e st e d
c h a r a c t e r . L e n gt h n u m c h a r a c t e r s s p e c i f i e s t h e n u m b er o f c h a r a c t e r a n d i n t c h a r a c t er s pec i f i e s t h e
character.
Syntax
E . g. :
S t r i n g( l e n gt h n u m c h a r a c t e r s , i n t A N S I C o d e)
S t r i n g( l e n gt h n u m c h a r a c t e r s , i n t c h a r a c t er s)
X=Strin(15,”@”)

@@@@@@@@@@@@@@@
S u m : - T h e S u m f u n c t i o n i s u s e d t o r et u r n t h e su m o f a l l t h e v a l u e s i n a pa r t i c u l a r f i e l d o f a
recordset.
Syntax
E . g. :
S u m ( e x pr e s s i o n ) A s r e s u l t f i e l d
Select Sum(Qty) As Sqty From Sto ck
T a b : - U s e t h e T a b f u n c t i o n t o m o v e t o a p a r t i c u l a r c h a r a c t e r po si t i o n o n t h e c u r r e n t l i n e o f f o r m
o r pr i n t e r o b j e c t .
Syntax
E . g. :
T a b( c o l u m n )
For J= 1 to 20
Next
P r i n t T a b( j ) ; “ T e s t ” ; T a b ( 6 0 - 2 * j ) ; “ C a s e”
T i m e , T i m e $ : - T h e T i m e f u n c t i o n r e t u r n s t h e c u r r en t sy s t e m t i m e a s a da t e da t a t y p e. T h e T i m e$
f u n c t i o n r e t u r n s y o u r c o m pu t e r s c u r r e n t s y st em t i m e a s S t r i n g.
Syntax
Time
E . g. :
X=Time$
Print X
NetScape COMPUTER ACADEMY
63
T i m e r : - T h e T i m e r F u n c t i o n p r o v i de s t h e n u m b er o f s ec o n ds t h a t h a v e e l a p s e d si n c e 1 2 : 0 0
m i dn i gh t . T h i s f u n c t i o n m a y s e r v e a s a r e f e r en c e f o r de t er m i n i n g t h e n u m b e r o f s ec o n d s el a p s ed
b e t w e e n t w o di f f e r e n t u s e s o f t h e T i m e r f u n c t i o n o n t h e s a m e d a y .
Syntax
E . g. :
Timer
Private Sub Timer1_Timer( )
S t a t i c S t a s do u b l e
Dim msg as string
Dim elp as long
Timer1.interval=500
E l p= i n t ( t i m e r )
If st =0 Then
St=elp
End If
T e x t 1 . T e x t = S t r ( e l p) & “ el a p se d s ec o n ds si n c e m i dn i gh t ”
T e x t 2 . T e x t = S t r ( e l p - s t ) & “ s ec o n d s s i n c e pr o g r a m st a r t e d ”
End Sub
TimeSerial:- The TimeSerial function converts the value of an indicated time to a VISUAL BASIC
da t e d a t a t y p e .
Syntax
E . g. :
T i m e S e r i a l ( h o u r , m i n u t e , s e c o n d)
X=TimeSerial(11,33,23)
Print X
 11:33:23
T i m e V a l u e : - T h e T i m e V a l u e f u n c t i o n c o n v er t s a t i m e i n t h e f o r m o f a s t r i n g i n t o a V I S U A L B A S I C
date data type.
Syntax
E . g. :
T i m e V a l u e ( t i m e s t r i n g$ )
X=TimeValue(“11:55:40”)
Print X

11:55:40
T r i m : - T h e T r i m f u n c t i o n r e m o v e s l e a di n g a n d t r a i l i n g s pa c e s f r o m a s t r i n g. T h i s i s a c o m bi n a t i o n
o f L t r i m a n d R t r i m f u n c t i o n s . S t r i n g a r gu m en t s p ec i f i e s a v a l i d st r i n g.
Syntax
E . g. :
T r i m ( s t r i n g)
X=Trim(“
ICES
“)

“ICES”
U c a s e : - T h e U c a s e f u n c t i o n r e t u r n s a c o p y o f a st r i n g i n w h i c h a l l l o w er c a s e a l ph a b et i c c h a r a c t e r s
h a v e b e e n c o n v e r t e d t o u p p e r c a s e . T h e st r E x pn s pec i f i e s t h e st r i n g.
Syntax
E . g. :
U c a s e ( s t r E x pn )
X=Ucase(“ices”)

ICES
V a l : - T h e V a l f u n c t i o n r e t u r n s t h e n u m er i c v a l u e o f t h e su pp l i e d s t r i n g ex pr e s si o n .
Syntax
Val(stringexpression)
E . g. :
X=Val(“1234”)
Print X
W e e k D a y : - r e t u r n s a n i n t e g e r v a l u e r e pr e s e n t i n g W e ek d a y o f gi v e n d a t e. Y o u c a n o pt i o n a l l y
i n c l u d e f i r s t da y o f w e e k a s v bS u n d a y , v bM o n d a y , v bT u e s d a y et c .
Syntax
E . g. :
W e e k D a y ( da t e e x pr e s s i o n [ , f i r s t d a y o f w e e k ] )
Dy=WeekDay(now())
Print Dy
Y e a r : - r e t u r n s a n i n t e g e r v a l u e r e pr e sen t i n g y e a r o f gi v en d a t e.
Syntax
E . g. :
year(dateexpr ession)
Dy=year(now())
Print Dy
NetScape COMPUTER ACADEMY
64
Chapter 11
Clipboard, Control Array
Working with clipboard : - C l i p bo a r d i s a c o m m o n a r e a f o r w i n do w s a p pl i c a t i o n s.
The
c o n t e n t s y o u h a v e c o p i e d o r m o v e d ( U s i n g c o m m a n d s c o py a n d c u t ) a r e pl a c e d a t C l i p bo a r d. W h en
y o u c h o o s e p a s t e c o m m a n d, t h e c o n t en t s o f t h e c l i p bo a r d i s i n s er t e d a t y o u r c u r so r p o s i t i o n . T h e
c l i pb o a r d c o n t e n t s a r e u p da t e d w h e n y o u c u t o r c o py n ew i t em s.
T h e C l i p bo a r d i s t h e s i m p l e s t w a y t o sh a r e d a t a b e t w e en pr o g r a m s. T h e C l i p bo a r d c a n h o l d t h r e e
t y p e o f i t e m s . F i r s t , I t c a n h o l d t e x t . T ex t i s a n y c o m b i n a t i o n o f l e t t er s, n u m b er s, o r c h a r a c t e r s
r e pr e s e n t e d b y A S C I I c o d e s . S e c o n d, I t c a n h o l d gr a p h i c s. W i n do w s l et s t h e u s e r c u t a n d p a st e
pi c t u r e s a s w e l l a s t e x t . H o w e v e r , u n l i k e t h e c a se w i t h c u t t i n g, c o p y i n g a n d p a st i n g t ex t , ea c h
i n d i v i du a l pr o g r a m m u s t d e f i n e h o w g r a ph i c s a r e t o be h a n d l e d. F i n a l l y , t h e C l i p bo a r d c a n h o l d
D D E ( D y n a m i c D a t a E x c h a n g e ) m e s s a g e s b e i n g s en t f r o m o n e p r o g r a m t o a n o t h e r a n d l i n k
i n f o r m a t i o n f o r a n O L E ( O b j e c t L i n k i n g E m b e d di n g) o b j ec t .
T h e C l i pbo a r d i s a t e m p o r a r y s t o r a g e l o c a t i o n , a n d m a y h o l d o n l y o n e i t em a t t r i bu t e a t i m e o f e a c h
o f t h e s e d a t a t y p e s . W h e n a p r o gr a m c o p i es a n i t em t o t h e C l i p bo a r d, i t r ep l a c e s a n y i t e m o f t h e
s a m e t y p e t h a t p r e v i o u s l y r e s i de d t h er e. A n y t h i n g o n t h e c l i p bo a r d di s a pp e a r s w h e n y o u e x i t
W i n do w s , a l t h o u gh y o u c a n u s e C l i p bo a r d V i ew e r pr o g r a m t o v i ew a n d s a v e t h e c o n t en t s t o a f i l e.
I n V I S U A L B A S I C t h e C l i p bo a r d o b j e c t i s b u i l t i n a n d su p po r t s t h e f o l l o w i n g m et h o d s
Method
Description
Clear
GetData
GetFormat
GetText
SetData
SetText
C l e a r t h e c o n t e n t s o f t h e C l i p bo a r d a r e a
R e t r i e v e gr a ph i c d a t a f r o m t h e C l i p bo a r d a r e a
R e t u r n T r u e i f t h e s p e c i f i e d da t a t y p e i s st o r e d i n t h e c l i p bo a r d a r e a
R e t r i e v e t e x t f r o m c l i p b o a r d a r es
P l a c e g r a ph i c d a t a o n t h e C l i p bo a r d a r e a
P l a c e t e x t o n t h e C l i pbo a r d a r es
VISUAL BASIC constants for Clipboard object
Value
constant
Meaning
&HFFFFBF00
&HFFFFBF01
1
2
3
8
9
14
15
vbCFLink
vbCFRTF
vbCFText
vbCFBitmap
vbCFMetafile
vbCFDIB
vbCFPalette
vbCFEMetafile
vbCFFiles
c l i pb o a r d
c l i pb o a r d
c l i pb o a r d
c l i pb o a r d
c l i pb o a r d
c l i pb o a r d
c l i pb o a r d
c l i pb o a r d
c l i pb o a r d
h o l ds
h o l ds
h o l ds
h o l ds
h o l ds
h o l ds
h o l ds
h o l ds
h o l ds
DDE link
Rich Text Format File
text
a bi t m a p gr a p h i c
W i n do w s M et a f i l e G r a ph i c
D e v i c e I n d e pe n d en t b i t m a p
a c o l o r p a l et t e
en h a n c e d W i n do w s M et a f i l e
a M S W i n do w s E x p l o r er f i l e l i st
S y n t a x f o r di f f e r e n t M e t h o d s t h a t a f f e c t C l i p bo a r d
C l e a r : C l e a r s t h e c o n t e n t s o f c l i p bo a r d
Syntax
C l i p bo a r d. C l e a r
E . g. :
P r i v a t e S u b c m dC l e a r A l l _ C l i c k
C l i p bo a r d. C l e a r
End Sub
G e t D a t a : T h i s m e t h o d i s u s e d t o r e t r i e v e da t a f r o m c l i p bo a r d t o a n o b j e c t
Syntax
C l i p bo a r d. G e t D a t a ( [ F o r m a t ] )
Y o u c a n u s e t h e f o r m a t a r gu m e n t a s 0 o r n o t s p ec i f i e d - a u t o m a t i c a l l y u s e t h e c o r r ec t f o r m a t
( d e f a u l t ) , 2 - v b C F B i t m a p r e qu e s t i n g a b i t m a p gr a ph i c , 3 - v bC F M et a F i l e r e q u e st i n g a m et a f i l e gr a p h i c ,
8 - v b C F D I B r e qu e s t i n g a d e v i c e i n de p en d en t bi t m a p g r a ph i c , 1 4 - v b C F E M e t a f i l e r e qu e st i n g a n
e n h a n c e d m e t a f i l e gr a ph i c .
E . g. :
P r i v a t e S u b c m dD a t a _ C l i c k
P i c t u r e 1 . P i c t u r e = C l i p bo a r d. G e t D a t a ( v b C F B i t m a p )
End Sub
G e t F o r m a t : T h i s m e t h o d r e t u r n s T r u e i f t h e s p ec i f i e d f o r m a t i s f o u n d.
Syntax
C l i p bo a r d. G e t F o r m a t ( f o r m a t )
T h e d i f f e r e n t v a l u e f o r f o r m a t a r gu m en t
v b C F T e x t , 2 - v bC F B i t m a p, 3 - v bC F M e t a f i l e,
vbCFFiles
i s & H F F F F B F 0 0 - v bC F L i n k , & H F F F F B F 0 1 - v bC F R T F , 1 8 - v b C F D I B , 9 - v b C F P a l et t e, 1 4 - v bC F E M e t a f i l e, 1 5 -
NetScape COMPUTER ACADEMY
E . g. :
65
P r i v a t e S u b c m dF o r m a t _ C l i c k
I f C l i p bo a r d. G e t F o r m a t ( v b C F T e x t ) = T r u e T h e n
T e x t 1 . T e x t = C l i p bo a r d. G et T e x t
End If
End Sub
G e t T e x t : R e t r i e v e s t e x t i n f o r m a t i o n f r o m t h e c l i p bo a r d.
Syntax
C l i p bo a r d. G e t T e x t ( [ f o r m a t ] )
T h e f o r m a t a r gu m e n t c a n b e & H F F F F B 0 0 - v b C F L i n k , & H F F F F B F 0 1 - v bC F R T F , 1 - v b C F T ex t
P r i v a t e S u b c m dt e x t _ C l i c k
T e x t 1 . T e x t = C l i p bo a r d. G et T e x t ( v bC F T e x t )
End Sub
S e t D a t a : P l a c e s gr a ph i c i n f o r m a t i o n i n t h e C l i p bo a r d o b j ec t .
Syntax
C l i p bo a r d. S e t D a t a gr a ph i c [ , f o r m a t ]
G r a ph i c a r g u m e n t i s a n i n t e g e r n u m be r t h a t i s t h e h a n d l e o f t h e g r a ph i c i m a g e.
F o r m a t a r gu m e n t c a n b e 0 o r n o t s p e c i f i ed - a u t o m a t i c a l l y d et er m i n e c o r r ec t f o r m a t , 2 - v bC F B i t m a p,
3 - v b C F M e t a f i l e , 8 - v b C F D I B , 9 - v bC F P a l et t e, 1 4 - v b C F E M e t a f i l e
E . g. :
Private Sub Cmd_Click()
C l i p bo a r d. S e t D a t a P i c t u r e1 . P i c t u r e, v bC F B i t m a p
End Sub
S e t T e x t : P l a c e s t e x t i n f o r m a t i o n i n t h e C l i p bo a r d o bj ec t
Syntax
C l i p bo a r d. S e t T e x t T e x t [ , f o r m a t ]
T e x t a gu m e n t i s a n y s t r i n g i n f o r m a t i o n c o n t a i n i n g t h e t ex t t o s en d t o c l i p bo a r d
F o r m a t a r gu m e n t c a n b e & H F F F F B F 0 0 - v bC F L i n k , & H F F F F B F 0 1 - v b C F R T F , 1 - v bC F T ex t
E . g. :
P r i v a t e S u b c m dC u t _ C l i c k
C l i p bo a r d. S e t T e x t
Text1.Seltext=””
End Sub
T ex t 1 . S e l t ex t
Control array : A c o n t r o l a r r a y i s a g r o u p o f c o n t r o l s t h a t sh a r e t h e s a m e n a m e a n d t y p e. T h e y a l so sh a r e t h e
s a m e e v e n t pr o c e du r e s . T h e r e a r e t h r e e w a y s t o c r e a t e a c o n t r o l a r r a y a t d e si gn t i m e.
a)
b)
c)
A s s i gn i n g t h e s a m e n a m e t o t h e n a m e pr o p er t y f o r m o r e t h a n o n e c o n t r o l .
C o p y i n g a n e x i s t i n g c o n t r o l a n d t h e n p a st i n g i t o n t h e f o r m
S e t t i n g t h e i n de x p r o pe r t y
T h e I n de x a r gu m e n t i s o n l y u s e d i f t h e c o n t r o l i s a pa r t o f a c o n t r o l a r r a y . T h i s i n d e x s pec i f i e s
w h i c h e l e m e n t o f t h e a r r a y i s t h e o n e t h a t a c t i v a t ed t h e ev en t . W h en r ef er en c i n g t h e c o n t r o l , t h e
e l e m e n t b e i n g r e f e r e n c e d m u s t b e s p ec i f i ed b y pl a c i n g t h e i n d e x n u m b e r b et w e en p a r en t h es e s j u st
a f t e r t h e c o n t r o l n a m e , a n d b e f o r e t h e p r o p e r t y n a m e f o r ex a m p l e T e x t 1 ( 0 ) . T e x t
C o n t r o l a r r a y s h a v e j u s t o n e e v e n t pr o c e du r e f o r t h e en t i r e a r r a y . T h i s m a k e s i t e a s y t o w r i t e
g e n e r i c c o d e t h a t a p pl i e s t o r e l a t e d c o n t r o l s t h a t a r e gr o u p e d i n t h e a r a y . E v en t pr o c e du r e s i n
c o n t r o l a r r a y s a l w a y s h a v e a n i n de x a r gu m e n t t h a t d e t e r m i n es w h i c h c o n t r o l i n t h e a r r a y t r i g g er e d
the event.
E . g. :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( I n d e x A s I n t e g er )
Select Case Index
Case 0
Text1.Text=Val(text1.Text)+0
Case 1
Text1.Text=Val(text1.Text)+1
Case 2
Text1.Text=Val(text1.Text)+2
Case 3
Text1.Text=Val(text1.Text)+3
Case 4
Text1.Text=Val(text1.Text)+4
Case 5
Text1.Text=Val(text1.Text)+5
End Select
End Sub
NetScape COMPUTER ACADEMY
66
Chapter 12
MDI Forms, Menus, Dialog Boxes
MDI Forms:-
M a n y V I S U A L B A S I C pr o gr a m s a r e n o t h i n g m o r e t h a n a st r i n g o f w i n do w s , ea c h o f w h i c h c a u s es t h e
n e x t t o be di s pl a y e d. I n s u c h c a s e , o f t en t h e p r o g r a m m er gi v es n o t h o u gh t w h e t h er t h e u s er c a n
s e e m o r e t h a n o n e w i n do w a t a t i m e. e a c h f o r m m a y h a v e i t s o w n m en u s, t o o l b a r s a n d o t h er
c o n t r o l s , a l l o f w h i c h t a k e r e s o u r c e s t o di s pl a y a n d t i m e t o c o d e a n d m a n a ge. T h e M u l t i pl e
D o c u m e n t I n t e r f a c e ( M D I ) w a s o r i g i n a l l y d e si gn e d f o r a pp l i c a t i o n su c h a s M S W O R D a n d M S E X C E L ,
w h i c h a r e de s i gn e d t o s h o w m o r e t h a n o n e do c u m en t si m u l t a n eo u s l y . T h i s c h a p t e r sh o w s y o u h o w
pr i n c i pl e s d e v e l o pe d f o r t r a d i t i o n a l M D I a p p l i c a t i o n s su c h a s M S W O R D a n d E X C E L c a n b e u s e d i n
y o u r a pp l i c a t i o n s .
I n V I S U A L B A S I C , t h e c e n t r a l w i n do w t h a t c o n t a i n o t h er w i n do w s i s t r e a t e d a s M D I f o r m ( M u l t i pl e
D o c u m e n t I n t e r f a c e ) . M o s t M D I w i n do w s h a v e m en u b a r s, t o o l b a r s, st a t u s ba r e t c .
T h e M D I f o r m i s d e s i gn e d t o m a i n t a i n o t h e r f o r m s w i t h i n i t s a r e a .
V I S U A L B A S I C do e s n ’ t u s e a n y M D I f o r m by de f a u l t , so i f y o u w a n t o n e, y o u c a n a d d i t t o y o u r
pr o j e c t b y s e l e c t i n g P r o j e c t > A d d M D I F o r m
Building the MDI form


S t a r t a N e w s t a n d a r d E X E pr o j ec t
C l i c k a l t e r n a t e m o u s e b u t t o n ( r i g h t c l i c k ) i n t h e pr o j ec t ex pl o r e r w i n d o w . C h o o s e A dd >
M D I F o r m . P i c k M D I F o r m f r o m u n d er N E W a n d C l i c k O pe n
V I S U A L B A S I C r e s t r i c t s y o u a s i n gl e M D I f o r m f o r y o u r en t i r e a p pl i c a t i o n .
W h e n y o u h a v e a n M D I f o r m i n y o u r a p pl i c a t i o n , t h e o t h e r r e gu l a r f o r m s i n t h e a pp l i c a t i o n c a n b e
off two different types.
a ) S t a n d a r d F o r m s , w h i c h w i l l o p e r a t e o u t si d e t h e M D I F o r m a r ea . O pt i o n s, di a l o g s, a n d o t h er
m o d a l w i n do w s s h o u l d r e m a i n s t a n d a r d f o r m s.
b ) M D I c h i l d F o r m s , w h i c h r e m a i n w i t h i n t h e M D I f o r m a r e a . T h e u s er s h o u l d b e a bl e t o sw i t c h
b e t w e e n c h i l d f o r m s w i t h o u t h a v i n g t o c l o s e o n e a n d o p en a n ew o n e. I n a d di t i o n , y o u m a y
n e e d t o s u ppo r t h a v i n g m o r e t h a n o n e c o p y o f a pa r t i c u l a r t y p e o f f o r m o pen a t o n c e. A n
M D I c h i l d f o r m s h o u l d a l w a y s b e s h o w n n o n m o d a l l y . W h en e v er y o u w a n t t o sh o w a n M D I c h i l d
form, you should use code such as following
F r m M D I C h i l d. S h o w
T o s e t t h e f o r m a s M D I c h i l d, c h o o s e F o r m > pr o p er t i es a n d s e t M D I C h i l d pr o p er t y t o T r u e.
Y o u c a n n o t dr a w a c o n t r o l s u c h a s T e x t bo x , C o m m a n d B u t t o n et c . di r ec t l y o n
s h o u l d u s e P i c t u r e B o x c o n t r o l f i r s t a n d t h en dr a w t h e c o n t r o l s o n i t .
MDI forms. You
Menus:M o s t W i n do w s A p p l i c a t i o n s h a v e a m en u st r u c t u r e. A m e n u a l l o w s t h e u s er t o a c c es s a n u m b e r o f
di f f e r e n t f u n c t i o n s o f t h e pr o g r a m . T y pi c a l m en u s y st em s h a v e a t l e a st t w o l ev e l s. T h e t o p - l e v el
di s pl a y s o n t h e m e n u ba r , a n d t h e s e c o n d l ev e l di s pl a y s a s a d r o p do w n m en u . E a c h f o r m m a y h a v e
i t s o w n u n i qu e m e n u s t r u c t u r e . S o m e m en u s h a v e s u b m en u s br a n c h i n g o f f t h e s ec o n d l e v el ; t h e se
a l l o w f u r t h e r r e f i n e m e n t o f t h e a c t i o n s a v a i l a b l e t o t h e u s e r . V I S U A L B A S I C a l l o w s u p t o f o u r l e v el s
o f s u bm e n u s . V I S U A L B A S I C a p pl i c a t i o n s c a n b e en h a n c e d b y a d di n g m en u s. I t o f f e r s a c o n v en i en t
a n d c o n s i s t e n t w a y t h e gr o u p c o m m a n d a n d a n e a s y w a y f o r u s e r s t o a c c e ss t h em .
U s i n g t h e m e n u e di t o r : A m e n u e di t o r c a n u s e t o c r e a t e n e w m en u s m o di f y ex i st i n g m en u s et c .
T o c r e a t e a m e n u c o n t r o l s y s t e m f o r y o u r f o r m , s el ec t t h e f o r m a n d c h o o s e t o o l s> m en u e di t o r .
A m e n u e d i t o r w i n d o w a p pe a r s , E n t e r t h e f i r s t m en u ' s C a pt i o n a n d N a m e, C l i c k t h e N e x t B u t t o n o r
pr e s s E n t e r . C l i c k t h e r i gh t a r r o w t o i n d en t o n e l e v el , m a k i n g t h i s n e x t en t r y a m en u i t e m . E n t er
t h e n e w i t e m s C a p t i o n a n d N a m e pr o p er t y . R e p ea t t h es e s t ep s f o r o t h er m en u i t e m s . C l i c k O K t o
c l o s e t h e m e n u e di t o r . T o a d d a c c e s s C h a r a c t er u s e a m p er s a n d ( & ) b ef o r e t h e C h a r a c t e r i n C a pt i o n
pr o p e r t y .
E . g. :
&File
…New
…Open
&Edit
…Cut
…Copy
…Paste
NetScape COMPUTER ACADEMY
67
T o e n t e r a c o m m a n d f o r t h e m e n u i t e m s, c l i c k t h e m en u i t em u n d er de s i g n m o d e, t h i s w i l l b r i n g t h e
only click event of the menu item. Type the command in the menu item's c lick event.
E . g. :
P r i v a t e S u b m n u O pe n _ C l i c k ( )
Form1.Show
End Sub
C a pt i o n : - C a p t i o n i n di c a t e s t h e t e x t t h a t a p p ea r s o n t h e m en u . P l a c e a n a m p er s a n t i n f r o n t o f o n e
o f t h e c a pt i o n ’ s l e t t e r s , i n d i c a t i n g a n a c c e l er a t o r k ey . E n t er i n g a h y ph en ( - ) i n t h e C a p t i o n t e x t b o x
pl a c e s a s e p a r a t o r b a r i n t h a t m e n u po s i t i o n .
N a m e : - N a m e r e f e r s t o t h e N a m e pr o p e r t y o f t h e m en u i t em , a n d s er v e s a s t h e n a m e u s e d i n y o u r
code.
I n d e x : - U s e I n d e x i f y o u w a n t t o c r e a t e a c o n t r o l a r r a y f o r t h e m en u . Y o u w o u l d u s e t h i s i f m o r e
t h a n o n e m e n u i t e m h a s t h e s a m e n a m e.
C h e c k e d, E n a bl e d, a n d V i s i bl e : - C h e c k e d, E n a bl e d, a n d V i si b l e d ef i n e t h e d ef a u l t s t a t e o f t h e m e n u
i t e m y o u ’ r e c r e a t i n g. A c h e c k e d m e n u o pt i o n h a s a c h ec k m a r k p l a c e d i n f r o n t o f i t t o i n di c a t e i t s
o n / o f f s t a t e . U s e t h e c h e c k e d pr o p e r t y t o t u r n t h e c h ec k o n a n d o f f i n y o u r a p pl i c a t i o n s c o d e.
N e go t i a t e po s i t i o n : - U s e N e go t i a t e po s i t i o n w i t h O L E o b j ec t s t o d e t er m i n e t h e pl a c em en t o f y o u r
pr o gr a m ’ s m e n u i t e m s a n d a n e m b e d d ed O L E o b j ec t ’ s m en u s.
W i n do w L i s t : - W i n do w L i s t c r e a t e s a n a u t o m a t i c l i st o f a l l o p en M D I c h i l d w i n do w s.
S h o r t c u t : - S h o r t c u t de f i n e s a s h o r t c u t k e y a s so c i a t e d w i t h t h i s m en u e n t r y , a n d H e l pC o n t e x t I D l et s
y o u a s s o c i a t e t h e e n t r y w i t h c o n t e x t - s en s i t i v e h el p.
T h e a c t u a l s t r u c t u r e o f t h e m e n u s h o w s a s i n d en t a t i o n l ev e l s i n t h e bo t t o m w i n do w . N o i n d en t a t i o n
i s a t o p - l e v e l m e n u t h a t di s pl a y s o n t h e t i t l e ba r , e a c h f u r t h er i n de n t a t i o n i n d i c a t e s o n e d e e per
l e v e l o f s u b m e n u . Y o u c a n e a s i l y c o n t r o l t h e l e v el i n d en t a t i o n b y h i gh l i gh t i n g t h e m en u i t e m a n d
c l i c k i n g o n t h e a r r o w s i m m e d i a t e l y a bo v e M e n u E d i t o r ' ’ m a i n w i n d o w .
U s e I n s e r t a n d D e l e t e b u t t o n s t o i n s e r t o r r e m o v e a m en u i t em .
Adding a Checkmark to Menu Item
D i s p l a y i n g a c h e c k m a r k gi v e s v i s u a l f e e db a c k t o t h e u se r a bo u t t h e t o g gl e st a t e o f t h e o p t i o n , a n d
t h e r e ’ s t w o w a y s t o a d d c h e c k m a r k s t o m en u i t e m s: a t d e s i gn t i m e a n d r u n t i m e.
T o a dd c h e c k m a r k a t d e s i gn t i m e t o a m en u i t e m , y o u si m p l y s e l ec t t h e c h ec k e d b o x i n t h e M en u
Editor.
Y o u c a n a l s o s e t c h e c k m a r k s a t r u n t i m e u si n g a m en u i t em ’ s C h ec k e d p r o p er t y . F o r e x a m pl e,
Private sub mnuEditInsert_Click()
S t a t i c bb a s B o o l e a n
b b= N o t b b
m n u E di t I n s e r t . C h e c k e d= b b
End Sub
Adding a List of Open Windows to an MDI Form’s Window Menu
Y o u c a n s e t a m e n u ’ s W i n do w L i s t p r o pe r t y t o T r u e t o a d d a l i s t o f w i n d o w s t o t h a t m e n u a n d y o u
c a n s e t t h e W i n do w L i s t pr o p e r t y i n t h e M en u E d i t o r s i m pl y by s el ec t i n g a c h ec k bo x . N o w , w h en t h e
pr o gr a m r u n s , t h e m e n u y o u a dd e d a w i n do w l i st t o w i l l i n d e e d di s pl a y a l i st o f o pe n w i n do w s,
s e p e r a t e d f r o m t h e r e s t o f t h e m e n u i t em s .
Creating and Displaying Popup Menus
P o pu p m e n u s a r e d i s p l a y e d w h e n y o u c l i c k t h e a l t er n a t e m o u s e bu t t o n ( n o r m a l l y r i gh t m o u s e
bu t t o n ) o n a f o r m . T o c r e a t e a n e w p o pu p m e n u , j u st u s e t h e M en u E d i t o r , c r ea t e a m e n u a n d
m a k e i t s V i s i bl e pr o p e r t y t o F a l s e . D o u b l e c l i c k t h e f o r m n o w t o o p en c o d e w i n do w . T h e l ef t
dr o p do w n bo x i n c o d e w i n do w l i s t s a l l o b j ec t s i n t h e f o r m , so f i n d y o u m en u n a m e a n d a dd c o d e i n
i t s C l i c k e v e n t h a n dl e r s .
T o di s pl a y t h e po pu p m e n u , a d d a M o u s eD o w n e v en t h a n d l er t o y o u r p r o g r a m u s i n g c o d e w i n d o w .
S p e c i f y t h e w h i c h m o u s e bu t t o n w e n t do w n b y c o m p a r i n g t h e B u t t o n a r gu m en t t o t h e s e pr e de f i n e d
V i s u a l B a s i c C o n s t a n t s V b L e f t B u t t o n , V bR i gh t B u t t o n , o r V bM i d dl e B u t t o n . T h e n w e u s e t h e
P o pu p m e n u m e t h o d t o d i s pl a y t h e po pu p m en u .
E g:
P r i v a t e S u b F o r m _ M o u s e D o w n ( B u t t o n A s I n t e g er , S h i f t A s I n t eg e r , X A s S i n gl e, Y A s S i n g l e)
I f B u t t o n = v bR i gh t B u t t o n T h en
P o pu p M e n u P o pu p
End If
End Sub
NetScape COMPUTER ACADEMY
68
Dialogue boxes:D i a l o g B o x e s a pp e a r i n a l m o s t e v e r y w i n do w s p r o g r a m . A d i a l o g bo x i s a s pec i a l i z e d f o r m m ea n t t o
di s pl a y o r o bt a i n s p e c i f i c i n f o r m a t i o n , a n d i s h i d de n f r o m s i gh t o n c e i t h a s do n e i t s w o r k . S o m e
di a l o g bo x e s a s e x t r e m e l y s i m pl e , di s pl a y i n g j u s t a s i n gl e l i n e o f t e x t w h i l e t h e p r o g r a m i s
p e r f o r m i n g a l e n gt h y a c t i o n . O t h e r di a l o g bo x e s m a y b e c o m pl e x , w i t h m a n y c o n t r o l s di s pl a y i n g a
v a r i e t y o f i n f o r m a t i o n f o r t h e u s e r t o v i ew o r ed i t . V I S U A L B A S I C su p pl i e s s ev er a l k i n d s o f
pr e d e f i n e d di a l o g bo x e s . T h e s e m a k e y o u r pr o g r a m m i n g j o b e a s i er , bec a u se o n e l i n e o f c o d e c a n
c a l l u p a c o m pl e t e d bo x t o di s p l a y a m e s sa g e o r so l i c i t i n p u t . T h er e a r e f i v e b a s i c s t y l es o f d i a l o g
bo x e s . V I S U A L B A S I C p r o v i d e s f o u r s t y l es o f pr e d ef i n e d di a l o g bo x es. Y o u c a n t h e s e w i t h j u st a f ew
l i n e s o f c o de t o pe r f o r m m o s t ba s i c i n t er a c t i o n s. T h e f i f t h st y l e i s a c u st o m di a l o g bo x y o u bu i l d
y o u r s e l f . I t c a n b e a s c o m p l e x a s y o u l i k e.
M s g B o x S t a t e m e n t : - T h e f i r s t s t y l e i s t h e si m pl e st m e ss a g e bo x . T h i s t y p e o f di a l o g bo x s i m pl y
di s pl a y s a m e s s a g e a n d w a i t s f o r t h e u s er t o c l o s e t h e bo x by c l i c k i n g a bu t t o n . T h e si m p l e
m e s s a g e d i a l o g bo x i s u s e d t o n o t i f y t h e u s e r o f c er t a i n i n f o r m a t i o n . Y o u c a n u s e a s i m pl e m e s s a g e
bo x w h e n y o u n e e d t o t e l l t h e u s e r w h a t h a s h a p p en e d, bu t do n ’ t r eq u i r e a n y t h i n g f r o m t h e u s er
o t h e r t h a n t h e a c k n o w l e d ge m e n t i m p l i e d i n c l i c k i n g o n t h e O K bu t t o n .
Syntax
E . g. :
M s gB o x M e s s a ge [ , o pt i o n s , B o x N a m e, H el pf i l e, C o n t e x t ]
M s g bo x “ H e l l o ” , v bE x c l a m a t i o n
M s g B o x F u n c t i o n : - T h e s e c o n d s t y l e o f d i a l o g bo x a l so d i s pl a y s a s i m p l e m e s sa g e. H o w ev er , m o r e
t h a n o n e c o m m a n d bu t t o n i s di s pl a y ed o n t h e di a l o g bo x so t h e u s er c a n c h o o se a m o n g s ev e r a l
o pt i o n s . I n m o s t w i n do w s pr o g r a m s , i f y o u a t t em pt t o ex i t a p r o g r a m w i t h u n sa v e d f i l e s, t h i s t y p e
o f di a l o g bo x a p pe a r s a n d a s k s i f y o u w a n t t o s a v e t h e f i l e s b e f o r e e x i t i n g. G e n e r a l l y , su c h di a l o g
bo x w i l l h a v e Y e s , N o a n d C a n c e l bu t t o n s. H o w t h e pr o gr a m a c t s w h en t h e d i a l o g b o x c l o s e s i s
ba s e d o n t h e bu t t o n y o u c h o o s e . T h e M sg B o x F u n c t i o n di s pl a y s a di a l o g bo x w i t h a m e ss a g e a n d a n
o pt i o n a l i c o n . Y o u r pr o gr a m i n s t r u c t s t h e f u n c t i o n t o d i sp l a y o n e o r m o r e s e t s o f p r ed ef i n e d
bu t t o n s o n t h e d i a l o g b o x . W h e n t h e u s er s e l e c t s o n e o f t h e se bu t t o n s, t h i s f u n c t i o n r e t u r n s a
number based on the selected button.
Syntax
M s gB o x ( M e s s a g e [ , O pt i o n s ] [ , B o x N a m e] [ , H el pf i l e, C o n t e x t ] )
T h e M e s s a g e a r g u m e n t i s a s t r i n g m e s s a g e t o t h e u s er . O p t i o n s a r gu m en t i s a n i n t e g er v a l u e
s pe c i f y i n g w h i c h i c o n a n d bu t t o n s e t w i l l b e u s ed w i t h t h e di a l o g bo x . B o x N a m e a r gu m en t i s a
s t r i n g e x pr e s s i o n t h a t w i l l b e u s e d f o r t h e t i t l e o f t h e di a l o g bo x . H el pf i l e s p ec i f i e s t h e n a m e o f t h e
h e l pf i l e f o r t h e d i a l o g b o x . C o n t e x t i s t h e c o n t e x t n u m b er o f t h e a p pr o p r i a t e t o pi c i n t h e h el p f i l e.
E . g. :
R e s = M s g B o x ( “ D o Y o u w a n t t o E x i t ” , v b Y e s N o + v b c r i t i c a l , “ E x i t P r o j ec t ” )
H e r e y o u c a n u s e t h e v a r i a b l e r e s t o d et e r m i n e w h i c h bu t t o n w a s p r es s e d.
V a l u e s f o r t h e b u t t o n s d i s p l a y e d w i t h M s g Bo x F u n c t i o n a n d S t a t e m e n t
Button Value vbconstants
0
1
2
3
4
5
4000
Meaning
vbOKOnly
D i s p l a y a n O K bu t t o n o n l y ( D ef a u l t )
vbOKCancel
D i s p l a y O K a n d C a n c el b u t t o n s
v b A bo r t R e t r y I gn o r e
D i s p l a y A bo r t , R e t r y , a n d I gn o r e bu t t o n s
vbYesNoCancel
D i s p l a y Y e s, N o , a n d C a n c el bu t t o n s
vbYesNo
Display Yes and No Buttons
v bR e t r y C a n c e l
D i s p l a y R et r y a n d C a n c e l B u t t o n s
v b M s g B o x H e l p B u t t o n A d d s a h el p bu t t o n t o t h e o t h er di s p l a y e d bu t t o n s
Values for the default button setting with MsgBox f unction and statement
Default Value
0
256
512
768
vbconstants
vbDefaultButton1
vbDefaultButton2
vbDefaultButton3
vbDefaultButton4
Meaning
( D ef a u l t ) S et s f i r st bu t t o n a s d ef a u l t
S et s s ec o n d bu t t o n a s d ef a u l t
S et s t h i r d bu t t o n a s d ef a u l t
S et s f o u r t h bu t t o n a s d e f a u l t
Values for icons displayed with MsgBox Function and statement
Icon Value
vbconstants
16
32
48
64
vbCritical
vbQuestion
vbExclamation
vbInformation
Us e d f o r
C r i t i c a l M e s sa g e s
Queries
W a r n i n gs
I n f o r m a t i o n m e s sa g e s
NetScape COMPUTER ACADEMY
69
Values for the behavior of the MsgBox function and statement
Behavior Value
vbconstant
Be h a vi o r
0
v b A pp l i c a t i o n M o d a l
4096
v b S y s t e m M o da l
10000
v b M s g B o x S e t F o r e gr o u n d
P r e v e n t s t h e u se r f r o m i n t e r a c t i n g w i t h t h e
c u r r en t ap p lic at io n u n t i l t h e m e s s a g e bo x i s
c o m p l e t ed.
P r e v e n t s t h e u se r f r o m i n t e r a c t i n g w i t h
an y a p pl ic a tio n u n t i l t h e m e s sa g e bo x i s
c o m p l e t ed.
B r i n g s t h e a pp l i c a t i o n t o f o r e gr o u n d i f i t i s
n o t t h e a p pl i c a t i o n i n f o c u s
Values for the appearance of the MsgBox function and statement
Appearance Value
80000
vbconstants
Appearance
v bM s gB o x R i gh t
100000
R i gh t - j u st i f i e s t h e t e x t i n t h e M e s sa g e$
pa r a m et er
D i s p l a y s t h e t e x t r i g h t t o l ef t o n H e br ew a n d
A r a b i c s y st em s
v bM s g B o x R t l R e a di n g
Values returned by MsgBox function
Return Value vbConstants Button That was pressed
1
2
3
4
5
6
7
E . g. :
1)
vbOK
vbCancel
v b A bo r t
v bR e t r y
v b I gn o r e
vbYes
vbNo
OK
C a n c el
A bo r t
R et r y
I gn o r e
Yes
No
Private sub c_onclick
R e s = M s g bo x ( “ do y o u w a n t t o s a v e” , v b y e sn o , ” n e t s ” )
If res=vb yes then
T e x t 1 . t e x t = “ y o u c l i c k e d Y e s”
End if
End sub
2)
3)
M s gbo x ( “ do y o u w a n t + c h r ( 1 3 ) + c h r ( 1 0 ) t o s a v e ” )
T r d= m s g bo x ( “ D o y o u w a n t t o s a v e ” , v b y e sn o + v bc r i t i c a l , “ n et s” )
Input box:T h e i n pu t bo x f u n c t i o n di s pl a y s a m o da l di a l o g u e bo x t h a t a s k s t h e u s er t o en t er so m e d a t a . T h e
di a l o gu e bo x c o n t a i n s a m e s s a ge a n d a n O K bu t t o n a n d c a n c el b u t t o n . T h e u s er c a n t y p e i n t h e
t e x t bo x a n d c l i c k ‘ O K ’ o r ‘ C a n c e l ’ t o c l o se t h e di a l o gu e bo x . T h e I n pu t B o x i s a n a l t er n a t i v e t o
d e s i gn i n g a f o r m w i t h a t e x t bo x f o r s i m pl e t e x t i n p u t .
Syntax:
I n pu t B o x ( P r o m p t [ , T i t l e ] [ , D e f a u l t T ex t ] [ , L ef t , T o p] )
T h e P r o m pt a r g u m e n t m a y be a n y s t r i n g ex pr e s si o n o f u p t o 2 5 5 c h a r a c t e r s a p pr o x i m a t e l y t o gi v e
i n s t r u c t i o n t o t h e u s e r , T i t l e a r gu m e n t i s f o r i n pu t bo x t i t l e, D ef a u l t t e x t a u t o m a t i c a l l y p l a c e s t h e
s pe c i f i e d t e x t i n t h e bo x , L e f t a n d T o p a r gu m en t s s p ec i f i e s t h e p o s i t i o n o f I n pu t B o x o n t h e S c r e en
E . g. :
r e s = i n pu t b o x ( “ E n t e r y o u r n a m e ” , ” I n pu t N a m e ” , ” I C E S ” )
Text1.text=res
W h i l e t h e d i a l o g bo x i s di s pl a y e d, t h e u s e r c a n t y p e a t ex t i n t h e t e x t bo x . W h en t h e u s e r c l i c k s O K
bu t t o n , t h e d i a l o g bo x w i l l di s a pp e a r a n d r e t u r n t h e st r i n g i n t h e t ex t b o x . O p t i o n a l l y t h e u s e r c a n
c l i c k C a n c e l b u t t o n . T h i s a l s o m a k e s t h e di a l o g b o x d i s a p pe a r , bu t t h e s t r i n g r e t u r n e d i s n u l l .
NetScape COMPUTER ACADEMY
70
Chapter 13
Toolbars, Status Bars, Progress Bars, and Coolbars
Toolbars
E v e r y w i n do w s u s e r k n o w s a bo u t t o o l b a r s; t h e y a r e t h o s e b a r s a t t h e t o p o f a w i n do w s t h a t a r e
f i l l e d w i t h bu t t o n s a n d s o m e t i m e s o t h e r c o n t r o l s l i k e c o m bo bo x e s.
A t o o l b a r c o n t a i n s bu t t o n s t h a t c o r r e s po n d t o i t em s i n a pp l i c a t i o n ’ s m en u , pr o v i d i n g a n ea s y
i n t e r f a c e f o r t h e u s e r t o r e a c h f r e qu e n t l y u s e d f u n c t i o n s a n d c o m m a n d s. I n t h i s w a y , t o o l ba r s c a n
m a k e l i f e a l o t e a s i e r f o r t h e u s e r . T h e u s er c a n a l so c u st o m i z e t o o l b a r s; do u bl e - c l i c k i n g a t o o l b a r
a t r u n t i m e o p e n s t h e c u s t o m i z e t o o l b a r di a l o g b o x , w h i c h a l l o w s t h e u s e r t o h i d e, d i sp l a y , o r
r e a r r a n g e t o o l ba r bu t t o n s .
Y o u c r e a t e a t o o l ba r b y a d d i n g a t o o l ba r c o n t r o l t o a f o r m , a n d t o do t h a t , y o u s el ec t P r o j ec t >
C o m po n e n t s m e n u i t e m , t h e n c l i c k t h e C o n t r o l s t a b i n t h e C o m po n e n t di a l o g bo x , s el ec t t h e
M i c r o s o f t W i n do w s C o m m o n C o n t r o l s i t em , a n d c l i c k o n O K t o c l o s e t h e C o m po n en t s di a l o g bo x .
T h i s a d ds t h e T o o l b a r C o n t r o l t o t h e t o o l bo x .
T o a d d bu t t o n s t o a t o o l ba r , y o u a d d bu t t o n o b j ec t s t o i t s B u t t o n s c o l l ec t i o n , u su a l l y b y w o r k i n g
w i t h t h e t o o l b a r ’ s p r o pe r t y pa g e s . E a c h b u t t o n c a n h a v e t e x t a n d o r a n i m a g e. S et t e x t w i t h t h e
C a pt i o n pr o p e r t y a n d i m a g e w i t h t h e I m a g e pr o p er t y f o r e a c h bu t t o n o bj ec t . A t r u n t i m e, y o u c a n
a d d o r r e m o v e bu t t o n s f r o m t h e B u t t o n s c o l l ec t i o n u si n g A d d a n d R em o v e m et h o d s.
Adding a Toolbar to a Form


S e l e c t t h e P r o j e c t > C o m po n e n t s > C o n t r o l s t a b
S e l e c t M i c r o s o f t W i n do w s C o m m o n C o n t r o l s i t em , a n d c l i c k O K .
T h i s a d ds t h e t o o l b a r c o n t r o l t o t h e V i su a l B a s i c T o o l bo x . T o pl a c e a t o o l ba r i n y o u r f o r m , j u s t
do u bl e c l i c k t h e T o o l b a r C o n t r o l t o o l .
Aligning Toolbars in a Form
B y d e f a u l t t o o l b a r a l i g n s i t s e l f w i t h t h e t o p o f t h e c l i en t a r ea o f t h e f o r m . Y o u c a n s et t h e
a l i g n m e n t o f t h e t o o l b a r w i t h t h e A l i gn pr o p er t y , w h i c h c a n t a k e t h es e v a l u e s





v b A l i gn N o n e - 0
v b A l i gn T o p - 1 ( d e f a u l t )
v b A l i gn B o t t o m - 2
v b A l i gn L e f t - 3
v b A l i gn R i gh t - 4
Adding Buttons to a Toolbar
Y o u a d d b u t t o n s t o a t o o l b a r c o n t r o l a t d e si gn t i m e b y r i gh t - c l i c k i n g t h e c o n t r o l a n d c l i c k i n g t h e
P r o p e r t i e s i t e m i n t h e m e n u t h a t a p pe a r s. W h en t h e t o o l b a r ’ s pr o p er t y p a g e s o p en , c l i c k t h e
B u t t o n s t a b. I n s e r t n e w bu t t o n s b y c l i c k i n g t h e I n s er t B u t t o n bu t t o n a n d r e m o v e a bu t t o n w i t h
R e m o v e B u t t o n bu t t o n . W h e n y o u a d d a n ew bu t t o n t o a t o o l b a r , y o u c a n a s so c i a t e a pi c t u r e o r
c a p t i o n w i t h i t . F o r e x a m p l e , t o g i v e a bu t t o n a c a p t i o n , j u st f i l l i n t h e C a pt i o n bo x .
E a c h bu t t o n ge t s a n e w I n d e x v a l u e , w h i c h w i l l b e p a ss e d t o t h e c l i c k e v en t h a n dl er . Y o u c a n a l so
gi v e e a c h bu t t o n a K e y v a l u e , w h i c h i s a st r i n g t h a t y o u c a n u s e t o i d en t i f y t h e bu t t o n .
W h e n y o u ’ r e do n e , c l i c k O K b u t t o n t o c l o s e t h e t o o l b a r ’ s pr o p er t y p a ge s. N o w t h a t y o u ’ v e i n s t a l l e d
bu t t o n s i n y o u r t o o l b a r , h o w do y o u h a n d l e bu t t o n c l i c k s?
Handling toolbar buttons Clicks
T o m a k e bu t t o n s a c t i v e u s e t o o l b a r c o n t r o l ’ s B u t t o n C l i c k e v en t .
P r i v a t e S u b T o o l b a r 1 _ B u t t o n C l i c k ( B y V a l B u t t o n A s C o m c t l L i b. B u t t o n )
End Sub
T h e bu t t o n t h e u s e r c l i c k e d i s p a s s e d t o u s i n t h i s e v e n t h a n dl er pr o c e du r e, a n d w e c a n d e t e r m i n e
w h i c h bu t t o n w a s c l i c k e d b y c h e c k i n g e i t h e r t h e bu t t o n s I n de x o r K e y p r o p er t i e s. F o r ex a m p l e, w e
c a n i n di c a t e t o u s e r s w h i c h bu t t o n t h e y c l i c k e d w i t h a m e s s a ge bo x a n d t h e I n d e x p r o p e r t y t h i s
way:
A l l bu t t o n s i n a t o o l b a r h a v e a n I n d e x v a l u e by d ef a u l t , so t h i s c o d e i s r e a d y t o go . W h en t h e u s er
c l i c k s a b u t t o n , w e r e po r t w h i c h bu t t o n t h e u s er c l i c k e d.
B e s i d e s u s i n g I n d e x pr o p e r t y , y o u c a n a l so gi v e e a c h bu t t o n s K e y p r o p er t y t e x t st r i n g. T h en y o u
u s e a S e l e c t C a s e s t a t e m e n t t o de t e r m i n e w h i c h bu t t o n w a s c l i c k e d, l i k e t h i s:
NetScape COMPUTER ACADEMY
71
P r i v a t e S u b T o o l b a r 1 _ B u t t o n C l i c k ( B y V a l B u t t o n A s C o m c t l L i b. B u t t o n )
Select Case Button.Key
Case “OpenFile”
F r m O p e n F i l e. S h o w
Case “SaveFile”
F r m S a v e f i l e. S h o w
Case “CloseFile”
F r m C l o s e F i l e. S h o w
End Select
End Sub
Connecting Toolbar buttons to Menu Items
Y o u c a n c a l l t h e m e n u i t e m ’ s C l i c k e v e n t h a n d l e r w h en t h e bu t t o n i s c l i c k e d.
P r i v a t e S u b T o o l b a r 1 _ B u t t o n C l i c k ( B y V a l B u t t o n A s C o m c t l L i b. B u t t o n )
Select Case Button.Key
Case “OpenFile”
M n u F i l e O p en _ C l i c k
Case “SaveFile”
M n u F i l e S a v e_ C l i c k
Case “CloseFile”
M n u F i l e C l o s e_ C l i c k
End Select
End Sub
Adding Separators to a Toolbar
Y o u c a n gr o u p t h e bu t t o n s i n a T o o l b a r c o n t r o l u si n g S e pa r a t o r s. I n m e n u s, se p a r a t o r s a p pe a r a s
s o l i d l i n e s , bu t i n t o o l b a r s , s e p a r a t o r j u s t a p p ea r a s b l a n k s pa c e s, se t t i n g g r o u p s o f bu t t o n s a p a r t .
F o r E x a m p l e , I n s e r t a n e w bu t t o n t o t h e T o o l ba r a n d s et i t s st y l e p r o p er t y t o t br S e p a r a t o r . N o w
a d d o t h e r b u t t o n s a n d c l i c k O K . Y o u ’ l l s e e t h a t t h e se p a r a t o r p u t s so m e di st a n c e be t w e en t h e
bu t t o n s .
Adding Images to Toolbar Buttons
Y o u c a n gi v e t o o l b a r bu t t o n s a n i m a g e i f y o u pl a c e t h o s e i m a g es i n t o a n i m a g e l i st c o n t r o l .
I m a g e l i s t s a r e W i n do w s c o m m o n c o n t r o l s j u s t a s t o o l ba r s, so a d d a n i m a g e l i s t t o y o u r f o r m . T o
pl a c e i m a g e s do t h e f o l l o w i n g

R i gh t _ c l i c k t h e i m a g e l i s t t o o l

S e l e c t t h e p r o pe r t i e s m e n u i t em

C l i c k t h e i m a g e s t a b i n p r o p er t y p a ge s

C l i c k i n s e r t p i c t u r e bu t t o n t o i n se r t t h e i m a g e s y o u w a n t , a n d c l i c k O K
N o w y o u n e e d t o a s s o c i a t e t h e i m a g e c o n t r o l w i t h t o o l ba r , a n d y o u do t h a t i n t h e t o o l b a r ’ s
pr o p e r t y p a g e s




R i gh t c l i c k t h e t o o l ba r a n d se l ec t pr o p er t i es t o o p en p r o pe r t y p a g e s
C l i c k t h e bu t t o n s t a b i n t h e pr o p er t y p a ge s
E n t e r t h e i n de x o f t h e i m a g e i n t h e i m a g e c o n t r o l w a n t t o c o n n ec t t o t h e b u t t o n
Click OK to close
W h e n y o u r u n t h e pr o g r a m , t h e i m a g e s a p p e a r o n t o o l ba r .
Y o u c a n a l s o c o n n e c t a n i m a g e c o n t r o l t o a t o o l b a r a t r u n t i m e, u si n g t o o l b a r ’ s I m a g e L i st pr o p er t y
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
T o o l ba r 1 . I m a g e L i s t = I m a g eL i st 1
End Sub
Adding Check (Toggle) Buttons to a Toolbar
T h e w a y t o o l b a r s h a n d l e c h e c k m a r k i s, i n s t ea d o f di s pl a y i n g c h ec k m a r k s t o k e e p a bu t t o n
d e p r e s s e d o n c e i t ’ s b e e n pr e s s e d. I n t h i s w a y , y o u c a n s h o w t o gg l e s t a t e s.
L e t ’ s u s e a n e x a m pl e .
T o m a k e a t o o l ba r bu t t o n a “ c h e c k ” b u t t o n , y o u m u s t s e t i t s S t y l e pr o p er t y t o t b r C h ec k , a n d y o u do
t h a t i n t o o l ba r ’ s p r o pe r t y p a g e s . R i gh t - c l i c k t h e t o o l b a r a n d s el ec t pr o p e r t i e s t o o p en p r o pe r t y
pa g e s . C l i c k t h e b u t t o n s t a b, s e l e c t t h e bu t t o n y o u w a n t t o w o r k w i t h , a n d se t i t s st y l e t o
t b r C h e c k . N o w w h e n t h e u s e r c l i c k s t h e bu t t o n , i t st a y s c l i c k e d, u n t i l t h e u s er c l i c k s i t a g a i n .
NetScape COMPUTER ACADEMY
72
Creating Button Groups in a Toolbar
Y o u c a n s e t u p gr o u p s o f m u t u a l l y e x c l u si v e bu t t o n s i n t o o l b a r s, j u s t a s y o u c a n w i t h gr o u p s o f
o pt i o n bu t t o n s
T o c r e a t e a bu t t o n gr o u p, do t h e f o l l o w i n g





O p e n t h e t o o l b a r ’ s pr o p e r t y p a g e s by r i gh t c l i c k i n g t h e t o o l b a r a n d s e l e c t i n g t h e P r o pe r t i es
item
C l i c k t h e bu t t o n s t a b
S e l e c t t h e bu t t o n i n t h e bu t t o n gr o u p, a n d s et i t s s t y l e t o t br B u t t o n G r o u p i n st y l e bo x
R e p e a t s t e p 3 f o r o t h e r bu t t o n s i n t h e bu t t o n gr o u p
C l i c k O k t o c l o s e P r o pe r t y p a g e s
W h e n t h e u s e r c l i c k s o n e t o s e l e c t i t , t h e o t h e r s w i l l t o g g l e o f f . B u t t o n g r o u p s c a n b e v e r y u s ef u l i n
a t o o l b a r a n y t i m e o p t i o n bu t t o n s w o u l d c o m e i n h a n d y i n a t o o l b a r , j u s t u s e b u t t o n gr o u p i n st e a d.
Adding Combo Box es and Other Contr ols to a Toolbar
Y o u c a n a dd c o m bo bo x e s o r o t h e r c o n t r o l s t o a t o o l b a r e a si l y ; j u st se t a si d e s p a c e i n t h e t o o l b a r
by s e t t i n g a bu t t o n ’ s S t y l e pr o p e r t y t o t h e t br P l a c eh o l d er . J u st f o l l o w t h e st e ps









R i gh t - c l i c k t h e t o o l ba r
C l i c k t h e bu t t o n s t a b i n t h e pr o p er t y p a ge s t h a t o p en
I n s e r t a n e w bu t t o n w h e r e y o u w a n t t h e C o m bo bo x t o go
S e t t h e n e w bu t t o n s s t y l e p r o pe r t y t o t br P l a c eH o l d er i n t h e bo x l a b el e d S t y l e. T h i s
t h a t bu t t o n w o n ’ t a p p e a r - t h e r e ’ l l o n l y b e a b l a n k sp a c e, a n d w e’ l l pl a c e o u r c o m bo
there.
S e t t h e w i dt h o f t h e s pa c e y o u w a n t t o l e a v e f o r t h e c o m bo bo x by en t e r i n g a t w i p
t h e bo x l a b e l e d W i d t h :
Close the property pages by clicking OK
C l i c k t h e C o m b o bo x c o n t r o l t o o l i n t h e t o o l bo x , a n d d r a w a n ew c o m bo bo x i n t h e
s pa c e i n t h e t o o l b a r .
A d d t h e i t e m s y o u w a n t i n t h e c o m bo bo x i n t h e P r o p er t i e s w i n do w ’ s L i st pr o p er t y
C o n n e c t t h e c o de y o u w a n t t o t h e c o m bo bo x . F o r e. g. , H e r e w e r e s po n d t o c o m bo
c l i c k s a n d t e x t e n t r y b y di s pl a y i n g a m es s a ge bo x
m ea n s
bo x
value in
n ew
bo x
P r i v a t e S u b C o m bo 1 _ C h a n g e ( )
M s gB o x “ Y o u E n t e r e d ” & C o m bo 1 . T ex t
End Sub
P r i v a t e S u b C o m bo 1 _ C l i c k ( )
M s gB o x “ Y o u S e l e c t e d” & C o m bo 1 . T ex t
End Sub
Setting ToolTips for Toolbar Buttons
G i v i n g T o o l T i p f o r a b u t t o n i s a n e a s y p r o c e s s. A l l y o u n e e d t o do t o gi v e a bu t t o n a t o o l t i p i s t o
s e t i t s T o o l T i p T e x t pr o p e r t y .
T o s e t t h e T o o l T i pT e x t p r o p e r t y , r i gh t c l i c k t h e t o o l b a r , c h o o s e P r o p er t i e s t o o p en P r o p e r t y p a ge s,
c l i c k t h e bu t t o n s t a b, s e l e c t t h e b u t t o n , pl a c e t h e T o o l T i p t ex t i n t h e T o o l T i pT ex t bo x .
Letting the user cu stomize the toolbar
Y o u c a n l e t t h e u s e r c u s t o m i z e t h e t o o l ba r . J u st s et t h e A l l o w C u st o m i z e pr o p er t y t o T r u e. W h en t h e
u s e r do u bl e c l i c k s t h e t o o l b a r , t h e C u st o m i z e T o o l b a r di a l o g a p pe a r s. U s er s c a n c u s t o m i z e t h e
t o o l b a r a s t h e y l i k e u s i n g t h a t di a l o g bo x .
Adding Toolbar Buttons at Runtime
I t i s po s s i b l e t o a d d b u t t o n s t o a t o o l b a r a t r u n t i m e. T o a d d a n ew bu t t o n w h en t h e u s er c l i c k s a
bu t t o n , w e s t a r t by d e c l a r i n g a n e w B u t t o n o bj e c t . N e x t w e a d d a n ew b u t t o n t o t h e t o o l b a r ’ s
bu t t o n s c o l l e c t i o n , w h i c h i s h o w i t s t o r e s i t bu t t o n s i n t er n a l l y . U se t h e B u t t o n s C o l l ec t i o n ’ s A d d
m e t h o d. N o w w e ’ r e f r e e t o s e t t h e bu t t o n ’ s st y l e. H er e, w e m a k e i t s st a n da r d bu t t o n b y s e t t i n g
t h e S t y l e p r o p e r t y t o t br D e f a u l t . W e c a n a l so gi v e t h e n ew bu t t o n a c a p t i o n , f i n a l l y gi v e a T o o l T i p
for the button.
NetScape COMPUTER ACADEMY
73
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Dim Button1 As Button
S e t B u t t o n 1 = T o o l ba r 1 . B u t t o n s. A d d( )
B u t t o n 1 . S t y l e = t br D e f a u l t
B u t t o n 1 . C a pt i o n = ” N e w B u t t o n ”
B u t t o n 1 . T o o l T i pT e x t = ” N ew B u t t o n ”
End Sub
A n d t h a t ’ s i t - t h e n e w b u t t o n i s a c t i v e . I t h a s be en a d d e d t o t h e B u t t o n s c o l l ec t i o n o f t h e t o o l b a r
c o n t r o l , w h i c h m e a n s i t h a s i t s o w n I n d ex v a l u e. T h o s e I n d ex v a l u es w i l l be p a s s e d t o t h e
B u t t o n C l i c k h a n d l e r , a n d w e c a n m a k e u s e o f t h e i n d ex t h i s w a y .
P r i v a t e S u b T o o l B a r 1 _ B u t t o n C l i c k ( B y V a l B u t t o n A s C o m c t l L i b. B u t t o n )
M s gB o x “ Y o u C l i c k e d bu t t o n ” & B u t t o n . I n de x
End Sub
Status Bars
S t a t u s b a r s a p p e a r a t t h e bo t t o m o f w i n do w s a n d u su a l l y h o l d s ev e r a l p a n el s i n w h i c h y o u c a n
di s pl a y t e x t . T h e s t a t u s ba r i s t h e r e t o g i v e f e ed ba c k t o t h e u s er o n pr o g r a m o p er a t i o n , a s w el l a s
o t h e r i t e m s l i k e t i m e , d a y o r k e y s t a t e s su c h a s C a p s L o c k o r I n s k e y . A l t h o u gh s t a t u s b a r s u su a l l y
di s pl a y t e x t i n pa n e l s , t h e r e i s s i m p l e s t a t u s b a r st y l e t h a t m a k e s t h e s t a t u s ba r f u n c t i o n a s o n e
l o n g p a n e l . S t a t u s b a r s a r e b u i l t a r o u n d t h e P a n el s c o l l ec t i o n , w h i c h h o l d s t h e p a n el s i n t h e s t a t u s
ba r . U p t o 1 6 p a n e l o bj e c t s c a n b e c o n t a i n ed i n t h e c o l l ec t i o n . e a c h o bj e c t c a n di s pl a y a n i m a g e
a n d t e x t . Y o u c a n c h a n g e t h e t e x t , i m a g e s, o r w i dt h s o f a n y p a n el o bj ec t , u si n g T ex t , P i c t u r e , a n d
w i d t h p r o pe r t i e s . T o a dd pa n e l o b j e c t s a t d e si gn t i m e, r i g h t - c l i c k t h e st a t u s ba r , a n d c l i c k
P r o p e r t i e s t o d i s p l a y t h e P r o pe r t y pa g e s d i a l o g b o x . Y o u a d d t h e st a t u s b a r c o n t r o l t o o l t o t h e
t o o l bo x u s i n g P r o j e c t > C o m po n e n t s > C o n t r o l s> M i c r o so f t W i n do w s C o m m o n C o n t r o l s.
Ad di n g a S ta t us bar t o t h e p r o gra m



S e l e c t t h e P r o p e r t i e s > C o m po n en t s
Click Controls Tab
S e l e c t M i c r o s o f t W i n do w s C o m m o n C o n t r o l s 6 . 0 a n d C l i c k O K
T h i s a d ds t h e s t a t u s b a r c o n t r o l t o t o o l bo x . C l i c k a n d dr a w t h e st a t u s b a r o n y o u r f o r m
Aligning Status bars in a Form
B y d e f a u l t s t a t u s b a r a l i gn i t s e l f w i t h t h e b o t t o m o f t h e c l i en t a r e a o f f o r m . Y o u c a n s e t t h e
a l i g n m e n t o f t h e s t a t u s ba r w i t h i t s A l i gn pr o p er t y , w h i c h t a k e s t h e s e v a l u e s





v b A l i gn N o n e - 0
v b A l i gn T o p - 1 ( d e f a u l t )
v b A l i gn B o t t o n - 2
v b A l i gn L e f t - 3
v b A l i gn R i gh t - 4
Adding Panels to a Status Bar
A s t a t u s b a r c o n t r o l h a s P a n e l s c o l l e c t i o n , a n d y o u a d d t h e p a n el s y o u w a n t t o t h a t c o l l ec t i o n . T o
do t h a t a t d e s i gn t i m e , f o l l o w t h e s e s t ep s




R i gh t - C l i c k t h e s t a t u s b a r , a n d s e l ec t t h e P r o p er t i e s i t em i n t h e m e n u t h a t o p en s
C l i c k t h e P a n e l s t a b i n t h e P r o pe r t y p a g e s
C l i c k t h e I n s e r t p a n e l bu t t o n a s m a n y t i m e s a s y o u w a n t p a n el s i n y o u r s t a t u s b a r
Close the property pages by clicking OK
I t ’ s a l s o e a s y t o a d d a n e w s t a t u s b a r p a n el a t r u n t i m e - j u s t u s e t h e P a n el s c o l l ec t i o n ’ s A dd
m e t h o d. H e r e ’ s a n e x a m pl e t o a dd p a n el s t o a s t a t u s ba r
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m pa n e l 5 A s P a n e l
S e t p a n e l 5 = S t a t u s B a r 1 . P a n el s. A d d( )
Panel5.Text=”Status: OK”
End Sub
NetScape COMPUTER ACADEMY
74
Displaying Text in Panels
T h e t e x t i n a s t a t u s ba r i s di s pl a y e d i n t h e st a t u s b a r ’ s p a n el s. D i s pl a y i n g t ex t i n a s t a t u s b a r ’ s
pa n e l i s e a s y - j u s t s e l e c t t h e pa n e l y o u w a n t t o w o r k w i t h a s t h e i n de x i n t o t h e s t a t u s b a r ’ s P a n el s
c o l l e c t i o n , a n d u s e t h a t pa n e l ’ s t e x t p r o pe r t y . H er e’ s a n e x a m p l e t o di s p l a y O K i n p a n e l
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
StatusBar1.Panels(1).Text=”OK”
End Sub
Displaying Time, D ates and Key State s in Status bar
T o di s pl a y t i m e , d a t e o r k e y s t a t e s i n y o u r p a n el , j u s t r i gh t c l i c k t h e st a t u s ba r , s e l ec t t h e
P r o p e r t i e s i t e m i n t h e m e n u t h a t a p pe a r s, c l i c k t h e P a n e l s t a b, s el ec t t h e pa n e l y o u w a n t t o w o r k
w i t h , a n d s e t t h e S t y l e p r o p e r t y i n t h e bo x l a b el e d S t y l e t o o n e o f t h e f o l l o w i n g:








s br T e x t - 0 ( d e f a u l t ) ; t e x t a n d/ o r a bi t m a p. D i s pl a y s t ex t i n t h e T ex t p r o p er t y
s br C a p s - 1 ; C a p s L o c k K e y . D i s pl a y s t h e l et t e r s “ C A P S ” i n bo l d w h en C a p s L o c k i s
e n a b l e d, a n d di m m e d w h en di s a b l ed.
S br N u m - 2 ; N u m L o c k K e y . D i s pl a y s t h e l et t e r s “ N U M ” i n b o l d w h en t h e N u m L o c k k e y
i s e n a bl e d, a n d di m m e d w h en di s a b l e d
S br I n s - 3 ; I n s e r t K e y . D i s pl a y s t h e l et t e r s “ I N S ” i n bo l d w h en t h e I n s er t k e y i s
e n a b l e d, a n d di m m e d w h en di s a b l ed
S br S c r l - 4 ; S c r o l l L o c k K e y . D i s pl a y s t h e l et t e r s “ S C R L ” i n b o l d w h en S c r o l l L o c k i s
e n a b l e d, a n d di m m e d w h en di s a b l ed.
S br T i m e - 5 ; t i m e . D i s pl a y s t h e c u r r e n t t i m e i n t h e S y s t em f o r m a t .
S br D a t e - 6 ; da t e . D i s pl a y s t h e c u r r e n t da t e i n t h e sy s t e m f o r m a t .
S br K a n a - 7 ; K a n a L o c k . D i s p l a y s t h e l et t er s “ K A N A ” i n bo l d w h en k a n a l o c k i s
e n a b l e d, a n d di m m e d w h en di s a b l ed. T h i s f ea t u r e i s e n a b l e d o n J a p a n e s e O p er a t i n g
Systems only
Customizing a Status Bar panel’s Appearance
Y o u c a n c u s t o m i z e t h e a p pe a r a n c e o f t h e p a n el s i n a st a t u s ba r w i t h t h e B e v el , A u t o S i z e, a n d
A l i gn m e n t p r o p e r t i e s . T h e B e v e l p r o p e r t y sp ec i f i e s w h et h er t h e p a n el w i l l h a v e a n i n s et b e v e l ,
r a i s e d, o r n o n e a t a l l . H e r e ’ s h o w y o u c a n s et t h e B e v e l p r o p er t y :



s br N o B e v e l - 0 ; t h e P a n e l di s pl a y s n o b e v e l , a n d t ex t l o o k s l i k e i t i s d i s p l a y ed r i gh t o n
the status bar.
s br I n s e t - 1 ; t h e P a n e l a p p ea r s t o b e su n k i n t o t h e S t a t u s ba r
s br R a i s e d - 2 ; t h e P a n e l a p pe a r s t o b e r a i s e d a bo v e t h e st a t u s ba r
T h e A u t o S i z e p r o pe r t y d e t e r m i n e s h o w a p a n el w i l l r e s i z e i t se l f w h en t h e u se r r es i z e s i t s c o n t a i n er .
H e r e a r e t h e s e t t i n g s f o r t h e A u t o S i z e pr o p er t y :



s br N o A u t o S i z e - 0 ; N o n e . N o a u t o s i z i n g o c c u r s. T h e
t h a t s p e c i f i e d b y t h e W i dt h pr o p er t y
s br S pr i n g - 1 ; S pr i n g. W h e n t h e pa r en t f o r m r e si z e s
pa n e l s w i t h t h i s s e t t i n g di v i d e t h e s pa c e a n d gr o w
b e l o w t h a t s p e c i f i e d b y M i n W i dt h p r o p e r t y .
s br C o n t e n t s - 2 ; C o n t e n t . T h e pa n e l i s r e si z ed t o f i t
w i dt h o f t h e p a n el i s a l w a y s a n d ex a c t l y
a n d t h e r e i s e x t r a sp a c e a v a i l a bl e, a l l
a c c o r di n gl y . T h e pa n e l ’ s w i d t h n ev e r f a l l s
i t s c o n t en t s
t h e A l i gn m e n t pr o p e r t y i n di c a t e s h o w t h e t e x t o r i m a g e i n a p a n el w i l l a l i gn i n t h e p a n el . T h e
s e t t i n g s f o r t h e A l i gn m e n t p r o p e r t y a r e a s f o l l o w s:



s br L e f t - 0 ; t e x t a p p e a r s l e f t - j u s t i f i e d a n d t o t h e r i gh t o f a n y bi t m a p
s br C e n t e r - 1 ; t e x t a p pe a r s c e n t er e d a n d t o t h e r i gh t o f a n y b i t m a p
s br R i gh t - 2 ; t e x t a pp e a r s r i g h t - j u st i f i e d bu t t o t h e l ef t o f a n y b i t m a p
Displaying Images in Status bar
S t a t u s b a r p a n e l s h a v e P i c t u r e pr o p e r t y t o p l a c e i m a g e s o n i t .





R i gh t c l i c k t h e s t a t u s b a r , a n d s e l ec t P r o pe r t i e s
C l i c k t h e pa n e l s t a b i n t h e P r o pe r t y p a g e s.
Select the panel you want to work with
S e t t h e p a n e l ’ s P i c t u r e p r o p e r t y b y c l i c k i n g t h e B r o w s e bu t t o n i n t h e bo x l a b el e d P i c t u r e .
S e l e c t t h e p i c t u r e t o d i s pl a y
Close the property pages by clicking OK
T o s e t a s t a t u s b a r pa n e l ’ s i m a ge a t r u n t i m e , H er e’ s a n e x a m p l e
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
S t a t u s B a r 1 . P a n e l s ( 1 ) . P i c t u r e= P i c t u r e1 . P i c t u r e
End Sub
NetScape COMPUTER ACADEMY
75
Handling Panel Clicks
S t a t u s b a r s c e r t a i n l y c a n h a n dl e e v e n t s, a n d t h e m o s t c o m m o n a r e P a n e l C l i c k a n d P a n el D bl C l i c k .
T h e e v e n t h a n d l e r pr o c e du r e s f o r t h o s e e v e n t s a r e pa s s e d t h e p a n e l t h a t w a s c l i c k e d, a s i n t h i s
e x a m p l e . Y o u c a n t e l l w h i c h p a n e l w a s c l i c k e d b y c h ec k i n g t h e P a n el a r g u m en t ’ s I n d ex o r K e y
pr o p e r t i e s .
P r i v a t e S u b S t a t u s B a r 1 _ P a n e l C l i c k ( B y V a l P a n e l A s C o m c t l L i b. P a n el )
M s gB o x “ Y o u C l i c k e d p a n e l ” & p a n el . I n de x
End Sub
I f y o u ’ v e s e t t h e K e y pr o p e r t i e s o f t h e p a n el s i n y o u r st a t u s ba r , y o u c a n s et u p a S el ec t C a s e
s t a t e m e n t t o s e e w h i c h pa n e l i s c l i c k e d.
P r i v a t e S u b S t a t u s B a r 1 _ P a n e l C l i c k ( B y V a l P a n e l A s C o n c t l L i b. P a n e l )
Select Case Panel.Key
Case “Date”
Panel.Text=Date$
Case “Time”
Panel.Text=Time$
End Select
End Sub
Adding New Panels to a Status bar at runtime
I t ’ s e a s y t o a d d a n e w s t a t u s b a r pa n e l a t r u n t i m e - j u s t u s e t h e P a n e l s c o l l ec t i o n ’ s A d d m e t h o d.
H e r e ’ s a n e x a m p l e w h e r e w e a dd a pa n e l t o a st a t u s ba r .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m pa n e l 5 A s P a n e l
S e t p a n e l 5 = S t a t u s B a r 1 . P a n el s. A d d( )
Panel5.Text=”Status:OK”
End Sub
Creating Simple Status Bars
T h e r e ’ s a w a y o f u s i n g s t a t u s b a r s w i t h o u t p a n el s: b y m a k i n g t h e st a t u s ba r a si m pl e s t a t u s b a r .
Y o u s e t i t s S t y l e pr o p e r t y t o s b r S i m p l e. S i m p l e s t a t u s b a r s h a v e o n l y o n e pa n e l , a n d y o u s e t t h e
t e x t i n t h a t pa n e l w i t h t h e S i m p l e T e x t p r o p e r t y .
Here’s an example
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
StatusBar1.SimpleText=”Status OK”
End Sub
Progress Bars
P r o gr e s s b a r s gi v e t h e u s e r s o m e v i s u a l f ee d b a c k o n w h a t ’ s h a p p en i n g d u r i n g a t i m e c o n su m i n g
o p e r a t i o n . T h e y pr e s e n t t h e u s e r w i t h a c o l o r b a r t h a t gr o w s i n t h e c o n t r o l t o s h o w h o w t h e
o p e r a t i o n i s p r o c e e d i n g, u s u a l l y f r o m 0 t o 1 0 0 p er c en t . Y o u c a n u s e a P r o gr e s s b a r w h en a n
o p e r a t i o n w i l l t a k e s o m e t i m e t o f i n i s h . T h e pr o g r e s s b a r ’ s V a l u e pr o p er t y , w h i c h i s n o t a v a i l a b l e a t
d e s i gn t i m e d e t e r m i n e s h o w m u c h o f t h e c o n t r o l h a s b e en f i l l e d. T h e M i n a n d M a x pr o p er t i e s se t
t h e l i m i t s o f t h e c o n t r o l . Y o u a d d t h e P r o g r es s B a r c o n t r o l t o o l t o t h e t o o l bo x b y f o l l o w i n g t h e
s a m e s t e p s t o a dd t h e t o o l b a r t o o l , b e c a u s e t h e P r o gr e ss b a r c o n t r o l i s a l so pa r t o f t h e M i c r o so f t
W i n do w s C o m m o n C o n t r o l s .
Adding a Progre ss Bar to a Form
Y o u c a n u s e p r o gr e s s b a r c o n t r o l s t o sh o w t h e p r o g r e s s o f a t i m e - c o n su m i n g o p e r a t i o n . T h e s e
c o n t r o l s di s pl a y a c o l o r e d b a n d t h a t c a n gr o w o r sh r i n k a s t i m es go e s o n . T o a d d a pr o g r e s s ba r t o
a form, follow these steps:





S e l e c t P r o j e c t > C o m po n en t s
Click the Controls tab
S e l e c t t h e M i c r o s o f t W i n do w s C o m m o n C o n t r o l s a n d c l i c k O K . T h i s a d d s t h e P r o gr e s s
ba r c o n t r o l t o t h e t o o l bo x
T o pl a c e a pr o gr e s s b a r t o y o u r f o r m , j u st a d d i t a s a n y o t h er c o n t r o l
S e t t h e pr o g r e s s ba r ’ s M i n a n d M a x pr o p er t i e s a s de s i r e d t o m a t c h t h e r a n g e o f t h e
o p e r a t i o n y o u ’ r e r e po r t i n g o n .
NetScape COMPUTER ACADEMY
76
Using a Progress Bar
Y o u u s e a p r o gr e s s b a r ’ s V a l u e pr o p er t y t o s p ec i f y h o w m u c h o f t h e pr o gr e ss b a r i s v i si b l e.
a s y o u m i gh t e x p e c t , s e t t i n g V a l u e t o M i n m ea n s n o n e o f t h e pr o gr e s s b a r i s v i s i b l e, a n d s et t i n g i t
to Max means all of it is.
L e t ’ s s e e a n e x a m pl e , i n t h i s c a s e , w e ’ l l l e t t h e u s er c l i c k a b u t t o n t o di s pl a y a pr o gr e s s b a r w h o s e
ba r l e n gt h e n s f r o m M i n t o M a x i n 1 0 s ec o n d s. A d d a pr o gr e s s b a r , c o m m a n d bu t t o n , a n d a t i m e r
c o n t r o l t o a f o r m n o w . S e t t h e t i m e r ’ s I n t er v a l p r o p er t y t o 1 0 0 0 . W e’ l l l e a v e t h e pr o g r e s s ba r ’ s M i n
pr o p e r t y a t 0 a n d i t s M a x pr o p e r t y a t 1 0 0 , t h e d ef a u l t s.
W h e n t h e f o r m l o a d s , w e d i s a b l e t h e t i m e r a n d s et t h e pr o gr e s s b a r ’ s V a l u e t o 0 ;
Private Sub Form_Load( )
T i m e r 1 . E n a bl e d= F a l s e
P r o gr e s s B a r 1 . V a l u e = 0
End Sub
W h e n t h e u s e r c l i c k s t h e c o m m a n d bu t t o n , w e w a n t t o s t a r t t h e pr o gr e s s ba r , so w e e n a b l e t h e
t i m e r . W e a l s o s e t t h e p r o g r e s s ba r b a c k t o 0
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
P r o gr e s s B a r 1 . V a l u e
T i m e r 1 . E n a bl e d= T r u e
End Sub
F i n a l l y , t h e T i m e r e v e n t h a n dl e r , T i m e r 1 _ T i m er , w e a d d a v a l u e o f 1 0 t o t h e pr o g r e s s ba r ’ s V a l u e
pr o p e r t y e v e r y s e c o n d. W e a l s o c h e c k i f w e’ v e f i l l e d t h e p r o gr es s b a r , a n d i f so , di sa b l e t h e t i m er .
Private Sub Timer1_Timer( )
P r o gr e s s B a r 1 . V a l u e = P r o gr e s sB a r 1 . V a l u e+ 1 0
I f P r o g r e s s B a r 1 . V a l u e > = 1 0 0 T h en T i m e r 1 . E n a b l e d= F a l s e
End Sub
Coolbars
C o o l ba r s w e r e f i r s t i n t r o du c e d i n M i c r o s o f t I n t er n et E x pl o r er , a n d t h ey a r e t o o l ba r s t h a t pr e se n t
c o n t r o l s i n b a n d s . U s e r s c a n a dj u s t t h e se b a n d s by dr a g gi n g a g r i p pe r , w h i c h a p p ea r s a t l e f t i n a
ba n d. I n t h i s w a y , u s e r s c a n c o n f i gu r e t h e c o o l b a r by sl i di n g t h e b a n d s a r o u n d a s t h ey w a n t . O n e
po pu l a r u s e o f c o o l b a r i s t o di s pl a y t o o l b a r s i n t h e b a n d s o f t h a t c o o l b a r , a l l o w i n g u s er s t o m o v e
those toolbars around as they want.
NetScape COMPUTER ACADEMY
77
Chapter 14
CommonDialog Control
T h e C o m m o n D i a l o g c o n t r o l e x po s e s t h e di a l o g s bu i l t i n t o w i n do w s. M i c r o so f t h a s c r e a t e d s t a n d a r d
di a l o g s f o r m a n y o f t h e c o m m o n t a s k s u s er f a c e, su c h a s c h o o si n g pr i n t e r s et t i n g s, o pen i n g a n d
s a v i n g f i l e s , c h a n gi n g f o n t s , a n d s e l e c t i n g a n d d ef i n i n g c o l o r s. M a n y c o m m e r c i a l a pp l i c a t i o n s u s e
t h e s e c o m m o n d i a l o g bo x e s . U s i n g c o m m o n di a l o g bo x e s s a v e s y o u a su b st a n t i a l a m o u n t o f w o r k
a n d l e n ds y o u r pr o g r a m s pr o f e s s i o n a l a p pe a r a n c e, g i v i n g t h e m a c o n si st en c y t h a t u s er s h a v e gr o w n
to expect.
Common Dialog
T h i s c o n t r o l p r o v i d e s a n e a s y w a y t o pr o du c e s t a n da r d d i a l o g bo x e s su c h a s F i l e O p en , F i l e S a v e ,
P r i n t , S e l e c t F o n t , a n d C h o o s e C o l o r . T h i s s a v e s y o u f r o m h a v i n g t o r e - c r e a t e s t a n d a r d di a l o g
bo x e s f o r e v e r y a p pl i c a t i o n . T h e a c t i o n p r o p e r t y d et er m i n e s w h i c h k i n d o f di a l o g bo x t o d i s p l a y a n d
i m m e di a t e l y di s pl a y s i t . Y o u c a n a l s o u s e t h e S h o w m et h o d s t o pr o v i d e a be t t er w a y o f u s i n g
CommonDialog control.
T o a d d a C o m m o n D i a l o g c o n t r o l C h o o s e P r o j ec t > C o m po n en t s > M i c r o s o f t C o m m o n D i a l o g C o n t r o l .
Common Dialogs
Dialog
Color
Font
Help
Open
Printer
Save
Purpose
L e t t h e u s er c h o o s e a c o l o r
L e t t h e u s er c h o o s e a f o n t
S h o w t h e u s er h e l p
L e t t h e u s er o pe n a f i l e
L e t t h e u s er c h a n ge t h e pr i n t er s et t i n g s
L e t t h e u s er sa v e a f i l e
Properties of Common Dialog Control
Property
To Do this…
Action
CancelError
Color
Copies
DefaultExt
DialogTitle
FileName
FileTitle
Filter
FilterIndex
Flags
S p e c i f y t h e di a l o g t o d i s pl a y
D e t e r m i n e w h e t h er a n er r o r i s g en e r a t e d u po n C a n c el
R e a d o r s e t t h e s el ec t e d c o l o r
R e a d o r s e t t h e n o . o f c o pi e s t o b e p r i n t e d
S e t t h e d e f a u l t e x t en s i o n f o r t h e d i a l o g bo x
S e t t h e c a pt i o n o f d i a l o g bo x t i t l e b a r
R e a d o r s e t t h e p a t h a n d n a m e o f t h e f i l e t o o p en o r sa v e
R e a d t h e n a m e o f f i l e t o o pe n o r s a v e
R e a d o r s e t t h e F i l t er f o r t h e k i n d s o f f i l e s t h e f i l e l i st di s pl a y s
R e a d o r s e t t h e i n de x n o . o f t h e f i l t e r f o r t h e d ef a u l t p a t t er n
S e t v a r i o u s o pt i o n s f o r e a c h d i a l o g b o x
F o n t B o l d, F o n t I t a l i c
FontStrikethru,
F o n t U n de r L i n e
FontName
FontSize
FromPage, ToPage
hDC
H e l pC o m m a n d
H e l pf i l e
H e l pK e y
InitDir
Max, Min
Max, Min
MaxFileSize
PrinterDefault
R e a d o r s e r s pe c i a l ef f ec t s f o r t h i s o bj ec t s f o n t
R e a d o r s e t t h e n a m e o f t h e f o n t f o r t h e o bj ec t
R e a d o r s e t t h e si z e o f f o n t f o r t h e o bj ec t
R e a d o r s e t t h e v a l u e s o f pa g e r a n g e
R e a d t h e w i n do w s d e v i c e h a n d l e f o r t h i s o b j ec t
S e t t h e k i n d o f h e l p r e q u e st
s e t t h e n a m e o f h el p f i l e t o di s pl a y
s e t t h e k e y w o r d f o r t h e h el p f i l e t o s ea r c h f o r
R e a d o r s e t I n i t i a l di a r y t o o p en f i l e
S e t t h e s m a l l e s t a n d l a r g es t f o n t d i s p l a y e d
S e t t h e s m a l l e s t a n d l a r g es t p a g e n u m b er s t o pr i n t
S e t t h e m a x i m u m l en g t h o f f i l en a m e u se d i n F i l e n a m e pr o p er t y
D e t e r m i n e w h e t h er c h a n g es i n P r i n t D i a l o g a f f ec t d ef a u l t s e t t i n g s
Methods of CommonDialog Control
Method
To Do this
ShowColor
ShowFont
ShowHelp
S h o w O pe n
ShowPrinter
ShowSave
Display the Color Dialog
Display the Font Dialog
I n v o k e W i n h e l p. E X E
Display File Open Dialog
Display Printer Dialog
Display Save As Dialog
Y o u c a n a l s o u s e t h e d i f f e r e n t A c t i o n p r o p er t y v a l u e t o sh o w di f f e r en t D i a l o g bo x e s
NetScape COMPUTER ACADEMY
Action
78
To Do this..
1
2
3
4
5
6
Displays
Displays
Displays
Displays
Displays
Displays
O p en D i a l o g
Save Dialog
Color Dialog
Font Dialog
P r i n t er D i a l o g
H el p D i a l o g
O p e n & S a ve A s : T h e s e di a l o g bo x e s l et t h e u s e r t o o p en o r s a v e a f i l e. T h e y h a v e a r ea s f o r
c h o o s i n g dr i v e s , di r e c t o r i e s , f i l e n a m e s, a l i st o f a v a i l a bl e f i l en a m es, a l i s t o f p a t t e r n s, t h e o pt i o n
t o o p e n f i l e r e a do n l y , a n d a d v a n c e d o pt i o n s f o r o p en i n g f i l e s o n a n et w o r k .
E . g. :
Private Sub CmdOpen_Click( )
C M D i a l o g1 . D e f a u l t E x t = ” * . B M P ”
C M D i a l o g1 . D i a l o gT i t l e = ” P l a c e G r a ph i c F i l e ”
C M D i a l o g1 . F i l t e r = ” I c o n s | * . I C O | B i t m a p s| * . B M P | M et a f i l e s| * . W M F ”
C M D i a l o g1 . F i l t e r I n d e x = 2
C M D i a l o g1 . F l a g s = c d l O F N H el p B u t t o n
C M D i a l o g1 . S h o w O p e n
P i c t u r e 1 . P i c t u r e = L o a d P i c t u r e( C M D i a l o g1 . F i l en a m e)
End Sub
C o l o r : - T h e C o l o r c o m m o n di a l o g bo x l e t s t h e u s er c h o o s e a c o l o r f r o m a pa l et t e o r c r e a t e n ew
c o l o r s . I t s h o w s t h e a c t u a l p a l e t t e c o l o r s, a n d w h en ex p a n de d t o en a bl e t h e c r e a t i o n o f n ew c o l o r s,
s h o w s t h e w h o l e c o l o r g a m u t a n d h a s i n pu t bo x e s f o r bo t h H S V ( H u e, S a t u r a t i o n , V a l u e) a n d R G B (
Red, Green, Blue) values.
E . g. :
Private Sub CmdColor_Click( )
C M D i a l o g1 . C o l o r = Q B C o l o r ( 1 )
C M D i a l o g1 . F l a g s = c d l C C R G B I n i t o r c dl C C F u l l O p en
C M D i a l o g1 . S h o w C o l o r
Text1.BackColor= CMDialog1.Color
End Sub
F o n t s : - T h e F o n t C o m m o n di a l o g bo x l e t s t h e u s er c h o o s e a f o n t . I t h a s c o m bo bo x e s l i s t i n g t h e
n a m e s o f a l l t h e a v a i l a bl e f o n t s , c o l o r s, s i z e s, a n d s t y l e s p a r t i c u l a r t o t h e sy s t e m t h e p r o gr a m i s
r u n n i n g o n . I t s h o w s t h e s e l e c t e d f o n t a n d a t t r i b u t e s i n a sa m p l e w i n do w . S o m e pr o p er t i e s o f f o n t
di a l o g n e e d t o h a v e f l a g s s e t b e f o r e y o u c a n u s e t h em . C o l o r , F o n t B o l d, F o n t I t a l i c , F o n t S t r i k e t h r u
a n d F o n t U n d e r L i n e a l l n e e d t h e E f f e c t s f l a g s et . M i n a n d M a x n e ed L i m i t S i z e se t b ef o r e t h e y c a n
t a k e e f f e c t . W Y S Y W I G n e e d s t o h a v e bo t h S c r e e n F o n t s a n d P r i n t e r F o n t s s et t o o . M a k e su r e y o u s et
a t l e a s t o n e o f S c r e e n F o n t s , P r i n t e r F o n t s, o r B o t h be f o r e c a l l i n g t h e D i a l o g bo x , o t h e r w i se t h e “ N o
Fonts Exist” error occurs.
E . g. :
Private Sub CmdFont_Click ( )
C M D i a l o g1 . F l a g s = c d l C F B o t h o r c d l C F H e l pB u t t o n o r c d l C F E f f ec t s o r
CdlCFTTonly
C M D i a l o g1 . F o n t B o l d= T e x t 1 . F o n t B o l d
C M D i a l o g1 . F o n t I t a l i c = T e x t 1 . F o n t I t a l i c
C M D i a l o g1 . F o n t U n d e r L i n e= T ex t 1 . F o n t U n d e r L i n e
C M D i a l o g1 . F o n t S t r i k e t h r u = T ex t 1 . F o n t S t r i k e t h r u
C M D i a l o g1 . C o l o r = T e x t 1 . F o r eC o l o r
C M D i a l o g1 . F o n t N a m e = T ex t 1 . F o n t N a m e
C M D i a l o g1 . F o n t S i z e = T e x t 1 . F o n t S i z e
C M D i a l o g1 . S h o w F o n t
T e x t 1 . F o n t B o l d= C M D i a l o g1 . F o n t B o l d
T e x t 1 . F o n t I t a l i c = C M D i a l o g1 . F o n t I t a l i c
T e x t 1 . F o n t S t r i k e t h r u = C M D i a l o g1 . F o n t S t r i k e t h r u
T e x t 1 . F o n t U n d e r L i n e = C M D i a l o g1 . F o n t U n d er L i n e
T e x t 1 . F o r e C o l o r = C M D i a l o g1 . C o l o r
Text1.FontName= CMDialog1.FontName
T e x t 1 . F o n t S i z e = C M D i a l o g1 . F o n t S i z e
End Sub
P r i n t : - T h e P r i n t C o m m o n di a l o g bo x l e t s t h e u s er s pec i f y h o w m a t er i a l i s t o be pr i n t e d. I t h a s
a r e a s t h a t e n a b l e i n pu t o f p a g e r a n g e s, n u m b er o f c o pi e s, pr i n t qu a l i t y , c o l l a t i o n , a n d pr i n t t o f i l e.
I t a l s o h a s c o m m a n d bu t t o n s t h a t a l l o w f o r s e t t i n g u p t h e c u r r en t p r i n t e r o r s p ec i f y i n g a di f f e r e n t
pr i n t e r . N o t e t h a t t h e d i a l o g bo x do e s n o t do a n y a c t u a l p r i n t i n g; y o u r c o d e s t i l l h a s t o do t h a t .
NetScape COMPUTER ACADEMY
79
E . g. :
Private Sub CmdPrint_Click( )
C M D i a l o g1 . C o pi e s = 3
C M D i a l o g1 . F l a g s = c d l P D A l l P a g e s o r c d l P D C o l l a t e
C M D i a l o g1 . S h o w P r i n t e r
End Sub
H e l p : - T h e H e l p C o m m o n di a l o g bo x a c t i o n do e s n ’ t r ea l l y br i n g u p a d i a l o g bo x . I n st e a d, i t c a l l s
W I N H E L P . E X E a n d p a s s e s i t t h e p r o p e r p a r a m e t e r s f o r c o n t ex t - s en si t i v e h el p, k ey w o r d s e a r c h e s, o r
e v e n h e l p o n H e l p.
E . g. :
P r i v a t e S u b C m dH e l p _ C l i c k ( )
C M D i a l o g1 . H e l pF i l e = ” M y A p p. H L P ”
C M D i a l o g1 . H e l pC o m m a n d= v bH el p K e y
C M D i a l o g1 . H e l pK e y = ” G r a p h i n g ”
C M D i a l o g1 . S h o w H e l p
End Sub
NetScape COMPUTER ACADEMY
80
Chapter 15
Flexgrid control:-
Flex Grid Control
A n M S f l e x g r i d c o n t r o l i n V I S U A L B A S I C i s u s e d t o c r e a t e a p pl i c a t i o n s t h a t pr es en t i n f o r m a t i o n s i n
r o w s a n d c o l u m n s . I t d i s pl a y s i n f o r m a t i o n s i n c el l s. T h e i n t er s ec t i o n o f a r o w a n d c o l u m n i s c a l l e d
a c e l l . T h e u s e r c a n s e l e c t a c e l l a t r u n t i m e u s i n g m o u s e o r a r r o w k ey s, bu t c a n n o t e di t o r a l t er
t h e c e l l c o n t e n t s . W e c a n p l a c e t e x t o r a pi c t u r e i n M S f l ex gr i d.
T h e r o w a n d c o l u m n p r o p e r t y s p e c i f i e s t h e c u r r en t c e l l . T ex t pr o p er t y r e f er s t h e c o n t e n t s o f
c u r r e n t c e l l . T h e c o l u m n w i d t h pr o p er t y i s u s e d t o c h a n g e a t t h e w i dt h o f c o l u m n , r o w h e i gh t t o
c h a n g e t h e h e i gh t o f r o w . T h e r o w s a n d c o l u m n s pr o p er t i e s a r e u s e d t o d et er m i n e t h e n o . o f r o w s
a n d c o l u m n s i n M S f l e x gr i d. T w o k i n ds o f r o w s a n d c o l u m n s a r e c r e a t e d i n f l e x gr i d c o n t r o l . T h e y
a r e f i x e d a n d n o n - f i x e d.
Basic methods , Events, and Properties dealing with Flex Grid Control
A d dI t e m : - T h e A d dI t e m m e t h o d a d d s a n i t em t o t h e l i st o f a gr i d. W h en A d dI t e m m et h o d ex ec u t e s,
t h e v a l u e o f t h e s t r i n g e x pr e s s i o n sp ec i f i e d i s a d d ed t o t h e gr i d. Y o u c a n s p ec i f y t h e e x a c t
pl a c e m e n t o f t h e n e w i t e m i n t h e gr i d by pr o v i d i n g t h e I n d ex a r gu m en t . T h e i n de x n u m b er m u st be
n o t l e s s t h a n 0 a n d n o t gr e a t e r t h a n t h e v a l u e o f R o w s pr o p er t y . Y o u c a n a dd da t a t o m o r e t h a n
o n e c o l u m n w i t h i n t h e s a m e r o w by u s i n g t h e t a b c h a r a c t er C h r ( 9 ) t o d el i m i t ea c h c o l u m n s da t a .
Syntax
E . g. :
O b j e c t . A d dI t e m I t e m [ , i n d e x ]
Private Sub Form_Load ()
Flex.
Flex.
Flex.
Flex.
Flex.
A d dI t e m
A d dI t e m
A d dI t e m
A d dI t e m
A d dI t e m
"ICES", 1
"I", 2
"C", 3
"IC" & Chr (9) & "ES", 4
"yas", 6
End Sub
A l l o w B i gS e l e c t i o n : - T h i s pr o p e r t y r e a d s o r s et s w h et h e r a n en t i r e r o w o r c o l u m n c a n be s el ec t e d by
c l i c k i n g o n i t s h e a d e r . B y d e f a u l t t h i s pr o p er t y i s T r u e. I f t h er e i s n o f i x e d r o w s o r c o l u m n s, t h en
t h i s p r o pe r t y h a s n o e f f e c t .
Syntax
O b j e c t . A l l o w B i gS e l e c t i o n = B o o l e a n
E . g. :
F l e x . A l l o w B i gS e l e c t i o n = T r u e
A l l o w U s e r R e s i z i n g: - T h i s pr o p e r t y r e a d s o r s et s w h et h e r t h e u se r c a n r e si z e t h e r o w s a n d c o l u m n s.
T h i s p r o pe r t y h a s t h e v a l u e s f l e x r e s i z en o n e, f l e x r es i z ec o l u m n s, f l ex r e s i z e r o w s a n d f l ex r e s i z e bo t h .
I f t h i s pr o p e r t y i s s e t u s e r c a n r e s i z e t h e c o l u m n s a n d r o w s b y m o v i n g t h e m o u s e po i n t e r t o t h e
h e a d e r a r e a a n d dr a g gi n g t h e gr i d l i n e w h i c h n e e d s t o b e m o v e d.
Syntax
O b j e c t . A l l o w U s e r R e s i z i n g= r e s i z i n g
E . g. :
F l e x . A l l o w U s e r R e s i z i n g= f l e x R e s i z e B o t h
B a c k C o l o r , B a c k C o l o r B k g, B a c k C o l o r F i x e d, B a c k C o l o r S e l , C el l B a c k C o l o r : - U s ed t o r e a d o r s e t t h e
ba c k gr o u n d c o l o r o f g r i d e l e m e n t s . E x c e pt C e l l B a k C o l o r p r o pe r t y a l l o t h e r pr o p er t i e s s p ec i f i e d
a b o v e c a n b e s e t a t de s i gn t i m e . T h e B a c k C o l o r pr o p er t y s et s t h e b a c k g r o u n d c o l o r o f t h e m a i n
n o n f i x e d g r i d c e l l s . T h e B a c k C o l o r S e l pr o p e r t y s et s t h e b a c k g r o u n d c o l o r o f t h e s el ec t i o n . T h e
B a c k C o l o r B k g p r o pe r t y s e t s t h e b a c k gr o u n d c o l o r o f t h e a r ea b e h i n d t h e gr i d, w h i c h m a y o n l y ,
v i s i b l e w h e n y o u s c r o l l a l l t h e w a y t o t h e r i g h t o r t o t h e bo t t o m . T h e B a c k C o l o r F i x e d pr o p er t y s et s
t h e b a c k gr o u n d c o l o r o f t h e f i x e d r o w s a n d c o l u m n s o f t h e gr i d. C el l B a c k C o l o r pr o p er t y c h a n ge s t h e
ba c k gr o u n d c o l o r o f t h e c u r r e n t c e l l , w h i c h i s i n di c a t e d b y t h e c u r r en t se t t i n g o f r o w a n d c o l u m n
value.
Syntax
Object.BackColor=color
O b j e c t . B a c k C o l o r B k g= c o l o r
O b j e c t . B a c k C o l o r F i x e d= c o l o r
Object.BackColorSel=color
Object.CellBackColor=color
NetScape COMPUTER ACADEMY
81
T h e d i f f e r e n t C o l o r a r gu m e n t s a r e v bB l a c k , v b B l u e, v bC y a n , v bG r ee n , v bM a g en t a , v bR e d, v bW h i t e,
v b Y e l l o w , & H B B G G R R o r R G B ( r , g, b)
E . g. :
Private Sub Form_Load( )
F l e x . B a c k C o l o r = v bR e d
F l e x . B a c k C o l o r B k g= v bB l u e
F l e x . B a c k C o l o r F i x e d= v b C y a n
Flex.BackColorSel=&HC0C0C0
Flex.CellBackColor=RGB(0,100,124)
End Sub
C e l l A l i gn m e n t : - U s e t h e G r i d’ s C e l l A l i gn m en t p r o p er t y t o r e a d o r se t t h e a l i g n m en t o f t h e a c t i v e
c e l l ’ s d a t a . T h i s pr o p e r t y i s n o t a v a i l a b l e a t d e si gn t i m e; r ea d a n d w r i t e a t r u n t i m e.
Syntax
O b j e c t . C e l l A l i gn m e n t = a l i gn m e n t
T h i s p r o p e r t y l e t s y o u r e a d o r s e t t h e a l i gn m en t o f i n d i v i du a l c el l s. T h i s pr o p er t y o n l y a f f ec t s t h e
a c t i v e c e l l d e s i gn a t e d by t h e R o w a n d C o l pr o p er t i e s.
T h e di f f e r e n t a l i g n m e n t pr o p e r t i e s a r e f l ex A l i gn L ef t T o p, f l ex L ef t A l i g n L ef t C en t er ,
f l e x A l i gn L e f t B o t t o m , f l e x A l i gn C e n t e r T o p, f l e x A l i g n C e n t er C en t er , f l e x A l i gn C en t er B o t t o m ,
f l e x A l i gn R i gh t T o p, f l e x A l i gn R i gh t C e n t e r , f l e x A l i g n R i gh t B o t t o m , a n d f l e x A l i gn G en er a l
E . g. :
F l e x . C e l l A l i g n m e n t = f l e x A l i gn L e f t B o t t o m
C e l l H e i gh t , C e l l L e f t , C e l l T o p, C e l l W i d t h : - U s e t h e se pr o p er t i e s r e a d t h e si z e o r po s i t i o n o f t h e
c u r r e n t c e l l . T h i s pr o p e r t y i s n o t a v a i l a bl e a t de s i gn t i m e a n d i s r ea d - o n l y a t r u n t i m e.
Syntax
O b j e c t . C e l l H e i gh t [ a s i n t e ge r ]
Object.CellLeft [as integer]
Object.CellTop [as integer]
O b j e c t . C e l l W i d t h [ a s i n t e ge r ]
E . g. :
T e x t 1 . H e i gh t = F l e x . C e l l H e i gh t
Text1.Left=Flex.CellLeft
T e x t 1 . T o p= F l e x . C e l l T o p
T e x t 1 . W i d t h = F l e x . C e l l W i dt h
C l e a r : - T h i s m e t h o d c l e a r s a l l t e x t , gr a ph i c s et c w i t h i n a gr i d. T h i s m et h o d do e s n o t r e s e t a n y
f o r e g r o u n d o r ba c k gr o u n d p r o pe r t i e s o f t h e g r i d a n d o n l y a f f ec t s t h e d a t a w i t h i n t h e c el l s.
Syntax
E . g. :
Object.Celar
Private Sub CmdClear_Click()
Flex.Clear
End Sub
C o l , R o w , C o l S e l , R o w S e l : - U s e t h e C o l , R o w , R o w S el , C o l S e l p r o p e r t i e s t o d et er m i n e o r s et t h e
a c t i v e c e l l a n d r a n g e o f s e l e c t e d c e l l s i n a g r i d. O n c e a n a c t i v e c e l l i s s et , y o u c a n u s e o t h e r
pr o p e r t i e s o n t h a t c e l l , s u c h a s T e x t . T h i s pr o p e r t y i s n o t a v a i l a bl e a t de s i gn t i m e a n d i s r ea d a bl e
and writable at runtime.
Syntax
E . g. :
Object.Col=Colnumber
Object.Row=Rownumber
Object.ColSel=Colnumber
Object.RowSel= Rownumber
Flex.Row=1
Flex.Col=1
Flex.ColSel=Flex.Cols -1
Flex.RowSel=Flex.Rows-1
C o l A l i gn m e n t : - U s e t h i s pr o p e r t y o f a g r i d t o r e a d o r se t t h e a l i gn m e n t o f a c o l u m n ’ s d a t a . T h i s
pr o p e r t y i s o n l y a v a i l a bl e a t r u n t i m e . i t i s o n l y a v a i l a bl e f o r n o n f i x e d c o l u m n s.
Syntax
O b j e c t . C o l A l i gn m e n t ( c o l u m n n u m b er ) = a l i gn m en t
T h e a l i gn m e n t a r gu m e n t h a s t h e v a l u e f l ex A l i gn L ef t T o p ( D ef a u l t ) , f l ex A l i gn L e f t C en t er ,
NetScape COMPUTER ACADEMY
82
f l e x A l i gn L e f t B o t t o m , f l e x A l i gn C e n t e r T o p, f l e x A l i g n C e n t er C en t er , f l e x A l i gn C en t er B o t t o m ,
f l e x A l i gn R i gh t T o p, f l e x A l i gn R i gh t C e n t e r , f l e x A l i g n R i gh t B o t t o m a n d f l e x A l i gn G en er a l .
E . g. :
F l e x . C o l A l i gn m e n t ( 5 ) = f l e x A l i gn R i gh t T o p
C o l s , R o w s : - U s e t h e s e pr o p e r t i e s t o r e a d o r s e t t h e t o t a l n u m b er o f c o l u m n s o r r o w s i n a gr i d.
T h i s pr o p e r t y i s n o t a v a i l a b l e a t d e s i g n t i m e a n d i s r ea d a bl e a n d w r i t a b l e a t r u n t i m e. U si n g t h i s
pr o p e r t y y o u c a n f i n d t h e i n d e x o f L a s t C o l u m n o r R o w a s C o l s - 1 o r R o w s - 1 b ec a u s e i n d ex st a r t s a t
0.
Syntax
Oblect.Cols=columns
Object.Rows=Rows
E . g. :
Private Sub CmdAddClick()
Flex.Cols=Flex.Cols+1
Flex.Rows=Flex.Rows-1
End Sub
C o l W i d t h , R o w H e i gh t : - T h e C o l W i dt h p r o pe r t y r e a d s o r s et s t h e w i d t h o f a c o l u m n i n a gr i d; t h e
R o w H e i gh t p r o pe r t y r e a d s o r s e t s t h e h ei gh t o f a r o w i n a gr i d. T h es e p r o p er t i e s a r e o n l y a v a i l a bl e
a t r u n t i m e . T h e s i z e s a r e a l w a y s e x pr e s se d i n t h e u n i t T w i p s, w i t h 1 4 4 0 t w i ps p er i n c h .
Syntax
O b j e c t . C o l w i dt h ( c o l u m n n u m b e r ) = w i dt h
O b j e c t . R o w H e i gh t ( R o w n u m b e r ) = H e i g h t
E . g. :
Private Sub Form_Load()
Flex.ColWidth(0)=400
F l e x . R o w H e i gh t ( 1 ) = 1 0 0 0
End Sub
F i x e dA l i gn m e n t : - U s e t h i s pr o p e r t y t o r ea d o r s et t h e a l i g n m en t o f d a t a i n t h e f i x e d c el l s o f a g r i d’ s
c o l u m n . T h i s pr o p e r t y i s r e a d a n d w r i t e o n l y a t r u n t i m e.
Syntax
O b j e c t . F i x e dA l i gn m e n t ( c o l u m n n u m be r ) = a l i gn m e n t
T h e a l i g n m e n t a r gu m e n t h a s t h e v a l u e f l e x A l i gn L ef t T o p ( D e f a u l t ) , f l e x A l i gn L ef t C e n t e r ,
f l e x A l i gn L e f t B o t t o m ,
f l e x A l i gn C e n t er T o p,
f l e x A l i gn C en t er C en t er ,
f l ex A l i gn C en t er B o t t o m ,
f l e x A l i gn R i gh t T o p, f l e x A l i gn R i gh t C e n t e r , f l e x A l i g n R i gh t B o t t o m a n d f l e x A l i gn G en er a l .
E . g. :
F l e x . F i x e d A l i gn m e n t ( 1 ) = f l e x A L i gn R i gh t T o p
F i x e dC o l s , F i x e dR o w s : - U s e t h e s e p r o p e r t i e s t o r e a d o r s et t h e n u m b e r o f f i x e d r o w s o r c o l u m n s o n
t h e l e f t a n d t o p o f a gr i d. F i x e d R o w s a n d C o l u m n s a r e t y pi c a l l y u s e d f o r h e a di n g s.
Syntax
O b j e c t . F i x e dC o l s = c o l u m n s
O b j e c t . F i x e dR o w s = R o w s
E . g. :
Flex.FixedCols=1
F l e x . F i x e dR o w s = 1
F o r e C o l o r , F o r e C o l o r F i x e d, F o r e C o l o r S el , C e l l F o r e C o l o r : - U s e t h es e pr o p er t i es t o s et t h e t ex t o r
f o r e g r o u n d c o l o r o f gr i d e l e m e n t s . A l l t h e p r o p er t i e s ex c e pt C e l l F o r ec o l o r a r e a v a i l a bl e a t d e si g n
t i m e ; C e l l F o r e C o l o r i s o n l y a v a i l a bl e a t r u n t i m e. T h e F o r e C o l o r p r o p e r t y s et s t h e t e x t c o l o r o f
n o n f i x e d c e l l s . T h e F o r e C o l o r S e l pr o p e r t y s et s t h e t ex t c o l o r o f t h e s e l ec t i o n . T h e F o r eC o l o r F i x e d
s e t s t h e f o r e gr o u n d c o l o r o f f i x e d r o w s a n d c o l u m n s o f t h e g r i d. T h e C el l F o r e C o l o r p r o p er t y c a n b e
u s e d t o c h a n g e t h e t e x t c o l o r o f t h e c u r r en t c el l , w h i c h i s i n di c a t e d b y R o w a n d C o l pr o p er t i e s.
Syntax
Object.ForeColor=color
O b j e c t . F o r e C o l o r F i x e d= c o l o r
Object.ForeColorSel=color
Object.CellForeColor=color
T h e d i f f e r e n t C o l o r a r gu m e n t s a r e v bB l a c k , v b B l u e, v bC y a n , v bG r ee n , v bM a g en t a , v bR e d, v bW h i t e,
v b Y e l l o w , & H B B G G R R o r R G B ( r , g, b)
NetScape COMPUTER ACADEMY
83
E . g. :
Private Sub Form_Load( )
F l e x . F o r e C o l o r = v bR e d
F l e x . F o r e C o l o r F i x e d = v bC y a n
F l e x . F o r e C o l o r S e l = v bG r e e n
Flex.CellForeColor = vbBlue
End Sub
G r i d L i n e s , G r i dL i n e s F i x e d: - U s e t h e s e pr o p er t i e s t o r e a d o r s et t h e st y l e o f a g r i d’ s g r i d l i n e s i n t h e
n o n f i x e d a n d f i x e d c e l l s . G r i d l i n e s a r e t h e l i gh t gr a y l i n e s t h a t v i su a l l y s e pa r a t e i n di v i du a l c e l l s .
Syntax
Object.GridLines=linestyle
O b j e c t . G r i d L i n e s F i x e d= l i n e s t y l e
L i n e s t y l e a r gu m e n t
f l e x G r i dR a i s e d .
E . g. :
has
the
values
f l ex G r i d N o n e,
f l ex G r i d F l a t
(Default),
f l e x G r i dI n s et ,
and
Private Sub Form_Load()
F l e x . G r i d L i n e s = f l e x G r i dN o n e
F l e x . G r i d L i n e s F i x e d= f l e x G r i dR a i s e d
End Sub
G r i d L i n e W i d t h : - U s e t h i s p r o p e r t y t o s et t h e si z e o f l i n e s b et w e en t h e gr i d c e l l s i n a gr i d. T h i s
pr o p e r t y i s a v a i l a bl e a t d e s i gn t i m e a n d i s r e a d a b l e a n d w r i t a bl e a t r u n t i m e. T h e w i dt h i s s p ec i f i ed
in pixels.
Syntax
O b j e c t . G r i d L i n e W i d t h = w i dt h
E . g. :
F l e x . G r i d L i n e W i dt h = 7
M o u s e C o l , M o u s e R o w : - U s e t h e s e pr o p er t i e s t o r e a d t h e c el l t h e m o u s e po i n t er i s c u r r e n t l y o v e r .
T h e s e p r o pe r t i e s a r e o n l y a v a i l a bl e a t r u n t i m e .
Syntax
E.g.:
Object.MouseCol=column
Object.MouseRow=Row
Private Sub Flex_Click()
Text1.Text=”Row” & Flex.Row
Text2.Text=”Col” & Flex.Col
End Sub
R e m o v e I t e m : - T h e R e m o v e I t e m m e t h o d d e l et e s a n i t em f r o m t h e l i s t i n a gr i d. T h i s m et h o d d e l e t e s
t h e r o w i n d i c a t e d b y i n d e x n u m b e r a r gu m en t f r o m a gr i d. W h en a n i t e m i s r e m o v e d f r o m t h e g r i d,
t h e i n d e x n u m b e r o f t h e e a c h e n t r y i n t h e l i st f o l l o w e d t h e r em o v ed i t e m i s dec r e m en t e d. T h e r o w s
pr o p e r t y f o r t h e c o n t r o l i s a l s o de c r e m en t e d.
Syntax
E . g. :
Object.RemoveItem Index
P r i v a t e S u b C m dR e m o v e R o w _ C l i c k ( )
Flex.RemoveItem Flex.Row
End Sub
S e l e c t i o n M o d e : - T h i s p r o p e r t y r e a d s o r se t s w h et h e r a n y c e l l r a n ge c a n b e s el ec t e d; o n l y r o w s c a n
b e s e l e c t e d, o r o n l y c o l u m n s c a n b e s el ec t e d.
Syntax
Object.SelectionMode=mode
T h e M o d e a r gu m e n t
flexSelectionByColumn.
has
the
value
f l ex S e l ec t i o n F r e e
( D ef a u l t ) ,
f l ex S e l ec t i o n B y R o w ,
and
E . g. :
F l e x . S e l e c t i o n M o de = f l e x S e l e c t i o n B y R o w
T e x t : - T h e T e x t pr o p e r t y i s u s e d t o r ea d o r s e t t h e t ex t o f t h e c u r r en t c e l l en t r y i n a g r i d. T h e
a c t i v e c e l l i s s e t w i t h t h e R o w a n d C o l p r o p e r t i e s.
Syntax
Object.Text=Textstring
NetScape COMPUTER ACADEMY
E . g. :
84
P r i v a t e S u b C m d A d d_ C l i c k ( )
Flex.Row=2
Flex.Col=3
Flex.Text=Text1.Text
End Sub
T e x t M a t r i x : - R e t u r n s o r s e t s t h e t e x t c o n t en t s o f a n a r b i t r a r y c e l l . T h i s pr o p er t y a l l o w s y o u t o s et
o r r e t r i e v e t h e c o n t e n t s o f a c e l l w i t h o u t c h a n g i n g t h e R o w a n d C o l p r o pe r t i e s.
Syntax
O b j e c t . T e x t M a t r i x ( r o w i n d e x , c o l i n d ex ) [ = st r i n g]
R o w i n d e x , C o l i n d e x a r e I n t e ge r , t h a t s pec i f i e s w h i c h c e l l t o r e a d o r w r i t e .
S t r i n g i s a s t r i n g e x pr e s s i o n c o n t a i n i n g t h e c o n t en t s o f a n a r bi t r a r y c e l l .
E . g. :
Flex.TextMatrix(1,1)=234
T e x t S t y l e , T e x t S t y l e F i x e d, C e l l T e x t S t y l e: - U s e t h e s e p r o pe r t i e s t o r ea d o r s et t h e s t y l e o f t h e t ex t
w i t h i n a g r i d’ s c e l l s . T h e T e x t S t y l e a f f ec t s t h e a p p e a r a n c e o f t h e t ex t w i t h i n t h e n o n f i x ed R o w s.
T h e T e x t S t y l e F i x e d pr o p e r t y r e a d s o r se t s t h e s t y l e o f a l l f i x e d R o w s. T h e C e l l T e x t S t y l e pr o p e r t y
r e a ds o r s e t s t h e s t y l e o f t h e a c t i v e c el l d e si gn a t e d b y t h e C o l a n d R o w p r o p er t i e s.
Syntax
Object.TextStyle=Textstyle
O b j e c t . T e x t S t y l e F i x e d= T e x t s t y l e
Object.CellT extStyle=Textstyle
The
Textstyle
a r gu m e n t
has
the
values
f l e x T e x t R a i s e d L i gh t , a n d f l e x T e x t I n s e t L i gh t .
f l e x T ex t F l a t ,
f l e x T ex t R a i se d,
f l ex T e x t I n s et ,
E . g. :
P r i v a t e S u b C m dS t y l e _ C l i c k ( )
F l e x . T e x t S t y l e = f l e x T e x t R a i s ed
F l e x . T e x t S t y l e F i x e d= f l e x T ex t I n s et
Flex.Row=2
Flex.Col=2
F l e x . C e l l T e x t S t y l e = f l e x T ex t R a i se d L i gh t
End Sub
W o r dW r a p: - T h e W o r dW r a p pr o p e r t y r e a ds o r s et s w h et h e r t h e t ex t w i t h i n t h e a c t i v e c el l sh o u l d
w r a p w i t h i n t h e c e l l i f i t ’ s l o n g e r t h a n t h e c e l l i s w i d e.
Syntax
E . g. :
O b j e c t . W o r dW r a p= B o o l e a n
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Flex.Col=2
Flex.Row=2
F l e x . T e x t = ” I n di a n C o m p u t e r E du c a t i o n ”
F l e x . W o r dW r a p= T r u e
End Sub
NetScape COMPUTER ACADEMY
85
Chapter 16
Building Classes and Collections
O b j e c t O r i e n t e d pr o gr a m m i n g ( O O P ) i s n o t h i n g n ew , o n l y n o w a r e t h e m a i n st r e a m t o o l s su c h a s
V I S U A L B A S I C r e a l l y i n t e gr a t i n g i t s c o n c e pt s. O O P i s r ea l l y n o t h i n g m o r e t h a n t r a n s l a t i n g r e a l w o r l d bu s i n es s c o n c e pt s i n t o l o gi c a l e n t i t i e s t h e c o m pu t er c a n u n d e r s t a n d.
I n V I S U A L B A S I C , o b j e c t s h a v e t h r e e m a j o r c o m p o n en t s

Properties
P r o p e r t i e s a r e l i k e t h e f i el d s o f a u s er - d ef i n e d t y p e. T h e y c o n t a i n d a t a a b o u t
t h e o bj e c t . P r o p e r t y p r o c e du r e s p r o v i de c o n t r o l l e d a c c e ss t o d a t a st o r e d w i t h i n a n o bj ec t .

Methods
T h e s e a r e a c t i o n s t h a t a r e a s so c i a t ed w i t h t h e o bj ec t . Y o u m a y h a v e a P r i n t
o r S a v e m e t h o d, f o r i n s t a n c e . M e t h o d s o p er a t e o n t h e d a t a i n a n o b j ec t .

Events
Y o u c a n d e f i n e a n d t r i g g er ev en t s o n o b j ec t s, i n m u c h t h e s a m e w a y c o n t r o l s
a n d f o r m s r e c e i v e e v e n t s a s t h e u s er do es v a r i o u s o pe r a t i o n s.
T h e s e m a j o r c o m po n e n t s c a n a l s o b e f u r t h er su b di v i d e d i n t o t w o gr o u p s.


Public
Private
T h e e n t i r e a p pl i c a t i o n c a n a c c e s s t h e pr o p er t y , m et h o d, o r e v en t .
O n l y t h e o bj e c t i t se l f c a n a c c e s s t h e pr o p er t y , m et h o d o r e v en t .
B e s i d e s h a v i n g s i n gl e o bj e c t , y o u c a n a l so c r e a t e f r o u p s o f o b j ec t s . T h e s e gr o u p s a r e c a l l e d
C o l l e c t i o n s . A n u m b e r o f c o l l e c t i o n s a r e bu i l t i n t o t h e V I S U A L B A S I C l a n gu a g e a n d o bj ec t m o d el ,
s u c h a s t h e C o n t r o l s a n d F o r m s c o l l ec t i o n s. C o l l ec t i o n n a m e s a r e u su a l l y t h e s a m e a s t h e i r
c o m po n e n t o b j e c t ’ s n a m e m a d e i n t o a p l u r a l .
O b j e c t O r i e n t e d P r o gr a m m i n g a l s o pr o v i de s a n u m b er o f a dv a n t a g e s o v er r e gu l a r pr o g r a m m i n g. T h e
f i r s t i s t h a t b u s i n e s s l o g i c c a n b e e n c a psu l a t e d w i t h i n a n o b j ec t . F o r i n s t a n c e, i f y o u d ec i d e t h a t a
v a r i e t y o f v a l i d a t i o n s n e e d t o b e do n e o n da t a , y o u c a n pu t t h a t v a l i d a t i o n c o d e w i t h i n t h e o bj e c t .
T h e o bj e c t c a n c a u s e a n e r r o r t o o c c u r i f t h e d a t a i s i n v a l i d.
E n c a p s u l a t i o n i s a l s o s o m e t i m e s c a l l e d da t a h i d i n g. B ec a u se o b j ec t s c o n t r o l a c c e ss t o t h e d a t a
w i t h i n t h e m s e l v e s , t h e da t a i n e a c h o bj ec t i s e s se n t i a l l y h i dd en f r o m o t h e r c o d e. N o r m a l l y , e a c h
c l a s s h a s a s e r i e s o f pr o p e r t y pr o c e du r e s, w h i c h a r e p i ec e s o f c o d e u s ed t o r e t r i e v e a n d m o di f y t h e
h i d d e n v a l u e s i n a n o b j e c t , a c c o r d i n gl y . I f a v a l u e i n a n o bj ec t i s n o t m e a n t t o b e m o di f i e d, i t i s
d e f i n e d a s pr i v a t e a n d n o t m o d i f i e r i s pr o v i d e d. A c c e s so r s c a n b e de s i g n e d t o r et u r n di f f e r e n t t y p es
o f d a t a . F o r i n s t a n c e , a v a l u e s t o r e d a s a da t e v a r i a b l e c o u l d b e r e t u r n e d a s a f o r m a t t e d t ex t s t r i n g
o r e v e n i n a n o t h e r u n i t , s u c h a s d a y s o r h o u r s.
A n o t h e r f e a t u r e o f O O P i s P o l y m o r ph i sm . I t i s a f a n c y w o r d f o r r ea l l y si m p l e c o n c e pt . B o t h a c a r
a n d a t r u c k c a n be dr i v e n , pa r k e d, a n d r e p a i r e d. A s a pr o gr a m m e r , y o u do n ’ t h a v e t o w o r r y a bo u t
w h e t h e r t h e o b j e c t i s a c a r o r a t r u c k - y o u j u s t h a v e t o k n o w i t i s a v eh i c l e t h a t su p po r t s t h e dr i v e,
pa r k , a n d r e pa i r m e t h o d s .
O n e c o m m o n f e a t u r e n o t s u p po r t e d i n V I S U A L B A S I C i s i n h e r i t a n c e. I n h er i t a n c e a l l o w s y o u t o s et
u p p a r e n t - c h i l d r e l a t i o n s h i p s b e t w e e n c l a ss e s. A c h i l d c l a s s c o n t a i n s a l l t h e s a m e pr o p er t i e s,
m e t h o ds a n d e v e n t s o f i t s p a r e n t . I t c a n a dd o r m o d i f y t h o s e c l a s s m em b er s a s i t s e e s f i t .
Building a Simple Class
L e t s e x pl a i n t h e C l a s s u s i n g t h e f o l l o w i n g C u s t o m er C l a s s
This class has the properties shown below
Property
Data Type
Description
Custname
C o m pa n y
A d dr e s s
Phone
String
String
String
String
C u s t o m er N a m e
C o m pa n y N a m e
A d dr e s s o f C u st o m e r
Phone Number
T o s t a r t bu i l d i n g y o u r c l a s s , f o l l o w t h es e st e p s:



I n a S t a n d a r d E x e P r o j e c t , a d d a N ew C l a s s M o du l e.
S e t t h e n a m e o f c l a s s t o C c u st o m e r . C l a s s n a m e s a r e n o r m a l l y pr ef i x e d w i t h a C t o h e l p
di s t i n gu i s h t h e m f r o m o t h e r d a t a t y p e s.
T h e f i r s t i t e m t o a d d t o t h e C l a s s m o du l e a r e t h e v a r i a b l e s t h a t r e p r e s en t e a c h o f t h e
pr o p e r t i e s o f t h e c l a s s . T h e s e a r e pr i v a t e v a r i a b l e s t h a t a r e h i d d en f r o m v i ew b y t h e c l a s s.
A d d t h e c o de f r o m t h e f o l l o w i n g i n D ec l a r a t i o n s ec t i o n o f y o u r c l a ss m o d u l e.
O p t i o n E x pl i c i t
Private
Private
Private
Private
mvarCustname As String
m v a r C o m pa n y A s S t r i n g
m v a r A d dr e s s A s S t r i n g
mvarPhone As String
NetScape COMPUTER ACADEMY

86
E a c h m e m b e r v a r i a b l e i s de s i g n e d t o b e r e t r i e v e d a n d m o d i f i e d u si n g P r o p er t y p r o c e du r es.
Y o u c a n bu i l d p r o pe r t y pr o c e du r e s c o r r e s po n di n g t o ea c h v a r i a bl e u si n g a n A c c e s so r a n d
M o di f i e r . T h e P r o pe r t y G e t a n d P r o p e r t y L e t s u br o u t i n e s a r e s p ec i a l l y bu i l t f o r h a n d l i n g
p r o p e r t y a c c e s s a n d m o di f i c a t i o n . T h e f o l l o w i n g l i st c r e a t e s a c c e sso r a n d m o di f i er f o r e a c h
v a r i a bl e i n C c u s t o m e r C l a s s .
P u bl i c P r o p e r t y L et C u s t n a m e ( B y V a l sI n pu t A s S t r i n g )
m v a r C u s t n a m e= sI n pu t
End Property
P u bl i c P r o p e r t y G e t C u st n a m e ( )
C o m pa n y = m v a r C u s t n a m e
End Property
P u bl i c P r o p e r t y L et C o m pa n y ( B y V a l sI n pu t A s S t r i n g )
m v a r C o m pa n y = sI n pu t
End Property
P u bl i c P r o p e r t y G e t C o m pa n y ( )
C o m pa n y = m v a r C o m pa n y
End Property
P u bl i c P r o p e r t y L et A d dr e ss ( B y V a l sI n p u t A s S t r i n g )
m v a r A d dr e s s= s I n pu t
End Property
P u bl i c P r o p e r t y G e t A d dr e ss ( )
A d dr e s s = m v a r A d dr e ss
End Property
P u bl i c P r o p e r t y L et P h o n e ( B y V a l s I n pu t A s S t r i n g )
m v a r P h o n e= sI n pu t
End Property
P u bl i c P r o p e r t y G e t P h o n e ( )
Phone=mvarPhone
End Property

N o w t h a t y o u h a v e a w a y t o m o d i f y t h e o bj ec t ’ s da t a , y o u c a n a d d a d di t i o n a l m et h o d s t o
pr o v i d e m o r e s e r v i c e s . T h e s e m et h o d s a r e e s se n t i a l l y i d en t i c a l t o P r o p er t y pr o c e du r e s. T h e
f o l l o w i n g m e t h o d r e t u r n s T r u e i f a l l t h e r e qu i r ed v a l u es h a v e b e en se t .
P u bl i c F u n c t i o n I sV a l i d( ) A s B o o l ea n
D i m bv a l i d A s B o o l e a n
bv a l i d= T r u e
bv a l i d= bv a l i d a n d m v a r C u st n a m e < > “ ”
bv a l i d= bv a l i d a n d m v a r A d dr e ss < > “ ”
bv a l i d= bv a l i d a n d m v a r C o m p a n y < > “ ”
I s V a l i d= b v a l i d
End Function
T y pi c a l l y , P r o pe r t y pr o c e du r e s a r e o n l y u s e d f o r a c c e s si n g a n d m o d i f y i n g m em b er
v a r i a bl e s . I n a d di t i o n , P r o p e r t y p r o c e du r e s c a n n o t a c c e p t a d di t i o n a l a r gu m en t s. F o r
i n s t a n c e , P r o p e r t y L e t p r o c e du r e s a r e d e si gn e d t o be c a l l ed a s f o l l o w s
Customer.Custname=”ICES”
T h i s c o d e c a l l s t h e P r o p e r t y L e t P r o c ed u r e c a l l e d C u st n a m e. I n t h i s c a l l , n o l o g i c a l
pl a c e
i s a v a i l a bl e f o r a dd i t i o n a l p a r a m e t e r s . I f y o u n e e d m o r e pa r a m et er s, y o u h a v e t o u s e su br o u t i n e s
a n d f u n c t i o n s ; t h e y c a n a c c e p t a n y n u m b er o f p a r a m e t e r s.
Using Classes in Code and Forms
T h e f o l l o w i n g pr o j e c t w i l l s h o w y o u h o w t o u s e y o u r C u st o m e r o bj ec t w i t h a f o r m de s i g n e d
t o m a n i pu l a t e i t . Y o u ’ l l u s e t h e o b j e c t t o do so m e f r o m d a t a v a l i d a t i o n u si n g t h e I sV a l i d ( ) m e t h o d
y o u b u i l t . T h i s f e a t u r e d e m o n s t r a t e s en c a ps u l a t i o n o f bu s i n e s s l o gi c w i t h i n t h e C u st o m e r o b j e c t .
I n s t e a d o f pu t t i n g t h e l o gi c i n t h e f o r m , y o u l e t t h e o b j ec t d e t e r m i n e i f i t s d a t a i s v a l i d. C r ea t e a
f o r m w i t h f o l l o w i n g c o n t r o l s a n d pr o p er t i e s
NetScape COMPUTER ACADEMY
Control
Property
va l u e
Form
Name
BorderStyle
f r m E d i t C u s t o m er
3-Fixed Dialog
TextBox
TextBox
TextBox
TextBox
Command Button
Name
Name
Name
Name
Name
C a pt i o n
Name
C a pt i o n
Cancel
t x t C u st N a m e
txtAddress
txtCompany
txtPhone
c m dO K
OK
c m dC a n c e l
C a n c el
True
Command Button

87
N o w y o u h a v e t o bu i l d bo t h A d d( ) a n d E di t ( ) m et h o d f o r t h i s f o r m . Y o u ’ l l a l so n e ed t o
d e c l a r e a n i n s t a n c e o f C C u s t o m er C l a s s
Form Declaration Section
D i m C u r r e n t C u s t o m e r A s C C u st o m er
P u bl i c F u n c t i o n A D D ( ) A s C C u st o m e r
S e t C u r r e n t C u s t o m er = N e w C C u st o m er
M e . S h o w v bM o da l
S e t A d d= C u r r e n t C u st o m er
Unload Me
End Function
P u bl i c F u n c t i o n E d i t ( O b j C u st o m e r A s C C u s t o m er )
S e t C u r r e n t C u s t o m er = O bj C u st o m e r
t x t C u s t n a m e . T e x t = C u r r e n t C u st o m er . C u s t N a m e
t x t A d d r e s s . T e x t = C u r r en t C u s t o m er . A d d r e s s
t x t C o m p a n y . T e x t = C u r r e n t C u st o m er . C o m pa n y
t x t P h o n e . T e x t = C u r r en t C u st o m er . P h o n e
M e . S h o w v bM o da l
Unload Me
End Function
T h i s c o d e w i l l e i t h e r c r e a t e a n e w o bj ec t o r l o a d t h e d a t a f r o m a n ex i st i n g o b j ec t i n t o t h e f i e l ds o n
the form.
T h e n e x t c o de y o u n e e d t o a d d t a k e s c a r e o f u p da t i n g e a c h o f t h e o bj ec t ’ s pr o p er t i e s a s t h e u s er
c h a n g e s d a t a o n t h e f o r m . E a c h t e x t bo x e s c h a n g e ev en t a l so c a l l s a n e w su br o u t i n e t h a t c h ec k s t o
s e e i f d a t a c a n b e s a v e d y e t . T h e f o l l o w i n g l i st s t h e c o d e t o a d d.
Private Sub CheckOKButton ( )
C m dO K . E n a b l e d= C u r r en t C u s t o m er . I s V a l i d
End Sub
P r i v a t e S u b t x t C u s t n a m e _ c h a n g e( )
C u r r e n t C u s t o m e r . C u s t n a m e= t x t C u st n a m e. T e x t
CheckOKButton
End Sub
P r i v a t e S u b t x t C o m pa n y _ c h a n g e( )
C u r r e n t C u s t o m e r . C o m pa n y = t x t C o m pa n y . T e x t
CheckOKButton
End Sub
P r i v a t e S u b t x t A d dr e s s _ c h a n g e( )
C u r r e n t C u s t o m e r . A d dr e s s= t x t A d dr e s s. T ex t
CheckOKButton
End Sub
P r i v a t e S u b t x t P h o n e _ c h a n ge ( )
C u r r e n t C u s t o m e r . P h o n e = t x t P h o n e. T e x t
CheckOKButton
End Sub
NetScape COMPUTER ACADEMY

88
T h e o n l y o t h e r c o d e r e q u i r e d t o m a k e t h i s f o r m w o r k i s a su br o u t i n e t h a t c a l l s ei t h er A d d( )
o r E di t ( ) m e t h o d o f t h e f o r m . T h i s i s, o f c o u r s e, j u st f o r t e s t i n g, bu t y o u n e e d a w a y t o t r y
o u t y o u r w o r k . A d d a n e w F o r m t o y o u r p r o j ec t by c h o o si n g P r o j ec t > A d d > F o r m . A d d T w o
c o m m a n d bu t t o n s n a m e l y c m dA D D a n d c m dE di t .
A d d t h e f o l l o w i n g c o d e i n t h e n ew f o r m .
O p t i o n E x pl i c i t
D i m O bj C u s t o m e r A s C c u st o m e r
P r i v a t e S u b c m dA d d_ C l i c k ( )
S e t O b j C u s t o m e r = f r m E d i t C u st o m e r . A d d
End Sub
P r i v a t e S u b c m dE d i t _ C l i c k ( )
F r m E d i t C u s t o m e r . E di t O bj C u st o m e r
End Sub

M a k e t h e n e w f o r m a s y o u r s t a r t u p o bj ec t f r o m P r o j ec t > P r o p er t i e s a n d r u n t h e P r o j ec t .
Building Collections
A s w i t h m o s t c o m pu t e r pr o gr a m s a n d d a t a b a s e s, v e r y f ew c a s e s o c c u r i n w h i c h y o u ’ l l b e
d e a l i n g w i t h a s i n g l e o b j e c t o r r e c o r d . I n m o s t c a s e s, y o u ’ l l n e e d t o w o r k w i t h a gr o u p o f o b j e c t s
t o g e t h e r a s a u n i t . A l t h o u gh y o u c o u l d c r ea t e a n a r r a y o f a p a r t i c u l a r c l a s s, a r r a y s c a n n o t h a v e
c o d e a s s o c i a t e d w i t h t h e m . H o w e v e r , b y bu i l di n g a c o l l ec t i o n c l a s s, y o u c a n c o m b i n e y o u r o bj e c t s
w i t h a s s o c i a t e d c o de . F o r i n s t a n c e , y o u m a y h a v e c o d e t o a d d a n ew o bj ec t t o t h e c o l l ec t i o n o r t o
r e t r i e v e t h e n u m b e r o f o bj e c t s c u r r e n t l y b ei n g st o r e d.
A c o l l e c t i o n c l a s s i s bu i l t u s i n g a r e gu l a r c l a s s m o du l e - n o s p ec i a l c o l l e c t i o n c l a s s ex i s t s. A s y o u ’ l l
s o o n s e e , t h e c o l l e c t i o n ’ s po w e r i s i n i t s pr o p er t i e s a n d m et h o d s. T o d em o n s t r a t e h o w c o l l ec t i o n s
i n t e r a c t w i t h c l a s s e s , t h e f o l l o w i n g l i s t sh o w s t h e c o d e f o r a n ew c l a ss n a m e d C c o n t a c t , w h i c h
c o n t a i n s a d dr e s s i n f o r m a t i o n a bo u t a pa r t i c u l a r p er so n
O p t i o n E x pl i c i t
Private
Private
Private
Private
msCustName As String
m s A d dr e s s A s S t r i n g
msCity As String
msState As String
P u bl i c P r o p e r t y L e t C u s t N a m e ( B y V a l v D a t a A s S t r i n g )
msCustName=vData
End Property
P u bl i c P r o p e r t y G e t C u s t N a m e ( ) A s S t r i n g
CustName=msCustName
End Property
P u bl i c P r o p e r t y L e t A d dr e s s ( B y V a l v D a t a A s S t r i n g )
m s A d dr e s s = v D a t a
End Property
P u bl i c P r o p e r t y G e t A d dr e s s ( ) A s S t r i n g
A d dr e s s = m s A d dr e s s
End Property
P u bl i c P r o p e r t y L e t C i t y ( B y V a l v D a t a A s S t r i n g )
msCity=vData
End Property
P u bl i c P r o p e r t y G e t C i t y ( ) A s S t r i n g
City=msCity
End Property
P u bl i c P r o p e r t y L e t S t a t e ( B y V a l v D a t a A s S t r i n g )
msState=vData
End Property
P u bl i c P r o p e r t y G e t S t a t e ( ) A s S t r i n g
State=msState
End Property
NetScape COMPUTER ACADEMY
89
T h i s i s a f a i r l y s i m p l e c l a s s w i t h a f e w s t r i n g pr o p er t i e s a n d t h e a sso c i a t e d a c c e s so r s / m o di f i er s t o
r e a d a n d m o di f y t h e da t a i n t h e o b j e c t . A l t h o u g h t h e c o de f o r t h i s c l a ss c a n b e bu i l t w i t h t h e C l a ss
Builder included with VISUAL BASIC.
E a c h c o l l e c t i o n c l a s s n e e d t o s u p po r t se v er a l s t a n d a r d pr o p er t i e s a n d m e t h o ds. T h es e p r o p e r t i e s
and methods are shown below
Name
Type
Description
Add
Count
Item
Method
Property
Property
NewEnum
Property
Remove
Method
A d d s a n ew o bj ec t t o t h e c o l l ec t i o n
R e t u r n s t h e n u m b er o f o bj ec t s i n t h e c o l l ec t i o n
R e t u r n s a n o bj ec t f r o m t h e c o l l ec t i o n , b a s ed o n a n u m b er o r a
key value
A l l o w s c o d e t o i t e r a t e t h r o u g h a c o l l ec t i o n u s i n g a F o r Eac h
statement
R e m o v e s a s e l ec t e d i t em f r o m t h e c o l l ec t i o n
A l l t h i s c o d e w i l l b e a u t o m a t i c a l l y a d d e d a n d c u st o m i z ed w h en y o u c r ea t e a c o l l ec t i o n c l a s s b a s e d
o n a s i m pl e c l a s s l i k e C c o n t a c t . S t a n d a r d n a m i n g c o n v en t i o n s su g g e st t h a t c o l l ec t i o n c l a s s e s sh o u l d
b e n a m e d w i t h t h e pl u r a l o f s i m p l e c l a s s. F o r i n st a n c e, t h e c o l l ec t i o n c l a s s f o r C c o n t a c t w o u l d b e
C c o n t a c t s . T h e c o d e t h e c l a s s bu i l d e r b u i l t f o r t h e C c o n t a c t s c o l l ec t i o n c l a s s i s sh o w n i n f o l l o w i n g
list
O p t i o n E x pl i c i t
Private mCol as Collection
P u bl i c F u n c t i o n A d d( S t a t e A s S t r i n g, C i t y A s S t r i n g, A d dr e ss A s S t r i n g, C u st n a m e A s
S t r i n g, O p t i o n a l s K e y A s S t r i n g) A s C c o n t a c t
D i m O bj N e w M e m b e r A s C C o n t a c t
Set ObjNewMember=New CContact
ObjNewMember.State=State
ObjNewMember.City=City
O b j N e w M e m b e r . A d dr e s s = A d dr e s s
O b j N e w M e m b e r . C u s t N a m e= C u st N a m e
If Len(sKey) =0 Then
m C o l . A d d O b j N e w M em b e r
Else
m C o l . A d d O b j N e w M em b e r , sK e y
End If
End Function
P u bl i c P r o p e r t y G e t I t e m ( v n t I n d e x K e y A s V a r i a n t ) A s C C o n t a c t
Set Item=mCol(vntIndexKey)
End Property
P u bl i c P r o p e r t y G e t C o u n t ( ) A s L o n g
Count=mCol.Count
End Property
P u bl i c S u b R e m o v e ( v n t I n d e x K e y A s V a r i a n t )
mCol.Remove vntIndexKey
End Sub
P u bl i c P r o p e r t y G e t N e w E n u m ( ) A s I U n k n o w n
S e t N e w E n u m = m C o l . [ _ N ew E n u m ]
End Property
Private Sub Class_Initialize( )
Set mCol=New Collection
End Sub
Private Sub Class_Terminate( )
Set mCol=Nothing
End Sub
A C o l l e c t i o n i s r e s po n s i b l e f o r i n f o r m i n g t h e o b j ec t h o w t o l o a d i t s d a t a . I t
s i m p l y a d ds t h e o b j e c t t o t h e c o l l ec t i o n i n st e a d o f a c t u a l l y f i l l i n g e a c h o bj ec t i t s el f .
t h en
T h e A d d( ) m e t h o d i s d e s i gn e d t o a c c e pt a l l t h e pr o p er t y v a l u e s f o r a n ew C C o n t a c t o bj ec t . I t
c r e a t e s a n e w C C o n t a c t o bj e c t b y u s i n g t h e N ew k e y w o r d. I n c i de n t a l l y , u si n g t h e N ew k e y w o r d
c a u s e s t h e C C o n t a c t ’ s I n i t i a l i z e e v e n t t o f i r e. O n c e t h e n ew
o bj ec t h a s b ee n c r ea t e d, ea c h o f
t h e pr o p e r t i e s i s s e t .
O n c e t h e o b j e c t h a s b e e n c r e a t e d a n d f i l l e d, i t i s t h en a d d e d t o t h e c o l l ec t i o n . O b j ec t s a d d ed t o a
c o l l e c t i o n c a n h a v e a k e y v a l u e s e t f o r qu i c k r e t r i ev a l . T h e c o d e pr o v i d e d o n l y a d ds a k e y i f o n e
NetScape COMPUTER ACADEMY
90
w a s pr o v i d e d t o t h e A d d ( ) m e t h o d. A s y o u ’ l l se e w h en y o u bu i l d a c o l l ec t i o n b a se d o n a
da t a b a s e , t h e k e y v a l u e s h o u l d a l w a y s b e a d d e d t o en a bl e qu i c k r e t r i e v a l o f t h e i t em f r o m t h e
collection later. Keys cannot be
s t r i c t l y n u m e r i c v a l u e s, so i f y o u w i sh t o u s e s o m e u n i qu e I D
a s t h e b a s i s f o r t h e k e y v a l u e , y o u ’ l l n e e d t o a dd so m e t ex t t o i t a s w el l . F o r i n s t a n c e, y o u c a n ’ t
have a
k e y o f 1 5 , b u t y o u c a n h a v e a k ey o f I t e m 1 5 . T h i s i s si m p l y a r e qu i r e m en t o f t h e
collection object.
F i n a l l y , t h e n e w o bj e c t i s r e t u r n e d t o t h e c a l l i n g c o de. T h i s a l l o w s t h e c a l l e r t o u s e
t h e o b j ec t i n
w h a t e v e r w a y i s r e qu i r e d. T h a t ’ s r e a l l y a l l t h e r e i s t o t h e c o d e. T h e r e st o f t h e c o d e i s s i m pl y
r e t u r n i n g p r o p e r t i e s o f t h e c o l l e c t i o n o r r ei m p l e m en t i n g m e t h o ds o f t h e c o l l ec t i o n , su c h a s t h e
R e m o v e ( ) m e t h o d. T h e o n l y t r i c k y c o d e i s i n t h e N ew E n u m p r o p e r t y . T h i s c o d e sh o u l d ba s i c a l l y b e
l e f t a s i s . T h i s c o d e a l l o w s t h e F o r E a c h f e a t u r e t o w o r k c o r r ec t l y . A s e a c h o b j ec t i n t h e c o l l ec t i o n
is seen, For Each
c r e a t e s a n e n u m er a t i o n c o de t h a t t h e c o l l ec t i o n c a n i n t e r pr et . T h i s c o d e
pr o v i d e s t h i s f u n c t i o n a l i t y f o r y o u .
NetScape COMPUTER ACADEMY
91
Chapter 17
Structured Query Language(SQL)
SQL (structured Query Language)
S Q L i s a p r o gr a m m i n g l a n gu a ge , w h i c h i s ev o l v e d f r o m a n e a r l i er l a n gu a g e c a l l e d ‘ s e q u e l ’ . M o d er n
S Q L h a s b e c o m e a v e r y po w e r f u l s t a n d a r d da t a b a s e pr o g r a m m i n g l a n gu a g e. M S A c c e s s u t i l i s es
S Q L f o r i t s s t a n d a r d pr o gr a m m i n g l a n gu a g e a n d i t i s u s ed b y V I S U A L B A S I C t o m a n i p u l a t e a n d
modify the database.
T h e d i f f e r e n c e s b e t w e e n a c c e s s S Q L a n d m o st o t h er i m p l em en t a t i o n s a r e v er y m i n o r . O t h er
da t a b a s e s u s i n g S Q L a r e M S S Q L S e r v e r , O r a c l e , S y ba s e .
A c c e s s c o m e s w i t h a c o m p l e t e s e t o f S Q L f u n c t i o n a l i t y t h a t i n c l u de s a c o m p l e t e d a t a d e f i n i t i o n
l a n g u a g e ( D D L ) , D a t a m a n i p u l a t i o n l a n g u a g e ( D M L ) . I n V I S U A L B A S I C y o u c a n c r ea t e a n d u s e
S Q L s t a t e m e n t s w i t h i n y o u r pr o gr a m a s w e l l a s u s e s t o r e d q u e r i e s w i t h i n t h e d a t a ba s e i t s e l f .
Diff e re n t ty p es o f S QL : Q u e r i e s f a l l i n t o t w o gr o u p s ; t h e y a r e D D L , D M L . T h e D D L qu er i e s d ef i n e s o r a l t er s t h e st r u c t u r e o f
t h e d a t a b a s e , t h e D M L qu e r i e s a c t d i r ec t l y u po n t h e da t a c o n t a i n e d i n t h e d a t a b a s e. I n M S A c c e ss
t h e D D L t y p e o f qu e r i e s i n c l u d e C r e a t e , A l t e r , D r o p .
T h e D M L q u e r i e s i n c l u de S e l e c t , U p d a t e , I n s e r t a n d D e l e t e .
Q u e r i e s c a n b e f u r t h e r c l a s s i f i e d a s j o i n , u n i o n , p a r a m e t e r a n d o t h e r t y p e s d e p en di n g o n t h ei r
structures and uses.
T h e ba s i c s t r u c t u r e o f a S Q L qu e r y h a s t h r e e p a r t s:
1)
P a r a m e t e r d e c l a r a t i o n : - I n t h e c a se o f a pa r a m e t e r qu e r y , t h i s pa r t i s u s e d t o su p pl y t h e
n a m e a n d t y p e t h e pa r a m e t e r .
2)
M a n i p u l a t i v e S t a t e m e n t : - T h e m a n i pu l a t i v e s t a t em en t d ef i n e s t h e a c t i o n t h a t t h e qu er y i s t o
p e r f o r m u po n t h e da t a b a s e .
3)
O p t i o n D e c l a r a t i o n : - W i t h o w n e r o pt i o n , gi v e s t h e u s e r o w n er p er m i ss i o n s i n a sec u r e
environment.
DDL Queries : - D D L qu e r i e s a r e bu i l d u s i n g a n u m b er o f c o m m a n ds t h a t c a n c r ea t e, c h a n g e o r
r e m o v e s t r u c t u r e e l e m e n t s f r o m t h e da t a b a s e. T h e f o l l o w i n g l i st s t h e c o m m a n d s o f D D L qu e r y .
1 ) A l t e r t a b l e : - U s e d t o a l t e r ( c h a n g e ) t h e st r u c t u r e o f a n e x i st i n g t a bl e.
2 ) C r e a t e t a b l e : - U s e d t o c r e a t e t a bl e s i n a n ex i s t i n g da t a b a se .
3 ) C r e a t e i n d e x : - T o c r e a t e i n d e x e s f o r e x i st i n g t a b l e s.
4 ) D r o p t a b l e : - T o r e m o v e a t a b l e f r o m t h e d a t a ba s e.
5 ) D r o p i n d e x : - T o r e m o v e a n i n d e x o f a n e x i st i n g t a bl e. D D L qu er i e s n o t r e t u r n a n y r ec o r d s a n d
t h e r e f o r e a r e u s e d o n l y w i t h t h e e x ec u t e m e t h o d o f a d a t a ba s e o r qu er y D ef o bj ec t .
Cr ea t e qu e ri es : E . g. : -
Create table stock(item text(25), qty number).
T h i s qu e r y w o u l d c r e a t e a t a bl e i n t h e sp ec i f i e d da t a b a s e w i t h a n a m e “ s t o c k ” w i t h o n e t ex t
f i e l d s , a n d o n e n u m e r i c f i e l d.
Create Index ab on stock (item)
Al t er qu e ri es : T o m o di f y a c o l u m n :
Alter table stock modify column item text(30).
To add a column :
Alter table stock add column itcode text(10 )
Dr op Qu e ri es : drop table stock
drop index ab on stock
NetScape COMPUTER ACADEMY
92
DML Queries:D M L qu e r i e s p r o v i d e t h e m e a n s t o r e t r i e v e t h e R ec o r d s et s t o u pd a t e d a t a a n d a d d o r de l et e r ec o r d s
i n a t a bl e . T h e f o l l o w i n g l i s t s t h e c o m m a n d s o f D M L q u e r i e s.
S e l e c t : - C r ea t e s a r e c o r d s e t f r o m o n e o r m o r e t a b l e s t h a t sa t i sf y sp ec i f i c c r i t er i a .
I n s e r t : - T r a n s f e r s a ba t c h o f da t a i n t o t h e d a t a t a bl e
U p d a t e : - C h a n g e s t h e d a t a v a l u e s o f a p a r t i c u l a r s et o f r ec o r d s.
D e l e t e : - D e l e t e r e c o r d s f r o m a t a bl e .
S e l e c t Q u e r i e s : - I t i s t h e m o s t u s e d qu er y t y p e. Y o u r a p p l i c a t i o n w o u l d u s e t h e s el ec t qu er y t o
c r e a t e r e c o r d s e t s b a s e d o n o n e o r m o r e t a bl e s t h a t m e et t a bl e s t h a t m e et a pa r t i c u l a r c r i t e r i a .
Y o u r a p p l i c a t i o n c a n t h e n m a n i pu l a t e t h es e r e c o r d s et s u si n g t h e D a t a A c c es s O b j ec t s pr o p er t i e s
a n d m e t h o d s s u c h a s di s pl a y i n g, a d d i n g, e d i t i n g, a n d d el e t i n g r ec o r d s a s r e qu i r ed.
Syntax:SELECT [FIELD LIST] FROM [TABLE LIST] [WHERE (CONDITION)]GROUP BY [FIELD LIST] ORDER BY
[FIELD LIST]
W h e r e C l a u s e : - T h e W h e r e c l a u s e i s u s ed t o sp ec i f y t h e c r i t er i a f o r s el ec t i n g t h e r ec o r d s t o be
i n c l u d e d i n t h e r e s u l t i n g r e c o r d s e t . I f n o w h e r e c l a u s e i s u s ed, t h en a l l t h e r ec o r ds i n t h e t a bl e ( s)
w i l l b e r e t u r n e d. T h e c r i t e r i a r e q u i r e m e n t s i n t h e w h er e c l a u s e a r e v er y f l e x i bl e. Y o u c a n u s e u pt o
4 0 e x p r e s s i o n s l i n k e d b y l o g i c a l o p e r a t o r s i n y o u r w h er e c l a u s e. W h en u s i n g st r i n g s a s c r i t er i a , y o u
m u s t w r a p t h e m i n s i n gl e o r do u b l e qu o t e s a s i n t h e ex a m p l e s. D a t es r e qu i r e t h a t y o u w r a p t h em
in the “#” character.
Use the following operators with where clause
Like
Used for pattern matching
E . g. : - 1 ) S e l e c t * F r o m S t o c k W h er e I t e m L i k e ’ T * ’
will return any
c h a r a c t er ‘ T ’
item
with
first
2 ) S e l e c t * F r o m S t o c k W h er e I t e m L i k e ‘ * V ’ w i l l r e t u r n a n y i t e m w i t h l a st
c h a r a c t er ‘ V ’
3 ) S e l e c t * F r o m S t o c k W h er e Q t y L i k e 8 7 # # w i l l r e t u r n a n y q t y b et w e en
8700 and 8799
4 ) S e l e c t * F r o m S t o c k W h er e I t e m L i k e ‘ T ? ? ’
will return any item with
st a r t i n g c h a r a c t er ‘ T ’ a n d
m a x i m u m t h r e e c h a r a c t e r s.
5 ) S e l e c t * F r o m S t o c k W h er e N a m e L i k e “ S M [ E I Y ] T H ”
will match SMETH, SMETH, SMYTH
6 ) S e l e c t * F r o m A B C W h er e I t e m L i k e “ D R [ ! U ] G ”
w i l l m a t c h a l l c o m b i n a t i o n s ex c e pt D R U G
E qu a l t o ( = ) : - U s e t h i s o p e r a t o r f o r E x a c t m a t c h
E . g. :
S e l e c t * F r o m S t o c k W h e r e Q t y = 1 0 w i l l m a t c h a l l r ec o r d s h a v i n g qt y 1 0
N o t E qu a l t o ( < > , ! = ) : - U s e t h i s o p e r a t o r t o m a t c h a l l ex c e pt gi v en e x pr e ss i o n
E . g. :
Select * From Stock Where Qty <> 10
w i l l m a t c h a l l r ec o r d s h a v i n g
qt y n o t e qu a l t o 1 0
G r e a t e r t h a n ( > ) : - U s e t h i s o p e r a t o r t o m a t c h a l l r ec o r d s g r ea t er t h a n gi v en e x pr es s i o n
E . g. :
S e l e c t * F r o m S t o c k W h e r e Q t y > 1 0 w i l l m a t c h a l l r ec o r d s h a v i n g
qt y g r ea t er t h a n 1 0
G r e a t e r t h a n o r E qu a l t o ( > = ) : - U s e t h i s o pe r a t o r t o m a t c h a l l r ec o r d s g r e a t er t h a n o r e qu a l
t o g i v e n ex pr e s si o n
E . g. :
Select * From Stock Where Qty >=10
w i l l m a t c h a l l r ec o r d s h a v i n g
qt y g r ea t er t h a n o r e qu a l t o 1 0
L e s s T h a n ( < ) : - U s e t h i s o p e r a t o r t o m a t c h a l l r e c o r d s L e s s t h a n gi v en e x pr e s si o n
E . g. :
S e l e c t * F r o m S t o c k W h e r e Q t y < 1 0 w i l l m a t c h a l l r ec o r d s h a v i n g
qt y L e s s t h a n 1 0
L e s s t h a n o r e qu a l t o ( < = ) : - U s e t h i s o p e r a t o r t o m a t c h a l l r ec o r ds L e ss t h a n o r e qu a l t o gi v en
e x pr e s s i o n
E . g. :
Select * From Stock Where Qty<=10
w i l l m a t c h a l l r ec o r d s h a v i n g
qt y L e s s t h a n o r e qu a l t o 1 0
B e t w e e n : - U s e t h i s o p e r a t o r t o m a t c h n u m b e r s b et w e en t w o v a l u e s ( bo t h i n c l u d ed) .
E . g. :
S e l e c t * F r o m S t o c k W h e r e Q t y b et w e en 1 0 a n d 2 0
w i l l m a t c h a l l r e c o r d s h a v i n g qt y a n y n u m b e r b et w e en 1 0 a n d 2 0
NetScape COMPUTER ACADEMY
93
IN:- Matches a String within the Given Lis t
E . g. :
S e l e c t * F r o m S t o c k W h e r e I t em I N ( ‘ T V ’ , ‘ V C R ’ , ‘ V C P ’ )
Will match items ‘TV’, ‘VCR’ and ‘VCP’
N O T : - u s e N o t o p e r a t o r w i t h L i k e , B e t w e en a n d I N t o i n v er s e t h e l o gi c a l ex pr e s si o n
E . g. :
S e l e c t * F r o m S t o c k W h e r e I t em N o t L i k e ‘ T * ’
S e l e c t * F r o m S t o c k W h e r e I t em N o t I N ( ‘ T V ’ , ‘ V C R ’ , ‘ V C P ’ )
S e l e c t * F r o m S t o c k W h e r e I t em N o t B E T W E E N 1 0 a n d 2 0
E . g.
1)
2)
3)
4)
select
select
select
select
* from stock
item,qty from stock
i t e m , q t y f r o m s t o c k w h e r e i t e m = ’ t v’
i t e m , q t y f r o m s t o c k o r d e r by i t e m
D e l e t e Q u e r y : - u s e d t o de l e t e r e c o r d s f r o m a t a b l e
Syntax:- DELETE [FIELD LIST] FROM [TABLE LIST] [WHERE (CONDITION)]
E . g. : -
D e l e t e * f r o m t a b l e 1 w h e r e i t e m = ’ t v’
U p d a t e Q u e r i e s : - I n m a y c i r c u m s t a n c e s y o u w i l l w a n t t o do a ba t c h u p da t e o f n ew v a l u e s f o r
s pe c i f i e d f i e l d s . T o do t h i s y o u c a n u s e u pd a t e qu e r y . I t a l so su p po r t s a w h er e c l a u s e t o sp e c i f y
any conditions.
Syntax:- UPDATE TABLENAME SET <FIELD NAME>=VALUE WHERE <CONDITION>
E . g. : -
1)
2)
3)
4)
5)
Update
Update
Update
Update
Update
s t o c k s e t i t e m = ’ t v’
stock set qty=10 0
stock set amount=qty*price
e m p l o y e e s e t ba s i c = ba s i c + ba s i c * 1 0 / 1 0 0 w h e r e d e s i g = ” c l e r k ”
stock set qty=100,price=100, where item=”tv”
I n s e r t i n t o q u e r i e s : - T h e i n s e r t i n t o qu er y i s u se d t o a p pe n d n ew r ec o r d s t o t h e en d o f a n
e x i s t i n g t a b l e o r qu e r y a n d i s a l s o k n o w n a s a p p en d qu e r y .
S y n t a x : - I N S E R T I N T O < T A B L E N A M E > ( f i el d1 , f i el d2 , f i el d3 … ) v a l u e s ( v a l u e1 , v a l u e2 , v a l u e3 … )
E . g. : -
1)
2)
3)
I N S E R T I N T O S T O C K V A L UE S ( ‘ N E T S ’ , ‘ V C R’ , 1 0 , 5 0 0 0 , 5 0 0 0 0 )
I N S E R T I N T O S T O C K ( n a m e ,i t e m , q t y ) va l u e s ( ‘ a bc ’ ,’ t v’ ,1 0 0 )
Insert into STOCK select * from SALES
Advanced SQL
J oi ns
A J o i n i s a w a y t o c r e a t e a R ec o r d se t w i t h r e s u l t s f r o m t w o o r m o r e t a b l e s b a s e d o n t h e
r e l a t i o n s h i p b e t w e e n t h e m . T h e di f f e r en t t y p e s o f j o i n s a r e

In n e r J oi n

L e f t O u te r J oi n

Ri g h t O u te r J oi n
-
R et u r n s a r ec o r d o n l y w h er e t h er e a r e m a t c h i n g r ec o r d s i n
bo t h t a b l e s .
R et u r n s a r ec o r d f o r ev er y r ec o r d i n t h e f i r st t a b l e, w i t h N u l l s
f o r f i e l d s i n t h e s e c o n d t a b l e w h en t h er e a r e n o m a t c h i n g r ec o r d s.
R et u r n s a r ec o r d f o r e v er y r ec o r d i n t h e s ec o n d t a bl e, w i t h
N u l l s f o r f i e l d s i n t h e f i r s t t a bl e w h er e t h e r e a r e n o m a t c h i n g r ec o r d s.
In n er J oi ns
U s e t h e I N N E R J O I N s t a t e m e n t a n y t i m e y o u w a n t t h e R ec o r d se t t o o n l y h a v e a r ec o r d w h e n
t h e r e a r e m a t c h i n g r e c o r d s i n bo t h t a bl e s. T h e qu er y b el o w r et u r n s a l i st o f b o o k s a n d t h ei r
pu bl i s h e r s . I f t h e r e i s n o pu b l i s h e r l i s t e d f o r a bo o k , t h e R ec o r d s e t w i l l n o t h a v e a r ec o r d f o r t h a t
bo o k . L i k e w i s e , i f a pu b l i s h e r h a s n o bo o k s, t h er e w i l l n o t b e a r ec o r d i n t h e R ec o r d s e t f o r t h a t
pu bl i s h e r .
E . g. : - S e l e c t N a m e , T i t l e F r o m P u b l i s h er s I N N E R J O I N T i t l e s O N P u bl i sh e r s. P U B I D = T i t l e s. P U B I D
Ou t er J oi ns
A n O u t e r j o i n a l l o w s a qu e r y t o r et u r n a r ec o r d f o r a t a b l e , e v en i f t h er e i s n o m a t c h i n g
r e c o r d i n t h e o t h e r m e m b e r o f t h e j o i n . T h e di f f e r e n t t y pe s o f O u t er j o i n s d et er m i n e w h i c h o f t h e
t a bl e s a l w a y s h a s a r e c o r d i n t h e R e c o r d s et .
T h e L E F T O U T E R J O I N s t a t e m e n t a l w a y s r et u r n s a t l ea s t o n e r ec o r d f o r t h e f i r s t t a b l e i n t h e j o i n .
I f t h e r e a r e n o m a t c h i n g r e c o r d s i n t h e s ec o n d t a bl e, t h e f i e l d s f r o m t h e sec o n d t a b l e w i l l b e N u l l .
T h e f o l l o w i n g qu e r y r e t u r n s a l i s t o f pu bl i s h e r s a n d bo o k t i t l es. I f a pu bl i sh er h a s n o bo o k s i n t h e
T i t l e s t a bl e , t h e y w i l l h a v e a r e c o r d i n t h e r ec o r d se t , b u t t h e f i e l d o f t h e r ec o r d s et w i l l b e n u l l .
NetScape COMPUTER ACADEMY
E . g. : -
Select
Name,
Title
From
P u bl i s h e r s . P U B I D = T i t l e s . P U B I D
P u bl i sh er s
LEFT
94
OUTER
JOIN
Titles
on
T h e R I G H T O U T E R J O I N s t a t e m en t en su r e s t h a t t h er e w i l l a l w a y s b e a r e c o r d f o r t h e s ec o n d
t a bl e o f t h e j o i n , e v e n i f t h e r e i s n o m a t c h i n g r ec o r d i n t h e f i r st . T h e f o l l o w i n g qu er y i s
s i m i l a r t o t h e pr e v i o u s o n e ; h o w ev e r , t h i s qu er y w i l l r e t u r n a l l t i t l e s e v e n i f t h e y do n ’ t h a v e
a pu b l i s h e r l i s t e d. I f t h e r e i s a pu b l i sh e d w i t h n o bo o k s, t h e y w i l l n o t b e i n t h e r ec o r d s et .
E . g. : -
Select
Name,
Title
From
P u bl i s h e r s . P U B I D = T i t l e s . P U B I D
P u bl i sh e r s
RIGHT
OUTER
JOIN
Ti tles
on
Ne s te d J oi ns
i t i s p o s s i b l e t o n e s t j o i n s s o t h a t m a n y t a b l es c a n b e l i n k ed t o g et h er i n t h e R ec o r d se t . T h e
qu e r y b e l o w r e t u r n s a l i s t o f a u t h o r s , t h e bo o k s t h ey w o r k ed o n , a n d t h e i r p u b l i sh er s. I t
s t a r t s by j o i n i n g A u t h o r s t o T i t l eA u t h o r , t h en j o i n s t h a t s e t t o T i t l e s, a n d F i n a l l y b a c k t o
P u bl i s h e r s .
E . g. : -
S e l e c t A u t h o r , T i t l e , N a m e F r o m P u bl i sh e r s I N N E R J O I N ( T i t l e s I N N E R J O I N ( A u t h o r s I N N E R
J O I N T i t l e A u t h o r o n A u t h o r d. A U I D = T i t l eA u t h o r s. A U I D ) O N T i t l e s. I S B N = T i t l eA u t h o r . I S B N ) O n
P u bl i s h e r s . P U B I D = T i t l e s . P U B I D
S u b qu e ri es
A S u bqu e r y i s a s e l e c t s t a t e m e n t u s e d a s a p a r t o f t h e w h er e c l a u s e o f a n o t h e r S Q L st a t e m e n t . I t
a l l o w s y o u t o r e s t r i c t t h e r e s u l t s o f t h e m a i n q u er y ba s e d o n t h e r e su l t s o f t h e su b qu er y . T h e f i r s t
t y p e o f s u b qu e r y i s s i m pl y a c o m p a r i so n b et w e en a v a l u e a n d a su b qu er y t h a t r e t u r n s o n l y o n e
r e s u l t . T h e qu e r y b e l o w r e t r i e v e s t h e n a m e o f t h e pu b l i sh e r w i t h m o s t ex p en si v e bo o k . T h e
s u b qu e r y f i n d s t h e m a x i m u m pr i c e . T h e m a i n q u er y t h en g et s t h e pu b l i sh er o f t h e bo o k w h en t h e
bo o k ’ s pr i c e m a t c h e s t h e m a x i m u m .
E g: - S e l e c t N a m e F r o m P u bl i s h e r s A S P , T i t l e s A S T w h er e P . P U B I D = T . P U B I D a n d T . P r i c e= ( S e l ec t
MAX(Price) From Titles)
A s u b qu e r y c a n be u s e d t o c o m p a r e a v a l u e a g a i n s t a w h o l e s et o f v a l u e s. T h e A N Y , A L L , S O M E
s t a t e m e n t s m o d i f y a c o m p a r i s o n s o t h a t i t a pp l i e s t o a l l t h e r o w s i n t h e su b qu er y . F o r ex a m p l e, t h e
f i r s t qu e r y b e l o w do e s n ’ t m a k e s e n s e b ec a u s e t h e r e w o u l d be m o r e t h a n o n e r e su l t o f t h e
s u b qu e r y .
T h e n e x t q u e r y u s e s A L L s t a t e m e n t t o p er f o r m t h e c o m p a r i so n b et w e en pr i c e a n d a l l t h e r e su l t s o f
t h e s u b qu e r y . T h e qu e r y r e t u r n s a l i st o f bo o k s t h a t c o s t m o r e t h a n a l l t h e bo o k s pu bl i sh ed by
P U B I D 4 5 . A L L o r S O M E c o u l d b e u s e d t o r et u r n a l i s t o f bo o k s t h a t c o st m o r e t h a n a t l e a st o n e o f
t h e bo o k s pu b l i s h e d b y P U B I D 4 5 . A L L a n d S O M E a r e eq u i v a l en t .
E . g. : - S e l e c t T i t l e f r o m T i t l e s w h e r e P r i c e > A L L ( S el ec t P r i c e F r o m T i t l e s W h er e P U B I D = 4 5 )
A s u b qu e r y m a y be u s e d t o c h e c k m e m b er sh i p o r l a c k o f m em b er sh i p i n a gr o u p. T h e I N a n d N O T
I N s t a t e m e n t s a r e u s e d t o c h e c k i f a v a l u e i s c o n t a i n e d i n t h e r ew u l t s o f t h e su bq u e r y o r n o t
E . g. : - S e l e c t N a m e
Y e a r P u b l i s h e d= 2 0 0 0 )
From
Publishers
W h er e
PUBID
IN
( S e l ec t
PUBID
From
T i t l es
W h er e
T h e l a s t t y p e o f s u b qu e r y i s u s e d t o c h ec k w h e t h e r t h e r e a r e r e su l t s i n t h e su b q u e r y . T h e E X I S T S
a n d N O T E X I S T S s t a t e m e n t s e v a l u a t e T r u e o r F a l s e b a s e d o n w h et h er t h er e a r e a n y r ec o r ds i n t h e
s u b qu e r y . T h e f o l l o w i n g qu e r y i n s e r t s i n t o t h e T i t l e s t a b l e o n l y i f t h a t t i t l e do e s n o t a l r e a dy e x i st
in the table.
E . g. : - I n s e r t i n t o T i t l e s ( T i t l e , Y e a r P u b l i sh e d, P U B I D , I S B N ) S e l ec t “ V B 6 ” , 2 0 0 0 , 4 6 , ” W 1 2 3 ” F r o m
P u bl i s h e r s W h e r e P U B I D = 4 6 a n d N O T E X I S T S ( S el ec t T i t l e F r o m T i t l es W h er e T i t l e= ” V B 6 ” )
Cr os s ta b Q u er ie s
C r o s s t a b qu e r i e s e n a b l e y o u t o t a k e r es u l t s t h a t y o u n o r m a l l y g et u si n g a G r o u p B y a n d pi v o t t h em
s o t h e y a r e e a s i e r t o r e a d. A C r o s st a b qu er y h a s t w o pa r t s. T h e f i r s t pa r t , t h e T R A N S F O R M
s t a t e m e n t , s p e c i f i e s w h a t a g gr e ga t e f u n c t i o n t o u s e w h en po pu l a t i n g t h e f i e l ds o f t h e r ec o r d s et .
T h i s c o u l d be a n y o f t h e a g gr e g a t e f u n c t i o n s d i sc u s s e d e a r l i e r su c h a s S U M , C O U N T , M A X , M I N ,
A V G e t c . T h e f i e l d s i n t h e s e l e c t st a t em en t a r e t h e l ef t m o st f i e l d o f ea c h r ec o r d, w i t h t h e
a g g r e g a t e f u n c t i o n o f t h e T R A N S F O R M st a t e m e n t be i n g t h e r i g h t m o s t f i el d s. T h e s ec o n d p a r t o f t h e
c r o s s t a b qu e r y i s t h e P I V O T s t a t e m e n t , w h i c h s p ec i f i es t h e c o l u m n h e a di n g s t h a t w i l l b e a pp en d ed
t o t h e f i e l d s i n t h e S e l e c t s t a t e m e n t . I n t h e Q u er y b el o w , t h e c o l u m n s w i l l b e t h e n a m e o f t h e
P u bl i s h e r f o l l o w e d b y t h e y e a r s p u b l i s h e d. T h i s qu er y sh o w s a l i s t o f a l l pu b l i sh e r s a n d a c o u n t o f
t h e n u m be r o f bo o k s t h e y pu b l i s h e d i n ea c h y e a r .
E . g. : - T R A N S F O R M C o u n t ( * ) S e l e c t P . N a m e F r o m T i t l e s a s T , P u bl i s h e r s
T . P U B I D = P . P U B I D G r o u p B y P . N a m e P I V O T Y e a r P u bl i sh ed I N ( 1 9 9 2 , 1 9 9 3 , 1 9 9 4 , 1 9 9 5 )
as
P
w h er e
T R A N S F O R M a n d P I V O T : - T h e T r a n s f o r m a n d P i v o t s t a t em en t s a r e u s e d t o c r ea t e a c r o s s t a b q u er y
that is easier to read than a standard Group By.
Syntax:-
T R A N S F O R M a g go p s e l e c t P I V O T p i v o t f i el d
E . g. : -
T R A N S F O R M s u m ( Q t y ) S el ec t I t em F r o m S t o c k G r o u p B y I t em P i v o t P e r i o d
NetScape COMPUTER ACADEMY
95
Dis t in c tR o w F un c ti o n
T h e D I S T I N C T R O W f u n c t i o n f i l t e r s du p l i c a t e r o w s f r o m a r ec o r d s et . S o m e t i m e s w h en j o i n i n g
b e t w e e n t a b l e s , a qu e r y m a y r e t u r n du p l i c a t e e n t r i e s w h e n a l l t h a t ’ s n e e de d i s j u st o n e en t r y . F o r
e x a m p l e , t o g e t e a c h a u t h o r o n l y o n c e u se t h e D I S T I N C T R O W a s b el o w .
1)
S e l e c t D I S T I N C T R O W A u t h o r s. A u t h o r F r o m A u t h o r s I N N E R J O I N ( T i t l e s I N N E R J O I N
T i t l e A u t h o r O N T i t l e s . I S B N = T i t l e A u t h o r . I S B N ) O N A u t h o r s. A U I D = T i t l e A u t h o r . A U I D W h er e
Titles.PUBID=3
2)
S e l e c t D I S T I N C T R O W C u s t o m e r . C u s t n a m e F r o m C u s t o m er I N N E R J O I N O r d er O N
C u s t o m e r . C u s t I D = O r de r . C u s t I D
U ni o n Qu e ri es
A U N I O N a l l o w s a S Q L qu e r y t o m e r g e t h e r e s u l t s o f t w o o r m o r e S Q L qu e r i e s i n t o o n e R ec o r d se t
a n d e v e n s o r t t h e r e c o r d s o v e r t h e en t i r e m er g ed R ec o r d s et . T h e qu e r y b e l o w r et u r n s a l i s t o f
pu bl i s h e r s , a u t h o r s a n d t h e n u m b e r o f b o o k s f o r ea c h . I t t h en o r de r s t h e c o m pl e t e l i s t
a l ph a be t i c a l l y .
1)
S e l e c t I t e m , R a t e F r o m S t o c k U N I O N S el ec t P r o d u c t A s I t em , P r i c e A s R a t e F r o m I t e m
2)
S e l e c t N a m e , A s T h i n g, C o u n t ( * ) a s T a l l y F r o m P u bl i sh er s I N N E R J O I N T i t l e s O n
P u bl i s h e r s . P U B I D = T i t l e s . P U B I D G r o u p B y N a m e UN I O N S e l ec t A u t h o r A s T h i n g, C o u n t ( * ) A s
T a l l y F r o m A u t h o r s I N N E R J O I N T i t l e A u t h o r O n A u t h o r s. A U I D = T i t l e A u t h o r . A U I D G r o u p B y
Author, Order By Thing
I f t h e r e h a p p e n s t o b e s a m e i t e m o r s a m e a u t h o r , t h e r e w i l l o n l y b e o n e r ec o r d f o r ea c h i t em o r
a u t h o r . B y u s i n g U N I O N A L L i n s t e a d o f U N I O N , t h e qu er y w o u l d r et u r n a l l r ec o r ds, e v en i f t h er e a r e
du pl i c a t e s . I n a u n i o n qu e r y , t o m a t c h u p c o l u m n n a m e s u s e A s st a t em en t t o a l i a s t h e c o l u m n
n a m e s . T h e o n l y r e s t r i c t i o n i n u s i n g U n i o n o p er a t o r i s t h e r e m u st b e t h e sa m e n u m b er o f c o l u m n s
i n e a c h o f t h e qu e r i e s i n t h e u n i o n .
Qu er y O p ti m iz a ti o n
T h e r e a r e F e w t h i n gs y o u c a n k e e p i n m i n d t h a t w i l l h el p n o m a t t er w h a t p l a t f o r m y o u a r e r u n n i n g
o n . W h e n b u i l d i n g y o u r qu e r i e s ; y o u sh o u l d c o n si d er t h e f o l l o w i n g su g ge s t i o n s t o en su r e t h e
qu i c k e s t a n d m o s t e f f i c i e n t e x e c u t i o n o f t h em









L i m i t t h e f i e l d s r e t u r n e d i n a s e l ec t q u e r y t o o n l y t h o s e y o u a c t u a l l y n e e d
U s e t h e O r de r B y c l a u s e o n i n d e x ed f i el d s
A v o i d u s i n g a s t e r i s k ( * ) a s t h e l ea d i n g c h a r a c t e r i n p a t t e r n m a t c h i n g c r i t er i a
S t r u c t u r e y o u r q u e r i e s t o r e t u r n t h e sm a l l es t R e c o r d s et po ss i bl e t o m e et y o u r n e ed s
W h e n po s s i bl e , s t o r e y o u r qu e r i e s a s Q u er y D ef s i n t h e D a t a b a s e
U s e c o m p a r i s o n o p e r a t o r s o n i n d ex e d f i e l d s
C r o s s t a b qu e r i e s w o r k b e s t w h en c o l u m n h ea d i n g s a r e s pec i f i e d u si n g t h e I N c l a u s e
Join on Indexed Fields
The NOT IN Function is very slow
NetScape COMPUTER ACADEMY
96
Chapter 18
RDBMS
RDBMS(Relational Database Manage ment System)
R e l a t i o n a l d a t a b a s e i s d e f i n e d a s a c o l l ec t i o n o f d a t a i n di c a t e s r e l a t i o n a m o n g d a t a el e m e n t s. i . e.,
r e l a t i o n a l d a t a b a s e i s a c o l l e c t i o n o f r el a t e d da t a .
A d a t a b a s e i s a c o l l e c t i o n o f s h a r a bl e i n f o r m a t i o n . T h i s d ef i n i t i o n a p pl i e s t o a l l t y p e s o f
da t a b a s e s .
R e l a t i o n a l da t a b a s e s w e r e n o t t h e f i r s t o r t h e o n l y da t a b a s e d e si gn . O t h e r d a t a ba s e m o d el s a r e s t i l l
i n u s e , e s p e c i a l l y f o r s i n gl e u s e r d a t a b a se s, bu t t h e y do n o t o f f er t h e po w er , f l e x i bi l i t y , a n d e a se
o f u s e o f r e l a t i o n a l d e s i gn s .
Databases models include:

Hierarchical

Network

Flat file

Relational
The Hierarchical mode l:

It is based on an ordered tree.

T h e r e l a t i v e o r de r o f s u b t r e e s i s i m po r t a n t .

E a c h n o d e i n t h e h i e r a r c h y r e pr e se n t s a r ec o r d t y p e.

E a c h l i n k r e pr e s e n t s a n a s s o c i a t i o n b et w e en t h e t w o r ec o r ds.
R e c o r d s i n a h i e r a r c h i c a l d a t a b a s e h a ve a o n e t o m a n y , 1 : N r e l a t i o n s h i p
The Network model:

C o n s i s t s o f r e c o r d s a n d l i n k s b et w e en r ec o r d s.

T h e r e c o r d s r e pr e s e n t t h e e n t i t y s et s.

T h e l i n k s b e t w e e n t h e r e c o r d s r e pr e s en t t h e a sso c i a t i o n b et w e en e n t i t y s et s.
Records in a network model have a many to many, N:M relationship.
The flat file model:

I s a s u b s e t o f a r e l a t i o n a l m o d el

Consists of one entity

Relations must be set up manually
A R e l a t i o n a l d a t a b a s e i s a c o l l e c t i o n o f s h a r a bl e i n f o r m a t i o n , d e f i n e d a s t a bl e s c a l l e d
relations, that can be operated u pon using relational operators
A R e l a t i o n a l D a t a b a s e M a n a g e m e n t S y s t e m ( RD BM S ) i s a s e t o f d a t a s t r u c t u r e s a n d
p r o c e d u r e s u s e d f o r t h e c r e a t i o n a n d m a n i p u l a t i o n o f r e l a t i o n a l d a t a ba s e s
The rows of a relational table contain the data items or components.
O n e e n t i r e r o w i n a r e l a t i o n a l d a t a b a s e i s e q u i va l e n t t o a r e c o r d .
A R e l a t i o n s h i p i s a c o r r e s p o n d e n c e be t w e e n t w o e n t i t i e s o r e l e m e n t s o f a n e n t i t y a bo u t
which there is a need to maintain information.
T h e b a s i c s t o r a g e s t r u c t u r e i n a r e l a t i o n a l d a t a ba s e i s a t a bl e , a t w o d i m e n s i o n a l m a t r i x .
E a c h c o l u m n i n t h e t a bl e r e pr e s e n t s a n a t t r i bu t e o f t h e en t i t y . E a c h c o l u m n h a s a l a b e l , r ef er r e d t o
a s t h e c o l u m n o r a t t r i b u t e n a m e . T h e c o l u m n h a s a t y p e, r ef e r r e d t o a s t h e a t t r i bu t e t y p e, w h i c h
a p p l i e s t o a l l t h e e l e m e n t s i n t h e c o l u m n . E a c h el e m e n t i n t h e c o l u m n h a s a v a l u e t h a t i s de r i v ed
f r o m t h e do m a i n o f t h e a t t r i bu t e . T h i s i s t h e d a t a i t em o r c o m po n en t . A l l o f t h e d a t a i t em s i n a r o w
i n t h e t a b l e d e f i n e a n i n s t a n c e o f t h e en t i t y .
A k e y i s a n a t t r i bu t e t h a t i d e n t i f i e s a n i n s t a n c e i n a n en t i t y . A r el a t i o n a l t a b l e m a y h a v e s ev er a l
k e y s . O n e o f t h e k e y s c a n b e a r bi t r a r i l y d e si gn a t e d a s t h e P r i m a r y k e y . I t m u st b e u n i qu e a n d
have a defined value.
T h e p r i m a r y k e y i d e n t i f i e s a n i n s t a n c e o f a u n i q u e en t i t y . E i t h er a n em p l o y e e I D o r S o c i a l S ec u r i t y
N u m be r c o u l d s e r v e a s a pr i m a r y k e y , bec a u s e t h e y i d en t i f y o n l y o n e p er so n . W h en a n ew i n st a n c e
i s a d d e d t o a n e n t i t y , t h e v a l u e s t h a t d ef i n e t h e pr i m a r y k e y h a v e t o ex i st a n d b e u n i qu e;
o t h e r w i s e , t h e n e w i n s t a n c e c a n n o t b e a d de d t o t h a t en t i t y .
A l l e n t i t i e s de f i n e d m u s t h a v e a P r i m a r y k e y . K e y s t h a t h a v e n o t b e en c h o s en a s t h e pr i m a r y k e y
a r e r e f e r r e d t o a s t h e a l t e r n a t e k e y s . F o r e x a m p l e, a p er so n ' s n a m e i s a n a l t er n a t e k ey , b e c a u s e i t
i s n o t n e c e s s a r i l y u n i qu e .
A F o r e i g n k e y i s a k e y ( a s e t o f a t t r i bu t e s) o f a n en t i t y , w h i c h i s t h e p r i m a r y k e y o f a n a s so c i a t e d
e n t i t y s e t . F o r e i g n k e y s a r e u s e d t o e s t a bl i sh a r e l a t i o n s h i p b et w e en e n t i t i e s. T h e y a r e n e ed e d t o
pr o v i d e n a v i ga t i o n b e t w e e n a s s o c i a t e d en t i t i e s.
NetScape COMPUTER ACADEMY
97
I n d e x e s a r e s p e c i a l o bj e c t s f o r s e a r c h i n g t h r o u gh t h e c o n t en t s o f t h e t a b l e s i n t h e d a t a ba s e. A n
i n d e x c o n s i s t s o f a k e y a n d r o w n u m b er p a i r . I n d ex e s a l l o w f o r qu i c k a c c e s s t o t h e c o n t en t s o f a
r o w i n a t a bl e . T h e r e c a n b e m a n y i n d e x e s d ef i n e d f o r a p a r t i c u l a r t a bl e . T h e i n d ex d et er m i n e s t h e
o r d e r i n w h i c h r e c o r d s a r e s o r t e d. F o r ex a m pl e, t h e i n d ex f o r t h e t a bl e o n t h e l ef t i s em p l o y e e I D .
T h e e m pl o y e e I D s a r e s o r t e d i n n u m e r i c a l o r de r . T h e o n e o n t h e r i gh t i s so r t e d i n n u m er i c a l o r d er
by S o c i a l S e c u r i t y N u m b e r .
Some RDBMSs allow the creation of Sequences.
A S e q u e n c e i s a s e r i e s o f u n i qu e n u m b er s c r ea t e d f o r a p a r t i c u l a r t a b l e. T h e s t a r t i n g po i n t f o r t h e
s e q u e n c e c a n b e s pe c i f i e d w h e n t h e s e qu en c e o f t h e t a b l e i s d ef i n e d.
S e qu e n c e n u m b e r s c a n b e u s e d by a pp l i c a t i o n s t h a t r e qu i r e u n i qu e n u m b er s, su c h a s i n v o i c e
n u m b e r s . I f a d a t a b a s e do e s n o t a l l o w t h e c r e a t i o n o f s e qu en c e s, t h en t h e a p p l i c a t i o n p r o gr a m m er
will have to use another method
D a t a a c c e s s i s a s e r v i c e o f a d a t a b a s e m a n a g er , w h i c h a l l o w s da t a t o b e r e t r i e v e d f r o m di s k d r i v e s,
w i t h o u t w r i t i n g r o u t i n e s t o r e t r i e v e t h e da t a . T h e l o g i c a l p a t h t o t h e da t a i s c a l l e d t h e a c c e s s pl a n .
W h e n a n a p pl i c a t i o n i s p r e - c o m pi l e d, t h e a c c e ss pl a n t h a t o p t i m i z e s p er f o r m a n c e i s st o r ed, e i t h e r
i n t h e d a t a b a s e o r i n a f i l e c a l l e d a bi n d f i l e.
W h e n t h e a pp l i c a t i o n i s e x e c u t e d, t h e a c c es s pl a n i s u s e d t o r et r i e v e t h e da t a .
A S y n o n y m i s a n a l t e r n a t e n a m e ( a l i a s) o f a d a t a b a s e o bj ec t . S y n o n y m s a r e u s ed t o s i m pl i f y
r e f e r e n c e s a n d pr o v i d e s e c u r i t y . U s e r s do n o t n e e d t o b e a w a r e o f t h e d e t a i l s o f a n o b j ec t . T h ey
c a n r e f e r t o t h e o b j e c t b y i t s s y n o n y m . T h e s y n o n y m c a n b e u s ef u l w h en t h e r e a l d a t a b a s e o b j ec t
is located on a remote machine.
A V i e w i s a v i r t u a l t a bl e t h a t c a n be a c c es s e d l i k e a n o r m a l t a bl e. T h i s v i r t u a l t a b l e do e s n o t ex i st
i n t h e d a t a b a s e , bu t t h e de f i n i t i o n o f t h e v i r t u a l t a bl e do e s. T h e c o n t en t s o f t h e v i ew a r e
dy n a m i c a l l y o bt a i n e d f r o m t h e t a b l e s f o r w h i c h t h e v i ew i s d ef i n e d. A V i e w a l l o w s a f i l t e r ed l o o k a t
t a bl e s . V i e w s a r e o f t e n u s e d t o l i m i t a c c e ss t o t h e c o n t en t s o f t h e o r i g i n a l t a b l e. A V i e w c a n b e
u s e d t o l i m i t t h e a b i l i t y t o m a n i pu l a t e t h e d a t a i n a t a b l e t o a pr e d ef i n e d s u b s et o f t h e t a b l e. V i ew s
pr o v i d e a n e x t r a m e a s u r e o f s e c u r i t y .
T h e r e a r e t w o t y p e s o f d a t a i n a d a t a b a s e:


User defined data
System generated data
T h e S y s t e m d a t a i s d a t a a bo u t t a b l e s , v i ew s, a n d i n d ex e s t h a t i s c r e a t e d o n b eh a l f o f t h e u se r .
T h e i n f o r m a t i o n k e p t a b o u t t h e s y s t e m d a t a i s r ef er r e d t o a s t h e d a t a di c t i o n a r y .
T h e di c t i o n a r y c o n c e p t h a s b e e n e x t e n d e d t o i n c l u d e d a t a a bo u t da t a .
A d a t a b a s e m a n a g e m e n t s y s t e m e n a bl e s r o l e s, a u t h o r i z a t i o n s, a n d pr i v i l e ge s t o b e a s si gn e d t o
u s e r s . A u s e r h a s t o b e d e f i n e d t o t h e d a t a ba s e pr i o r t o b ei n g a b l e t o u s e t h e se r v i c es o f t h e
da t a b a s e m a n a g e m e n t s y s t e m .
T h e S c h e m a i s a s u m m a r y o r gl o b a l v i ew o f a s i n gl e d a t a b a s e. I t c o n t a i n s t h e t a bl e s, v i ew s, a n d
i n d e x e s o f t h e d a t a ba s e .
The schema records:

A l l t h e l o gi c a l u n i t s o f d a t a

T h e r e l a t i o n s h i ps t h a t e x i s t b e t w e en t h e s e u n i t s o f da t a

The type of data
T h e S c h e m a m a y a l s o pr o v i d e i n f o r m a t i o n a bo u t s ec u r i t y a n d a c c e s s r i gh t s t o d a t a .
A D a t a b a s e M a n a g e m e n t S y s t e m c o n si s t s o f a se t o f t a bl e s u s e d by t h e s y st em t o a dm i n i s t e r a l l
t h e d a t a ba s e o bj e c t s t h a t a r e de f i n e d.
S o m e t y pi c a l e x a m p l e s a r e :

T a bl e s t o m a i n t a i n u s e r I D s a n d p a s sw o r d s

T a bl e f o r pl a n s

T a bl e f o r t a bl e n a m e s

T a bl e f o r i n de x e s

T a bl e f o r v i e w s

T a bl e f o r s e qu e n c e s
B e f o r e l o o k i n g a t t h e r e l a t i o n a l d a t a ba s e d e s i gn pr o c e s s, c o n s i de r so m e o f t h e r o l e s o f t h e
p e r s o n n e l i n v o l v e d i n t h e d e s i gn , d e v e l o pm en t , a n d m a n a g em en t o f a da t a b a s e.
T h e y i n c l u de :

System Programmers

Database Administrators

Data Modelers

Application Developers

Application Users

Security Administrators
NetScape COMPUTER ACADEMY
98
A s y s t e m pr o gr a m m e r ' s r o l e i s t o i n s t a l l t h e d a t a b a s e m a n a g em en t s y st em so f t w a r e o n t h e s y st em .
T h e s y s t e m p r o gr a m m e r s r e s po n s i bi l i t i e s i n c l u d e :

I n s t a l l i n g n e w e r r e l e a s e s o f t h e da t a b a s e s y st e m so f t w a r e

P l a n n i n g t h e ph y s i c a l r e s o u r c e s r e qu i r ed b y t h e sy s t em ( e. g. , di s k sp a c e )

C o n f i gu r i n g t h e s y s t e m f o r o pt i m a l p er f o r m a n c e
T h e da t a b a s e a dm i n i s t r a t o r ( D B A ) i s r e spo n s i bl e f o r c r ea t i n g a n d m a i n t a i n i n g a p pl i c a t i o n
da t a b a s e s . I n s o m e o r ga n i z a t i o n s , t h e D B A r o l e i s c o m bi n e d w i t h t h e sy st em pr o gr a m m e r r o l e.
T h e D B A r e s p o n s i bi l i t i e s i n c l u d e :

W o r k i n g w i t h t h e d a t a m o d e l e r t o t r a n sf o r m t h e l o gi c a l d a t a m o d el i n t o a ph y s i c a l m o d el

W o r k i n g w i t h t h e a p pl i c a t i o n pr o gr a m m e r t o de t e r m i n e a c c e s s p a t h s a n d i d en t i f y n ec e s sa r y
indexes

C r e a t i n g t h e ph y s i c a l da t a b a s e o bj ec t s ( e. g. , t a b l e s, i n d e x e s, a n d c o n s t r a i n t s)

D e - n o r m a l i z i n g a t t r i bu t e s i n o r d er t o i m pr o v e p e r f o r m a n c e

P r o v i d i n g gu i d a n c e t o a p pl i c a t i o n pr o g r a m m er s w i t h r e s pec t t o o pt i m a l da t a b a s e a c c e s s

C r e a t i n g ba c k u p a n d r e c o v e r y j o b s
T h e r o l e o f t h e d a t a m o d e l e r i s t o a n a l y z e t h e b u si n e s s da t a r e qu i r em en t s a n d c r ea t e a l o g i c a l d a t a
m o d e l . T h i s i n v o l v e s d e t e r m i n i n g t h e en t i t i e s, t h ei r a t t r i bu t e s, a n d t h e r el a t i o n sh i p s b et w e en t h e
entities.
T h e da t a m o d e l e r r e s p o n s i b i l i t i e s i n c l u d e:

W o r k i n g w i t h t h e bu s i n e s s u s e r s a n d a p pl i c a t i o n d ev e l o p e r s t o u n de r st a n d t h e da t a
r e qu i r e m e n t s

C r e a t i n g a n e n t i t y r e l a t i o n s h i p di a gr a m

Gathering definitions for all attributes

D e t e r m i n i n g t h e c a n di d a t e s f o r pr i m a r y k e y s

V e r i f y i n g t h a t t h e m o de l s a t i s f i e s t h e r e qu i r em e n t s

G a t h e r i n g i n f o r m a t i o n o n da t a v o l u m e s

W o r k i n g w i t h t h e D B A t o t u r n t h e l o g i c a l d a t a m o d el i n t o a ph y si c a l m o d el
T h e a p p l i c a t i o n d e v e l o p e r ' s r o l e i s t o t u r n b u s i n e ss s p ec i f i c a t i o n s i n t o a p pl i c a t i o n pr o c e s se s f o r t h e
application users.
T h e a p p l i c a t i o n d e v e l o p e r ' s r e s po n s i bi l i t y i n c l u d e s:

T u r n i n g bu s i n e s s s p e c i f i c a t i o n s i n t o a p pl i c a t i o n c o d e

T e s t i n g c o d e t o r e m o v e a l l bu g s

E n s u r i n g t h a t t h e da t a b a s e n a v i g a t i o n i s c o de d i n a n o p t i m a l m a n n er

M o v i n g t h e c o d e t o pr o d u c t i o n
A p pl i c a t i o n u s e r s r u n t h e a p pl i c a t i o n s t h a t a r e c r e a t e d o n t h e i r b eh a l f , t o m a k e d a y - t o - da y
bu s i n e s s d e c i s i o n s o r t o s t o r e i n f o r m a t i o n f o r f u t u r e d ec i si o n s.
A p pl i c a t i o n s u s e r s ' r e s po n s i b i l i t i e s i n c l u d e:

P r o v i d i n g t h e bu s i n e s s s p e c i f i c a t i o n s f o r t h e a p p l i c a t i o n s

E n s u r i n g t h a t t h e de v e l o p e d a pp l i c a t i o n s m e et t h e s p ec i f i e d bu s i n e ss r e q u i r em en t s

R u n n i n g t h e a p pl i c a t i o n i n t h e b u s i n e ss en v i r o n m en t
T h e s e c u r i t y a dm i n i s t r a t o r gr a n t s d a t a b a s e a c c e s s pr i v i l e g es t o i n d i v i du a l u se r s o r g r o u p s o f u s er s
o f a d a t a b a s e . T y pi c a l l y , i n a t e s t o r d ev e l o p m en t en v i r o n m en t , t h e d a t a b a s e a d m i n i st r a t o r o r
a p p l i c a t i o n d e v e l o pm e n t t e a m h a n d l e s t h i s f u n c t i o n , bu t t h e sec u r i t y gr o u p m o r e o f t en h a n d l e s
s e c u r i t y f o r t h e pr o du c t i o n s y s t e m .
Da ta m o d el in g
D e s i gn i n g d a t a b a s e s i s a l a r g e a n d c o m p l ex f i e l d . I n m o s t l a r g e o r ga n i z a t i o n s, t h er e a r e t e a m s o f
p e o p l e w h o do t h i s j o b.
T h i s i s a v e r y br i e f i n t r o du c t i o n i n t e n de d t o d e sc r i be t h e m a j o r st e p s i n v o l v e d i n d es i gn i n g a
da t a b a s e :

D e s i gn i n g t h e l o gi c a l d a t a m o de l

T r a n s f o r m i n g t h e l o gi c a l da t a m o d e l t o a r e l a t i o n a l ( ph y si c a l ) d a t a b a s e m o d el
T h e f i r s t s t e p i n t h e l o g i c a l d e s i gn p r o c e s s i s t o bu i l d a c o n c e pt u a l m o d e l o f t h e d a t a b a s e.
T h i s w i l l i n c l u de d e c i s i o n s l i k e :

W h a t d a t a t o i n c l u d e i n t h e d a t a ba s e

T h e c h a r a c t e r i s t i c s o f t h a t da t a

T h e r e l a t i o n s h i ps a m o n g t h e da t a

W h a t e v e n t s a f f e c t t h a t da t a

H o w t o m a k e t h e d a t a a v a i l a bl e t o u s er s
T h e de s i gn p r o c e s s w i l l b e t o b u i l d a l o gi c a l d a t a m o de l o f t h i s c o n c e p t .
L o gi c a l
1.
2.
3.
de s i gn ( d a t a m o d e l i n g e x e r c i s e) i s a n i t e r a t i v e e x e r c i s e w h i c h i n c l u d e s t h e f o l l o w i n g s t ep s:
Identify entities
D e t e r m i n e r e l a t i o n s h i p s b e t w e en t h e en t i t i e s, i n c l u d i n g t h e f o r e i gn k e y s
D e t e r m i n e e n t i t y pr o p e r t i e s ; t h e s e a r e t h e k e y a t t r i bu t e s o f t h e en t i t y
NetScape COMPUTER ACADEMY
4.
5.
6.
99
I d e n t i f y t h e pr i m a r y bu s i n e s s r u l es a n d e v en t s t h a t h a v e a n a f f ec t o n en t i t i es a n d
relationships
I d e n t i f y a l l t h e a t t r i b u t e s o f t h e en t i t y
N o r m a l i z e t h e l o gi c a l m o d e l
T h e s t e p s i n v o l v e d i n i d e n t i f y i n g t h e en t i t i e s a r e :
1 . I n t e r v i e w t h e u s e r s ( c l i e n t s o f t h e s y st em )
2 . I d e n t i f y t h e m a j o r d a t a i t e m s t h a t c l i en t s w a n t i n c l u de d i n t h e d a t a b a s e
3. Identify the entities
4. Rationalize the entities into sets
T h e pr o p e r t i e s o f e n t i t i e s s h o u l d be d ef i n e d a s f o l l o w s:

Choose a primary key for the entity

I d e n t i f y t h e f o r e i gn k e y s f o r t h e en t i t y

I d e n t i f y a l t e r n a t e k e y s f o r t h e en t i t y
P r i m a r y bu s i n e s s r u l e s g o v e r n t h e pr o p er t i e s a n d be h a v i o r o f t h e da t a o f t h e p a r t i c u l a r d a t a ba s e
b e i n g de s i g n e d. A n e x a m p l e i s t h e r a n g e o f n u m b er s t h a t a r e v a l i d f o r em pl o y e e I D n u m b er s i n a
gi v e n c o m p a n y . D e f i n i n g t h e s e r u l e s i s a n o n go i n g p r o c es s. A l t h o u g h t h es e r u l e s m a y c h a n g e, so m e
i n i t i a l r u l e s o f bu s i n e s s m u s t b e de f i n e d f o r t h e pu r po s e s o f m o de l i n g d a t a f o r t h e d a t a b a s e d es i gn .
T h e i n t e gr i t y r u l e i s d e s i gn e d t o m a k e c er t a i n t h a t a l l d a t a en t er e d i n t h e d a t a b a se i s v a l i d.
T h e i n t e gr i t y r u l e r e f e r s t o t h e p r i m a r y k e y s o f a n en t i t y :
T h e I n t e g r i t y r u l e f o r pr i m a r y k e y s i s: " E a c h p r i m a r y k e y m u s t e x i s t a n d be u n i q u e ."
O t h e r r u l e s t h a t h a v e t o be d e f i n e d a r e:
1 . I n s e r t r u l e s - w h a t c o n s t i t u t e s a v a l i d i n s er t i o n .
2 . D e l e t e r u l e s - w h a t c o n t i t u t e s a v a l i d de l et i o n .
T h e R e f e r e n t i a l i n t e g r i t y r u l e a p p l i e s t o f o r e i g n k e y s.
The rule is: "If an entity has a foreign key, then the foreign key must either match the
v a l u e i n t h e t a b l e f o r w h i c h i t i s a p r i m a r y k e y , o r i t m u s t be n u l l ."
R e f e r e n t i a l i n t e gr i t y r e q u i r e s t h a t i n s er t , de l et e, a n d u p d a t e o pe r a t i o n s m a i n t a i n t h es e r ef e r e n c e
pa t h s .
C o n s t r a i n t s p r o v i d e bo u n d a r i e s o n t h e d a t a t h a t i s en t er e d i n t o t a bl e s a s a n i n se r t o r u p d a t e.
T h e c o n s t r a i n t s s e t t h e do m a i n o f t h e a t t r i bu t e. S o m e d a t a ba s e m a n a g e m en t s y st em s pr o v i d e a
mechanism for setting constraints.
I n s o m e s y s t e m s , i t i s l e f t u p t o t h e a p pl i c a t i o n w r i t er s t o pr o v i d e e di t c h ec k s i n o r d er t o en su r e
t h a t t h e a t t r i bu t e v a l u e b e i n g s e t i s p a r t o f t h e do m a i n o f t h e a t t r i bu t e. C o n s t r a i n t s a l so d ef i n e t h e
r u l e s f o r i n s e r t i n g, u p d a t i n g a n d d e l e t i n g d a t a . T h e s e a r e t h e pr i m a r y b u si n e s s r u l e s o f a n y
da t a b a s e .
There are six insert rules:
1 . D e p e n de n t : a c h i l d e n t i t y c a n b e i n s er t e d, i f a p a r en t en t i t y ex i st s
2 . A u t o m a t i c : w h e n i n s e r t i n g a c h i l d en t i t y , i f a p a r en t do e s n o t ex i st , c r e a t e o n e
3 . N u l l i f y : i n s e r t c h i l d, s e t f o r e i gn k e y t o n u l l , i f t h e p a r en t do e s n o t e x i st
4 . D e f a u l t : i n s e r t c h i l d, i f pa r e n t do e s n o t ex i s t , s et t h e f o r ei gn t o a d ef a u l t v a l u e
5 . C u s t o m i z e d: i n s e r t c h i l d pr o v i d e d i t m e e t s d ef i n e d i n s er t i o n c r i t er i a
6. No Effect: insert child unconditionally
There are six delete rules:
1 . R e s t r i c t : de l e t e p a r e n t , i f t h e r e i s n o c h i l d
2 . C a s c a d e : de l e t e t h e pa r e n t a n d c a sc a d e t h e d el et i o n t o a l l c h i l d r e n
3 . N u l l i f y : d e l e t e t h e p a r e n t a n d s e t t h e c h i l d ' s f o r e i gn k ey t o n u l l
4 . D e f a u l t : d e l e t e t h e p a r e n t a n d se t t h e f o r e i g n k e y o f t h e c h i l d t o a de f a u l t v a l u e
5 . C u s t o m i z e d: d e l e t e t h e pa r e n t , i f p r e d ef i n e d c o n di t i o n s a r e m et
6 . N o E f f e c t : de l e t e t h e pa r e n t u n c o n di t i o n a l l y
A l l t h e n o n - k e y a t t r i bu t e s a n d t h e i r t y p e s h a v e t o be i d en t i f i e d a s p a r t o f t h e d e si gn pr o c e ss.
D e r i v e d da t a a r e a t t r i bu t e s t h a t a r e d er i v e d a l go r i t h m i c a l l y . T h e s e sh o u l d b e i n d i c a t e d a s d e r i v e d.
E n t i t i e s w i t h t h e s a m e p r i m a r y k e y s h o u l d be c o m b i n ed i n t o o n e en t i t y .
T h e n e x t s t e p i n t h e d a t a m o de l i n g pr o c e s s i s t o n o r m a l i z e t h e r el a t i o n s h i p s.
N o r m a l i z a t i o n i s s i m p l i f i c a t i o n . T h e o b j ec t i v e i s t o r e m o v e r e du n d a n t i n f o r m a t i o n a n d
relationships.
T h e go a l i s t o r e du c e a l l N : M r e l a t i o n s h i ps t o 1 : N . T o do t h i s, n ew en t i t i e s m u st be c r e a t e d.
T h e a d v a n t a g e s o f a n o r m a l i z e d d e s i gn a r e:

T h e a m o u n t o f s t o r a ge s pa c e r e qu i r e d i s m i n i m i z e d b ec a u se r e d u n d a n t a t t r i bu t e s a r e
r e m o v e d.

D a t a i n c o n s i s t e n c y i s r e du c e d, b ec a u se t h e a t t r i bu t e s a r e s t o r e d o n l y o n c e.

D e l e t e a n d u pd a t e o p e r a t i o n s a r e a g a i n st a s i n gl e a t t r i bu t e i n s t ea d o f m u l t i p l e c o p i e s o f t h e
s a m e a t t r i bu t e .
NetScape COMPUTER ACADEMY
100
T h e s t a ge s i n t h e n o r m a l i z a t i o n pr o c e s s a r e:
1. First Normal Form
2. Second Normal Form
3. Third Normal Form
T h e t h i r d n o r m a l f o r m i s u s u a l l y a de qu a t e t o en s u r e a c o r r ec t a n d c o n si s t en t l o gi c a l d a t a m o d el
w i t h a l l r e du n d a n c i e s r e m o v e d.
A n e n t i t y i s i n F i r s t N o r m a l F o r m , i f i t do e s n o t h a v e a n y r ep e a t i n g g r o u p s.
E a c h a t t r i bu t e i s a t o m i c a n d h a s a u n i qu e m e a n i n g.
T h e e n t i t y i s p u t i n t o f i r s t n o r m a l f o r m b y m o v i n g a n y r e p ea t i n g gr o u p t o a n ew en t i t y .
A n e n t i t y s e t i s i n S e c o n d N o r m a l F o r m w h en t h e n o n - k e y a t t r i bu t e s o f a n en t i t y i n F i r s t N o r m a l
F o r m a r e w h o l l y d e pe n d e n t o n t h e e n t i r e pr i m a r y k e y .
R e m e m b e r , a p r i m a r y k e y i s t h e m i n i m a l s et o f a t t r i b u t e s t h a t u n i qu e l y i d en t i f i e s a n i n st a n c e i n a n
entity.
I n t h e S e c o n d N o r m a l F o r m , t h e n o n - k e y a t t r i bu t e s c a n d ep en d o n o t h e r n o n - k e y a t t r i bu t e s, a s w el l
as the primary key.
A n e n t i t y i s i n T h i r d N o r m a l F o r m , i f i t i s i n S ec o n d N o r m a l F o r m , a n d t h e n o n - k e y a t t r i bu t e s
d e p e n d o n t h e pr i m a r y k e y ( a s i n t h e S ec o n d N o r m a l F o r m ) a n d o n l y t h e pr i m a r y k e y ( o r a l t er n a t e
k e y ) . I n t h i s f o r m , t h e n o n - k e y a t t r i bu t e s c a n n o t de p en d o n o t h e r n o n - k e y a t t r i bu t e s.
O n c e t h e l o gi c a l m o d e l i s d e f i n e d, t h e n ex t st e p i n r el a t i o n a l da t a b a s e d e si gn i s t r a n sf o r m i n g a
l o g i c a l d a t a b a s e m o d e l i n t o a r e l a t i o n a l ( ph y si c a l ) d a t a ba s e.
Relational (Physical) model
T h e s t e p s t o t r a n s f o r m t h e l o g i c a l m o de l t o a ph y s i c a l m o d el a r e:
1 . I d e n t i f y t h e t a bl e s
2 . I d e n t i f y t h e a t t r i bu t e s a n d t h e i r t y pe s
3 . C r e a t e t h e t a b l e s u s i n g t h e da t a b a se m a n a g er
4 . D e f i n e a n d c r e a t e t h e b u s i n e s s r u l es a bo u t t h e en t i t i es
5 . D e s i gn t h e r u l e s f o r a s s o c i a t i o n s ( r e l a t i o n sh i ps b et w e en e n t i t i e s)
6 . D e s i gn t h e r u l e f o r i n di v i du a l a t t r i bu t e s
7 . T u n e f o r p e r f o r m a n c e by de f i n i n g i n d ex e s
8 . D e - n o r m a l i z e i f r e qu i r e d t o i n c r ea s e pe r f o r m a n c e
T h e t h r e e m a j o r l a n gu a g e s u s e d t o c r e a t e a n d m a i n t a i n da t a b a s es a r e:
1 . D a t a S t o r a g e L a n gu a g e ( D S L )
2. Data Definition Language (DDL)
3 . D a t a M a n i pu l a t i o n L a n gu a g e ( D M L )
T h e D a t a S t o r a g e L a n gu a g e ( D S L ) i s u s e d f o r de f i n i n g t h e ph y si c a l st o r a g e o f t h e d a t a b a se. T h e
pl a n n i n g o f ph y s i c a l s t o r a g e i s i m po r t a n t i n d a t a ba s e d es i gn , b ec a u s e t h e s i z e a n d l o c a t i o n o f t h e
di s k s t o r a g e s p a c e m u s t b e d e f i n e d, b ef o r e t h e d a t a ba s e i s pl a c ed t h e r e. F u r t h e r m o r e, d a t a ba s e s
gr o w a n d s h r i n k c o n t i n u a l l y . S o pl a n n i n g h o w t h e y w i l l b e m a pp e d t o ph y s i c a l st o r a g e i s c r u c i a l t o
their successful operation.
T h e ph y s i c a l s t o r a g e d e f i n i t i o n s pe c i f i e s:

T h e s t o r a g e m e di u m a n d i n d i v i du a l dr i v e s

T h e ph y s i c a l o r d e r i n g f o r t h e d a t a

T h e pl a c e m e n t o f d a t a

T h e r e t r i e v a l a m o u n t ( b u f f e r s i z e s)

T h e l o g i c a l t o ph y s i c a l m a p pi n g o f da t a
T h e D a t a D e f i n i t i o n L a n gu a g e ( D D L ) i s u s e d t o d ef i n e a n d c r ea t e t a b l es , v i ew s, a n d o t h e r d a t a b a se
o bj e c t s .
T h e D D L i s a s e l f c o n t a i n e d l a n gu a g e t h a t p r o v i d es t h e a bi l i t y t o :

S p e c i f y t h e r e l a t i o n a l d a t a m o d el

N a m e t h e l o gi c a l u n i t s o f t h e d a t a ba s e

D e s c r i b e t h e r e l a t i o n s h i p s a n d a s so c i a t i o n s

S p e c i f y t h e do m a i n o f v a l u e s f o r i n di v i du a l a t t r i b u t e s

S p e c i f y t h e da t a t y p e s f o r a t t r i b u t e s

S p e c i f y t h e k e y s f o r e n t i t i e s { t a bl e s}

S p e c i f y i n t e g r i t y c o n s t r a i n t s o n t h e da t a

Specify the access rules for data
T h e D a t a M a n i pu l a t i o n L a n gu a g e ( D M L ) i s u s ed t o m a i n t a i n u s er ' s da t a . T h i s d ef i n es t h e t y p e o f
o p e r a t i o n s t h a t a u s e r c a n p e r f o r m o n t h e d a t a . T h e t y p es o f o p er a t i o n s t h a t c a n b e p er f o r m e d o n
t a bl e s a r e b a s e d o n " r e l a t i o n s a l g e br a " ( d er i v e d f r o m s e t t h eo r y ) a n d a r e r ef er r e d t o a s r el a t i o n a l
operators.
The relational operators are:

Restriction {Selection}

Projection
NetScape COMPUTER ACADEMY
101

C r o s s - P r o du c t

Join

Union

Intersection

Division

Difference
R e s t r i c t i o n a n d pr o j e c t i o n a r e a p pl i e d a ga i n st a s i n g l e s e t . C r o s s p r o du c t , j o i n , di v i si o n , u n i o n ,
i n t e r s e c t i o n , a n d di f f e r e n c e a r e a p pl i e d a g a i n st t w o s et s. R es t r i c t i o n i s u s e d t o l i m i t t h e n u m b er o f
r o w s r e t r i e v e d t o a s u b s e t o f t h e d a t a i n t h e t a b l e b a s e d o n so m e c o n d i t i o n s. T h e R e st r i c t i o n i s
d e l i m i t e d b y o n e o r m o r e c o n di t i o n a l o p er a t o r s a p p l i e d a g a i n s t t h e a t t r i bu t e s o f t h e t a bl e. A l l o f
t h e a t t r i b u t e s o f t h e s e t t h a t m e e t t h e r e st r i c t i o n c o n di t i o n w i l l b e se l ec t e d.
T h e c o n di t i o n a l o p e r a t o r s a r e :

E qu a l t o

Less than

L e s s t h a n o r e qu a l t o

Greater than

G r e a t e r t h a n o r e qu a l t o

N o t e qu a l t o
T h e s e a r e u s e d t o a p p l y c o n di t i o n s t o a r e st r i c t i o n o p er a t i o n .
P r o j e c t i o n i s u s e d t o pr o du c e a n e w s e t c o m pr i s e d o f o n l y so m e o f t h e a t t r i bu t e s o f t h e o r i gi n a l
set.
O n l y t h e s p ec i f i e d a t t r i b u t e s a r e s e l e c t e d a n d a l l du pl i c a t e s a r e r em o v ed.
T h e c r o s s p r o du c t o f t w o s e t s i s a s e t w h o s e c o n t e n t s a r e a l l t h e c o m bi n a t i o n s o f t h e f i r st t w o s et s.
T h e n u m b e r o f r o w s i n t h e t h i r d s e t i s t h e pr o du c t o f t h e n u m b er o f r o w s i n t h e f i r st s et a n d t h e
number of rows in the second set.
T h e j o i n o pe r a t i o n c r e a t e s a n e w r e l a t i o n f r o m a se t o f r el a t i o n s, w h er e t h e n ew r e l a t i o n i s b a se d
o n r e l a t i o n a l o p e r a t o r s b e t w e e n c o m p a t i b l e a t t r i b u t e s i n t h e t a b l e s s p ec i f i e d f o r t h e j o i n .
T h e j o i n i s u s e d t o s e l e c t i n f o r m a t i o n t h a t i s f o u n d i n t w o o r m o r e r e l a t i o n s.
T h e a t t r i bu t e s t h a t a r e u s e d t o j o i n t h e se r e l a t i o n s h a v e t o b e c o m pa t i b l e ( o f t h e sa m e d a t a t y pe ) .
T h e u n i o n o f t w o s e t s i s a s e t w i t h e l em en t s o f bo t h s et s i n c l u d ed a n d t h e du p l i c a t e s r em o v e d.
B o t h s e t s s h o u l d h a v e t h e s a m e n u m b e r a n d t y p e o f a t t r i bu t e s:
1 . T h e t a bl e s m u s t h a v e t h e s a m e n u m b e r o f c o l u m n s
2 . T h e c o l u m n s h a v e t o b e o f t h e s a m e t y pe
3 . T h e o r d e r i n w h i c h t h e s e c o l u m n t y p e s h a v e b ee n s et u p m u st b e t h e s a m e ( t h e y h a v e t h e
same "shape")
T h e i n t e r s e c t i o n o f t w o o r m o r e s e t s i s a n ew s e t , w h i c h c o n t a i n s a l l t h e el em en t s t h a t e x i s t i n a l l
o f t h e i n t e r s e c t e d s e t s . T h i s m e a n s t h e i n t er s ec t i o n o f t a b l e s w i l l c o n t a i n a l l t h e c o l u m n s w h i c h a r e
i n a l l t h e s pe c i f i e d t a bl e s . T h e s e c o l u m n s h a v e t h e sa m e d a t a t y p e a n d p o s si bl y t h e s a m e v a l u e s.
T h e di v i s i o n o p e r a t i o n w i l l r e s u l t i n a r e l a t i o n c o n t a i n i n g c o l u m n s f r o m t h e " di v i d en d r e l a t i o n " f o r
w h i c h t h e r e a r e m a t c h i n g c o l u m n v a l u e s c o r r e s p o n di n g t o e v er y r o w i n t h e " di v i d e r r el a t i o n " .
T h e di f f e r e n c e o f t w o s e t s i s a s e t o f a l l t h e r o w s i n o n e se t t h a t a r e n o t i n t h e o t h er .
S t a t e d di f f e r e n t l y , t h e d i f f e r e n c e i s t h e r o w s i n t a b l e A w i t h a l l t h e r o w s t h a t a r e a l so i n t a b l e B
r e m o v e d.
T h e t w o t a b l e s m u s t h a v e t h e s a m e " s h a p e" .
T h e o r d e r o f t h e s e t s i s i m po r t a n t .
I f t h e o r d e r o f t h e di f f e r e n c e f r o m t h e p r e v i o u s e x a m p l e w er e r ev e r s e d, t h e r e su l t a n t s e t w o u l d
change.
I n o r d e r t o b u i l d a c o l l e c t i o n o f r e l a t e d d a t a , y o u n e e d t h r e e k e y b u i l d i n g b l o c k s. T h e y a r e,
a)
D a t a F i e l d s : - t h e f i r s t bu i l di n g bl o c k i n r el a t i o n a l d a t a ba s e i s a da t a f i e l d. I t c o n t a i n s t h e
s m a l l e s t e l e m e n t o f d a t a t h a t y o u c a n st o r e i n a da t a b a s e a n d e a c h f i e l d c o n t a i n s o n l y o n e
da t a e l e m e n t .
E . g. : - t o s t o r e t h e n a m e o f c u s t o m e r , y o u m u st c r e a t e a d a t a f i el d so m e w h e r e i n t h e d a t a b a s e
a n d a l s o g i v e a f i e l dn a m e s u c h a s C u s t o m er N a m e a n d i f y o u w a n t t o st o r e t h e b a l a n c e o f a
c u s t o m e r , y o u m u s t c r e a t e a n o t h er f i e l d su c h a s ba l a n c e a n d a l l t h e f i el d s y o u c r e a t e a r e
s h a r e d i n a s i n gl e d a t a b a s e .
Note:- a Data field is also known as Data Column
b)
D a t a R e c o r d s : - D a t a r e c o r d s a r e c o l l ec t i o n o f r el a t e d da t a f i el d s.
E . g. : - C u s t o m e r _ n a m e , A m o u n t _ du e , A dd r es s w i l l b e i n a t a b l e. A l l t h e s e f i e l ds
o f a s i n gl e c u s t o m e r r e c o r d d e s c r i b e s a da t a r ec o r d.
Note:- a Data record is also known as data row.
NetScape COMPUTER ACADEMY
102
A s i n g l e d a t a r e c o r d c o n t a i n s o n l y o n e c o p y o f ea c h d ef i n e d d a t a f i el d .
r e c o r d c o n t a i n s m o r e t h a n o n e c u s t o m er n a m e.
c)
I . e. , a si n g l e d a t a
D a t a T a b l e : - B y c o m pa r i n g d a t a f i el d s a n d da t a r ec o r d s y o u c r ea t e t h e m o s t c o m m o n el e m en t
o f a r e l a t i o n a l d a t a b a s e da t a t a b l e. A t a bl e c o n t a i n s m u l t i pl e da t a r ec o r d s a n d ea c h r ec o r d
contains multiple datafields.
Database relationship: -
A da t a b a s e c a n c o n t a i n s e v e r a l r e l a t e d t a b l e u s i n g r el a t i o n sh i p i s a v er y ef f i c i en t w a y t o st o r e v er y
complex data.
E . g. : - T a bl e s t o r i n g C u s t o m e r N a m e c o u l d b e r e l a t e d t o a n o t h er t a bl e sh a r i n g t h e s a l e s i n f o r m a t i o n
of the customer.
B y e s t a bl i s h i n g m e a n i n gf u l r e l a t i o n sh i p b et w e en da t a t a bl e s y o u c a n c r e a t e
flexible data structure that are easy to maintain.
Y o u e st a bl i sh e d a r e l a t i o n sh i p b et w e en
da t a t a bl e s b y u s i n g po i n t e r o r qu a l i f i er f i e l d s i n y o u r d a t a t a b l es. Y o u a r e qu a l i f i er f i el d s t o po i n t
t w o r e c o r d s i n o t h e r t a b l e s t h a t h a v e a d d i t i o n a l i n f o r m a t i o n . Q u a l i f i er f i el d u su a l l y d e sc r i b e d o n e
t o o n e r e l a t i o n s h i p. Y o u u s e po i n t e r f i el d t o p o i n t o n e o r m o r e r ec o r d s i n o t h er t a b l es t h a t h a v e
r e l a t e d i n f o r m a t i o n . P o i n t e r f i e l d u s u a l l y d ef i n e d o n e - t o - m a n y r e l a t i o n s h i p.
One to one relationship: O n e t o o n e r e l a t i o n s h i p a r e u s e d t o l i n k r ec o r d s i n a m a st er t a b l e t o s i n g l e r ec o r d i n a n o t h er
t a bl e .
E . g. : - I f y o u h a v e t w o t a b l e s , o n e c o n t a i n i n g t h e a dd r e s s i n f o r m a t i o n o f c u s t o m er s a n d o t h e r
t a bl e c o n t a i n s t h e du e a m o u n t o f c u s t o m er s. B y c r e a t i n g a c o m m o n f i e l d i n bo t h t a bl e ( s a y
c o d e ) y o u c a n l i n k t h e i n f o r m a t i o n i n bo t h t a b l e s.
One to many relationship: O n e t o m a n y r e l a t i o n s h i p s a r e u s e d t o l i n k r e c o r d s i n a m a s t e r t a bl e t o m u l t i p l e r ec o r d s i n
another table.
E . g. : - I f y o u h a v e t w o t a b l e s , o n e c o n t a i n i n g c u st o m e r a dd r es s i n f o r m a t i o n a n d o t h er c o n t a i n s
s a l e s de t a i l s o f c u s t o m e r s . T h e s a l e s d et a i l s t a bl e c a n h a v e m o r e t h a n o n e r ec o r d f o r a si n gl e
c u s t o m e r . H e r e a l s o y o u n e e d t o s p ec i f y a c o m m o n f i el d i n bo t h t a b l es .
N o t e : - A t l e a s t o n e d a t a f i e l d i n e a c h t a bl e a c t s a s k ey f i el d
K e y f i e l d s i n r e l a t i o n a l da t a b a s e a r e u s ed t o de f i n e a n d m a i n t a i n da t a b a s e i n t e gr i t y a n d t o
e s t a bl i s h r e l a t i o n s h i p b e t w e e n da t a t a b l es. Y o u c r e a t e k e y s i n y o u r t a b l e b y d e si gn i n g o n e o r m o r e
f i e l d s i n y o u r t a bl e e i t h e r a s a pr i m a r y k ey o r a s a f o r ei gn k e y . A d a t a t a bl e c a n h a v e o n e p r i m a r y
k e y , bu t i t c a n h a v e s e v e r a l f o r e i gn k e y s.
T h e pr i m a r y k e y i s u s e d t o c o n t r o l t h e o r d er i n w h i c h t h e da t a i s d i s p l a y .
t o r e l a t e t o f i e l ds i n a n o t h e r t a b l e i n t h e d a t a b a s e.
K e y f i e l d s a r e a l s o k n o w n a s i n d e x f i e l d s.
T h e f o r ei gn k e y i s u s ed
A c o l l e c t i o n o f r e c o r d s - t h a t i s , r o w s o f r ec o r d s w h er e e a c h c o l u m n i s a f i el d b ec o m e s a t a bl e. S o a
da t a b a s e c a n b e d e f i n e d a s c o l l e c t i o n o f o n e o r m o r e t a b l e s. I n D A O , t h o s e c o l l ec t i o n s a r e c a l l e d
t h e w o r k s p a c e , a n d i n R D O a n d A D O , t h ey a r e r ef er r e d a s t h e d a t a en v i r o n m en t . Y o u c a n a l so h a v e
i n d i c e s i n d a t a b a s e s , a n d t h o s e a r e po i n t er s t o s pec i f i c f i el d s, ei t h er i n t h e c u r r en t d a t a ba s e o r
another one.
NetScape COMPUTER ACADEMY
103
Chapter 19
Introduction to Data Access
A l l a pp l i c a t i o n s u s e s t r u c t u r e d i n f o r m a t i o n o f o n e k i n d o r a n o t h er . D a t a a c c e s s i n M i c r o so f t V i s u a l
B a s i c gi v e s y o u t h e t o o l s t o c r e a t e a n d u s e s t r u c t u r e d d a t a b a s e sy st e m s t o m a n a g e y o u r
a p p l i c a t i o n ' s da t a .
T h e s e t o o l s i n c l u d e t h e M i c r o s o f t J e t d a t a b a se en gi n e, t h e D a t a c o n t r o l , a n d t h e d a t a a c c e s s
o bj e c t s ( D A O ) pr o gr a m m i n g i n t e r f a c e .
U s i n g d a t a a c c e s s o bj e c t s , y o u c a n c r e a t e d a t a b a s e s a n d b u i l d f u l l - f e a t u r e d a pp l i c a t i o n s t h a t
a c c e s s e x i s t i n g d a t a b a s e s i n m a n y po pu l a r f o r m a t s, i n c l u di n g M i c r o so f t A c c e s s, B er e a v e, dB a s e,
M i c r o s o f t F o x P r o , a n d P a r a do x , a s w el l a s O p en D a t a b a s e C o n n ec t i v i t y ( O D B C ) c l i en t / se r v er
da t a b a s e s l i k e M i c r o s o f t S Q L S e r v e r .
T h e a bi l i t y t o c r e a t e a n d a c c e s s s t r u c t u r e d da t a b a s e s y s t em s gi v e s y o u m a n y p r o gr a m m i n g
advantages:
·
·
·
I t l e t s y o u w r i t e pr o g r a m s t h a t u s e ex i st i n g d a t a b a s e s.
I t a l l o w s y o u r a p p l i c a t i o n t o s h a r e da t a w i t h o t h er pr o gr a m s.
I t s i m pl i f i e s y o u r p r o g r a m m i n g, si n c e y o u do n o t n ee d t o h a n dl e l o w - l e v e l f i l e a c c e s si n g a n d
s e a r c h i n g.
Data Access Object (DAO)
W h e n V I S U A L B A S I C f i r s t s t a r t e d w o r k i n g w i t h da t a b a se s, i t u s e d t h e M i c r o so f t J et D a t a b a se
E n g i n e , w h i c h i s w h a t M i c r o s o f t A c c e s s u s e s. U s i n g t h e J et E n g i n e r e pr e se n t e d a c o n s i d er a bl e
a d v a n c e f o r V I S U A L B A S I C , b e c a u s e n o w y o u c o u l d w o r k w i t h a l l k i n ds o f da t a f o r m a t s i n t h e f i e l d s
o f a d a t a ba s e : t e x t , n u m b e r s , i n t e g e r s, l o n g s, si n g l es, do u b l es, d a t e s, bi n a r y v a l u e s, O L E o bj e c t s,
c u r r e n c y v a l u e s , B o o l e a n v a l u e s , a n d ev en m em o o bj ec t s . T h e J e t E n g i n e a l so su p po r t s S Q L , w h i c h
da t a b a s e p r o gr a m m e r s f o u n d a t t r a c t i v e. T o su p po r t t h e J et D a t a b a se E n gi n e, M i c r o so f t a d d ed t h e
da t a c o n t r o l t o V I S U A L B A S I C , a n d y o u c a n u s e t h a t c o n t r o l t o o p en J et d a t a ba s e ( . m d b) f i l e s.
M i c r o s o f t a l so a dd e d a s e t o f D a t a A c c e ss O b j ec t s ( D A O ) t o V I S U A L B A S I C .
DBEngine
WorkSpace
Database
T a bl e D e f
QueryDef
Recordset
Field
Index
Relation
-
T h e J e t D a t a b a s e E n gi n e
A n a r e a c a n h o l d o n e o r m o r e d a t a ba s e s
A c o l l e c t i o n o f t a bl e s
The Definition of a Table
T h e D e f i n i t i o n o f a Q u er y
T h e s e t o f r e c o r d s t h a t m a k e u p t h e r e su l t o f a qu er y
A C o l u m n i n a T a bl e
A n o r d e r e d l i s t o f r ec o r d s
S t o r e d i n f o r m a t i o n a bo u t s p ec i f i c r el a t i o n sh i p b e t w e en t a bl e s
V i s u a l B a s i c pr o v i d e s t w o m e t h o ds o f i n t er f a c i n g w i t h t h e J et d a t a ba s e en gi n e: t h e D a t a c o n t r o l
a n d d a t a a c c e s s o b j e c t s . T h e D a t a c o n t r o l g i v e s y o u l i m i t e d a b i l i t y t o a c c e s s e x i st i n g d a t a b a s es
w i t h o u t pr o gr a m m i n g; t h e D A O m o d e l i s a c o m p l e t e pr o gr a m m i n g i n t er f a c e t h a t gi v e s y o u t o t a l
c o n t r o l o f t h e d a t a ba s e . T h e s e t w o m e t h o d s a r e n o t m u t u a l l y ex c l u si v e ; i n f a c t , t h er e a r e m a n y
s i t u a t i o n s w h e r e y o u w i l l w a n t t o u s e bo t h o f t h em t o g et h e r .
T h e D A O m o d e l i s a c o l l e c t i o n o f o b j ec t c l a s se s t h a t m o d el t h e st r u c t u r e o f a r el a t i o n a l d a t a ba s e
s y s t e m . T h e y pr o v i d e p r o p e r t i e s a n d m et h o d s t h a t a l l o w y o u t o a c c o m pl i sh a l l o f t h e o pe r a t i o n s
n e c e s s a r y t o m a n a ge s u c h a s y s t e m , i n c l u di n g f a c i l i t i es f o r c r e a t i n g da t a b a s e s, d ef i n i n g t a bl e s,
f i e l d s a n d i n de x e s , e s t a bl i s h i n g r e l a t i o n s b et w e en t a b l es, n a v i ga t i n g a n d qu e r y i n g t h e da t a b a s e,
and so on.
T h e J e t d a t a b a s e e n gi n e t r a n s l a t e s t h e s e o p er a t i o n s o n da t a a c c e ss o b j ec t s i n t o ph y s i c a l
o p e r a t i o n s o n t h e d a t a ba s e f i l e s t h e m s el v es, h a n dl i n g a l l t h e m ec h a n i c s o f i n t er f a c i n g w i t h t h e
di f f e r e n t s u p po r t e d da t a ba s e s .
D a t a b a s e p r o g r a m m i n g i n V i s u a l B a s i c c o n s i s t s o f c r ea t i n g d a t a a c c e ss o bj ec t s, s u c h a s D a t a ba s e,
T a bl e D e f , F i e l d, a n d I n d e x o bj e c t s , t h a t c o r r es po n d t o t h e v a r i o u s p a r t s o f t h e ph y s i c a l d a t a b a se
y o u w a n t t o a c c e s s . Y o u u s e t h e p r o pe r t i es a n d m e t h o ds o f t h e s e o bj ec t s t o p er f o r m o pe r a t i o n s o n
t h e d a t a ba s e . Y o u c a n di s p l a y t h e r e su l t s o f t h e s e o p er a t i o n s a n d a c c e pt i n pu t f r o m t h e u s e r o n
V i s u a l B a s i c f o r m s , u s i n g bo t h bo u n d a n d u n bo u n d c o n t r o l s. T h i s a p pr o a c h s i m pl i f i e s t h e c o d e y o u
n e e d t o w r i t e a n d i n s u l a t e s y o u f r o m t h e u n d er l y i n g st r u c t u r e a n d m ec h a n i c s o f r et r i e v i n g a n d
u p da t i n g d a t a . I t gi v e s y o u gr e a t f l e x i b i l i t y , b ec a u se y o u c a n u se t h e sa m e o b j ec t s, pr o p er t i es, a n d
m e t h o ds t o w o r k w i t h a w i de v a r i e t y o f s u p po r t e d da t a b a s e f o r m a t s. A l so , i f y o u c h a n g e f r o m o n e
da t a b a s e f o r m a t t o a n o t h e r ( f o r e x a m pl e, po r t i n g a l o c a l M i c r o so f t A c c e s s d a t a ba s e t o a S Q L S e r v er
da t a b a s e o n a n e t w o r k ) , y o u ' l l n e e d t o m a k e f ew c h a n g es i n y o u r c o d e t o a c c o m m o d a t e t h e
c h a n g e . Y o u c a n e v e n c r e a t e a p pl i c a t i o n s t h a t j o i n t a b l es f r o m t w o o r m o r e di f f er en t d a t a ba s e s i n a
s i n g l e qu e r y o r r e po r t .
T h e r e a r e t h r e e c a t e go r i e s o f d a t a ba s e s t h a t V i s u a l B a si c r ec o gn i z e s t h r o u gh D A O a n d t h e J e t
e n gi n e :
NetScape COMPUTER ACADEMY
104
Visual Basic Databases
A l s o c a l l e d n a t i v e d a t a b a s e s , t h e s e da t a b a s e f i l e s u s e t h e s a m e f o r m a t a s M i c r o so f t A c c es s. T h e se
da t a b a s e s a r e c r e a t e d a n d m a n i pu l a t e d d i r ec t l y by t h e J et en g i n e a n d p r o v i d e m a x i m u m f l e x i bi l i t y
a n d s p e e d.
External Database s
T h e s e a r e I n d e x e d S e qu e n t i a l A c c e s s M et h o d ( I S A M ) da t a b a se s i n s e v er a l p o pu l a r f o r m a t s,
i n c l u di n g B t r i e v e , dB A S E I I I , d B A S E I V , M i c r o so f t F o x P r o v e r s i o n s 2 . 0 a n d 2 . 5 , a n d P a r a d o x
v e r s i o n s 3 . x a n d 4 . 0 . Y o u c a n c r e a t e o r m a n i p u l a t e a l l o f t h es e d a t a b a se f o r m a t s i n V i su a l B a si c .
Y o u c a n a l s o a c c e s s t e x t f i l e d a t a b a s e s a n d M i c r o so f t E x c el o r L o t u s 1 - 2 - 3 w o r k sh e et s.
ODBC Database s
T h e s e i n c l u de c l i e n t - s e r v e r da t a b a s e s t h a t c o n f o r m t o t h e O D B C st a n d a r d, su c h a s M i c r o so f t S Q L
S e r v e r . T o c r e a t e t r u e c l i e n t - s e r v e r a p p l i c a t i o n s i n V i s u a l B a si c , y o u c a n u s e O D B C D i r ec t t o p a ss
c o m m a n d s di r e c t l y t o t h e e x t e r n a l s e r v er f o r p r o c e ss i n g.
VISUAL BASIC Database field type: V I S U A L B A S I C s t o r e s v a l u e s i n t h e d a t a b a s e i n d a t a f i e l d s. V I S U A L B A S I C r ec o gn i z e s 1 4
di f f e r e n t t y p e s o f f i e l d s t h a t y o u c a n u s e t o st o r e v a l u e s. E a c h d a t a f i e l d h a s u n i q u e qu a l i t i e s t h a t
m a k e i t s pe c i a l .
The
The
size
The
Type
Size
VISUAL BASIC Type Comments
Binary
V
none
limited to 255 bytes
Boolean
1
Boolean
st o r e s 0 o r 1 o n l y
Byte
1
i n t e ge r
0-255
Counter
8
long
a u t o i n c r em en t i n g l o n g t y p e
Currency
8
c u r r en c y
1 5 s p a c e s l ef t t o d ec i m a l 4 t o r i gh t
Date-time
8
D a t e/ T i m e
da t e s t o r e s o n l ef t a n d t i m e o n r i gh t
Double
8
do u bl e
-------------
Guide
16
none
gl o b a l l y u n i qu e i d en t i f i e r
I n t e ge r
2
i n t e ge r
-----------
Long
8
long
-------------
Long binary memo
---
none
f o r O L E o bj ec t
Memo
----
string
up to 1.2 GB
S i n gl e
4
single
---------
Text
X
string
l en g t h l i m i t ed t o 2 5 5
f i r s t c o l u m n c o n t a i n s t h e V I S U A L B A S I C da t a f i el d t y p e n a m e.
s e c o n d c o l u m n s h o w s t h e n u m b e r o f b y t e s o f st o r a ge t a k en b y v a r i o u s d a t a f i el d t y p e. I f t h e
i s s e t t o a / b, t h e l e n gt h i s d e t e r m i n e d by y o u , a t d es i gn t i m e o r r u n t i m e.
t h i r d c o l u m n s h o w s t h e e qu i v a l e n t V I S U A L B A S I C da t a t y p e f o r a s so c i a t e d da t a b a s e f i el d t i m e.
The Data Control
T h e d a t a c o n t r o l e n a b l e s y o u t o m o v e a r o u n d i n a d a t a ba s e f r o m r ec o r d t o r ec o r d a n d t o di s pl a y
a n d m a n i pu l a t e d a t a f r o m t h e r e c o r d s i n bo u n d c o n t r o l s. T h i s c o n t r o l d i s pl a y s a s et o f a r r o w
bu t t o n s t h e u s e r c a n c l i c k t o m o v e t h r o u gh t h e da t a b a se, a n d t h e r ec o r d s f r o m t h a t d a t a b a s e a r e
di s pl a y e d i n bo u n d c o n t r o l s . I n f a c t , y o u c a n p er f o r m m o s t da t a a c c e s s o pe r a t i o n s u s i n g t h e da t a
c o n t r o l w i t h o u t w r i t i n g a n y c o d e . D a t a - bo u n d c o n t r o l s a u t o m a t i c a l l y di s pl a y da t a f r o m o n e o r m o r e
f i e l d s f o r t h e c u r r e n t r e c o r d, a n d t h e D a t a c o n t r o l p er f o r m s a l l o p e r a t i o n s o n t h e c u r r en t r ec o r d . I f
t h e da t a c o n t r o l i s m a d e t o m o v e t o a di f f e r e n t r ec o r d, a l l bo u n d c o n t r o l s a u t o m a t i c a l l y p a ss a n y
c h a n g e d t o t h e d a t a c o n t r o l t o b e s a v e d i n t h e d a t a b a se. T h e d a t a c o n t r o l t h en m o v es t o t h e
r e qu e s t e d r e c o r d a n d p a s s e s b a c k da t a f r o m t h e c u r r en t r ec o r d t o t h e bo u n d c o n t r o l ’ s w h er e i t ’ s
di s pl a y e d.
W h e n a n a p pl i c a t i o n b e gi n s , V I S U A L B A S I C u s es d a t a c o n t r o l pr o p e r t i e s t o o p en a s el ec t e d
da t a b a s e , c r e a t e a D A O d a t a ba s e o bj ec t , a n d c r e a t e a R ec o r d s et o bj ec t . T h e D a t a c o n t r o l ’ s
D a t a b a s e a n d R e c o r d s e t pr o p e r t i e s r ef er t o t h o s e D a t a b a s e a n d R ec o r d s et o b j ec t , a n d y o u c a n
m a n i p u l a t e t h e d a t a u s i n g t h o s e pr o p er t i e s. F o r e x a m p l e, i f y o u h a v e a n S Q L st a t em en t t o ex ec u t e,
y o u p l a c e t h a t s t a t e m e n t i n t h e d a t a c o n t r o l ’ s R ec o r dS o u r c e pr o p er t y , a n d t h e r es u l t a pp e a r s i n t h e
R e c o r d s e t p r o pe r t y .
NetScape COMPUTER ACADEMY
105
Adding a Data Control to a Program
T h e d a t a c o n t r o l i s t h e o n l y i n t r i n s i c d a t a b a se c o n t r o l a l r e a d y i n t h e t o o l bo x .
o n i t t o a d d t o t h e f o r m . S e t t h e c o n t r o l s c a pt i o n pr o p er t y a s y o u de s i r e.
Y o u c a n do u b l e c l i c k
Opening a Database with Data control
T o c o n n e c t a d a t a c o n t r o l t o a d a t a b a s e, y o u j u st s et t h e d a t a c o n t r o l ’ s D a t a ba s eN a m e pr o p er t y t o
t h e p a t h a n d n a m e o f t h e A c c e s s / J e t da t a b a s e f i l e y o u w a n t t o o pe n . I n a d di t i o n , y o u se l ec t t h e
t a bl e y o u w a n t t o w o r k w i t h i n t h a t f i l e w i t h d a t a c o n t r o l ’ s R ec o r d S o u r c e pr o p er t y . A f t e r c o n n ec t i n g
t h e d a t a b a s e n a m e p r o pe r t y , y o u ’ l l g e t t h e l i st o f t a b l e s / qu er i e s i n t h a t d a t a ba s e i n R ec o r dS o u r c e
pr o p e r t y . S e l e c t o n e y o u w a n t t o c o n n ec t .
Connecting a Data Control to a Bound Control
T o s e e t h e d a t a i n d a t a c o n t r o l , w e ’ l l u s e a d a t a - bo u n d c o n t r o l - a t e x t bo x . T o c o n n ec t a t ex t bo x t o
a D a t a C o n t r o l , s e t t h e t e x t bo x ’ s D a t a S o u r c e pr o p er t y t o t h e n a m e o f t h e D a t a C o n t r o l . T o d i s pl a y
a pa r t i c u l a r f i e l d i n t h e t e x t bo x , p l a c e t h e f i el d’ s n a m e i n D a t a F i e l d pr o p er t y . W h en y o u m o v e
t h r o u gh t h e d a t a b a s e u s i n g d a t a c o n t r o l ’ s m o v i n g bu t t o n s, t h e c u r r en t r ec o r d s d a t a w i l l be
di s pl a y e d i n t e x t bo x .
NetScape COMPUTER ACADEMY
106
Chapter 20
Remote Data Object (RDO)
RDO ( Remote Data Objects )
R e m o t e D a t a O b j e c t s ( R D O ) c o n n e c t t o d a t a b a s e s u si n g O D B C ( O pe n D a t a B a s e C o n n ec t i v i t y ) . Y o u
s e t u p O D B C c o n n e c t i o n s t o d a t a ba s e s u si n g t h e O D B C i t e m i n t h e W i n do w s C o n t r o l P a n e l , a n d t h en
u s e o n e o f t h o s e c o n n e c t i o n s w i t h R D O o bj ec t s. T h e R em o t e D a t a O b j ec t s a r e d e si gn e d i n p a r a l l el
w i t h t h e D a t a A c c e s s O b j e c t s ; f o r e x a m pl e, t h e da t a b a s e e n g i n e i s r do E n gi n e i n st e a d o f D B E n gi n e,
R e c o r d s e t s h a v e b e c o m e r do R e s u l t s et s, T a b l eD e f s b ec a m e r do T a b l e s, W o r k s p a c e s b ec a m e
r do E n v i r o n m e n t s , F i e l d o bj e c t s b e c a m e r do C o l u m n O bj ec t s, a n d so o n . A l t h o u gh t h e n a m e s h a v e
c h a n g e d, t h e c o m m a n d s e t i s v e r y s i m i l a r t o D A O .
The Remote Data Control
L i k e t h e da t a c o n t r o l , t h e r e m o t e d a t a c o n t r o l g i v es y o u a c c e s s t o a d a t a b a s e a n d d i s p l a y s da t a i n
bo u n d c o n t r o l s . U n l i k e t h e d a t a c o n t r o l , h o w e v e r , y o u u se t h e r e m o t e d a t a c o n t r o l t o a c c s s O D B C
da t a s o u r c e s . A s w i t h t h e D a t a C o n t r o l , i f t h e r e m o t e d a t a c o n t r o l i s i n st r u c t e d t o m o v e t o a
di f f e r e n t r o w , a l l bo u n d c o n t r o l s a u t o m a t i c a l l y pa s s a n y c h a n g e s t o t h e r em o t e d a t a c o n t r o l t o b e
s a v e d t o t h e O D B C d a t a s o u r c e . T h e r em o t e d a t a c o n t r o l t h en m o v e s t o t h e r eq u e s t e d r o w a n d
pa s s e s b a c k d a t a f r o m t h e c u r r e n t r o w t o t h e bo u n d c o n t r o l s w h er e i t ’ s di s pl a y e d. I n f a c t , t h e
r e m o t e d a t a c o n t r o l b e h a v e s l i k e t h e d a t a c o n t r o l i n m o st r e s pec t s, w i t h so m e di f f e r en c e s; f o r
example, you can treat
t h e r e m o t e d a t a c o n t r o l ’ s S Q L pr o p er t y l i k e t h e d a t a c o n t r o l ’ s
R e c o r dS o u r c e p r o pe r t y , bu t i t c a n n o t a c c e pt t h e n a m e o f a t a bl e b y i t se l f u n l e s s y o u po pu l a t e t h e
r do T a bl e s c o l l e c t i o n f i r s t .
R e m o t e D a t a o bj e c t s a n d c o l l e c t i o n s pr o v i d e a f r a m ew o r k f o r u si n g c o d e t o c r e a t e a n d m a n i pu l a t e
c o m po n e n t s o f a r e m o t e O D B C da t a b a s e sy s t e m . T h e Re m o t e D a t a O bj e c t ( RD O ) i s u se d f o r
a c c e s s i n g R D B M S da t a b a s e s o v e r l o c a l a r ea n e t w o r k . T h e R D O a n d R D C ( R em o t e D a t a C o n t r o l )
m o d e l s p r o p e r t i e s a n d m e t h o ds m a k e t h em b et t e r su i t e d t o m a n i p u l a t i n g d a t a i n r em o t e s y st e m s.
T h e R D C a n d R D O m o de l s a r e s h i p p e d a s p a r t o f V I S U A L B A S I C E n t er pr i s e e di t i o n . O n e o f t h e m o st
o b v i o u s d i f f e r e n c e s i s i n t h e s i z e o f t h e o bj ec t m o d el s. T h e D A O m o d el h a s o v e r t w en t y m a j o r
o bj e c t s t o w o r k w i t h , a n d t h e R D O m o d e l h a s l e s s t h a n f i f t e en . T h i s r ef l ec t s t h e f u n d a m e n t a l
di f f e r e n c e s b e t w e e n t h e m o d e l s . T h e R D O m o d el i s d e si gn e d t o a l l o w a c c e s s o n l y t o t h e da t a ,
w h e r e a s D A O m o d e l i s d e s i gn e d gi v e c o m pl e t e a c c e s s t o bo t h d a t a a n d st r u c t u r e o f t a b l e. R D O
i n t e r f a c e w a s m e a n t f o r u s e w h e n c o n n ec t i n g t o l a r g e m u l t i - u s er d a t a b a s e s y st em s l i k e S Q L s er v er ,
ORACLE, etc.
Registering an OD BC source
I t i s , w i t h t h e R e m o t e D a t a C o n t r o l , y o u c a n u s e a n O D B C da t a so u r c e w i t h a r em o t e d a t a c o n t r o l .
B u t f i r s t , y o u h a v e t o c o n f i gu r e a n ew c o n n ec t i o n f o r t h e O D B C so u r c e. Y o u c o n f i gu r e a n O D B C
c o n n e c t i o n w i t h t h e 3 2 - bi t O D B C i t e m i n W i n do w s C o n t r o l P a n el . O p en t h a t i t e m , c l i c k t h e S y st em
D S N t a b ( D S N s t a n d s f o r D a t a S o u r c e N a m e) , a n d c l i c k t h e A d d bu t t o n t o o p en t h e C r e a t e N ew
D a t a S o u r c e di a l o g bo x . Y o u c a n s e e t h e O D B C dr i v er s i n st a l l e d o n y o u r s y st em i n t h i s d i a l o g b o x .
S e l e c t t h e o n e y o u w a n t t o u s e a n d c l i c k f i n i sh . F o r e x a m p l e, t o u se a M i c r o so f t A c c e ss D a t a b a s e,
w e ’ l l s e l e c t t h e M i c r o s o f t A c c e s s D r i v er en t r y h e r e. T h i s o p en s t h e O D B C M i c r o so f t A c c e ss
D i a l o g bo x . U s e t h e S e l e c t B u t t o n t o s el ec t t h e da t a b a s e f i l e y o u w a n t t o c o n n ec t w i t h t h i s D S N ,
gi v e a n a m e f o r D S N i n D a t a S o u r c e N a m e bo x , sa y “ a bc ” a n d c l i c k O K . T h i s c r ea t es a n ew O D B C
c o n n e c t i o n f o r o u r f i l e , a n d t h a t c o n n ec t i o n a p p e a r s i n t h e O D B C D a t a S o u r c e A d m i n i s t r a t o r . C l i c k
O K t o c l o s e t h e O D B C D a t a S o u r c e A dm i n i s t r a t o r . N o w y o u ’ v e a dd e d a n ew O D B C so u r c e t o y o u r
c o m pu t e r ’ s d a t a e n v i r o n m e n t . w e ’ l l u s e t h i s D S N t o c o n n ec t w i t h t h i s D a t a b a s e.
Opening a Database with Remote Data Control
T o a d d a n e w r e m o t e da t a c o n t r o l t o a f o r m , f o l l o w t h e s e s t ep s.







Select the Project>Components
C l i c k t h e C o n t r o l s t a b i n t h e C o m po n en t s d i a l o g
S e l e c t t h e M i c r o s o f t R e m o t e D a t a C o n t r o l en t r y i n t h e C o n t r o l s l i st bo x
C l i c k O K t o c l o s e t h e C o m po n e n t s D i a l o g
T h i s a d ds t h e R e m o t e D a t a C o n t r o l t o y o u r T o o l bo x , dr a w t h a t c o n t r o l o n y o u r f o r m
C o n n e c t t h e r e m o t e d a t a c o n t r o l t o a n O D B C d a t a so u r c e w i t h t h e D a t a S o u r c e pr o p er t y .
Create a result set that you can work with by supplying an SQL statement in the SQL
pr o p e r t y .
L e t ’ s s e e a n e x a m pl e , A d d a R e m o t e D a t a C o n t r o l , M S R D C 1 , t o a f o r m n o w . S et t h e r em o t e d a t a
c o n t r o l ’ s D a t a S o u r c e N a m e pr o p e r t y t o “ a bc ” w h i c h w e’ v e j u st c r e a t e d.
U n l i k e t h e d a t a c o n t r o l , y o u n e e d t o c r e a t e a r e su l t s et t o w o r k w i t h t h e r em o t e da t a c o n t r o l , a n d
w e c r e a t e a r e s u l t s e t by s e l e c t i n g t h e en t i r e st u d en t s t a b l e w i t h S Q L st a t e m en t f o r e x a m p l e
“ S E L E C T * F R O M S T O C K ” ( W h e r e S t o c k i s a T a bl e i n t h e da t a b a s e) . P l a c e t h a t s t r i n g i n t h e
c o n t r o l ’ s S Q L pr o p e r t y .
NetScape COMPUTER ACADEMY
107
Connecting a Remote Data Control to a Bound Control
T o c o n n e c t a t e x t bo x t o a r e m o t e d a t a c o n t r o l , s et t h e t e x t b o x ’ s D a t a S o u r c e pr o p er t y t o t h e n a m e
o f t h e r e m o t e d a t a c o n t r o l . T o d i s p l a y a p a r t i c u l a r f i el d i n t h e t e x t bo x , pl a c e t h a t f i e l d n a m e i n
t e x t bo x ’ s D a t a F i e l d pr o p e r t y .
L e t ’ s s e e a n e x a m p l e , h e r e w e w i l l u s e t h e da t a ba s e w e c r e a t e d a n d t h e r em o t e d a t a c o n t r o l w e ’ v e
c r e a t e d. A d d a t e x t bo x , T e x t 1 , t o t h e f o r m , a n d s et i t s D a t a S o u r c e pr o p er t y t o r em o t e d a t a
c o n t r o l , M S R D C 1 . W h e n y o u m o v e t h r o u gh t h e da t a b a s e w i t h t h e d a t a c o n t r o l , t h e r e m o t e d a t a
c o n t r o l w i l l h o l d t h e c u r r e n t r e c o r d; t o d i s pl a y a f i e l d i n t h e c u r r e n t r ec o r d, pl a c e t h a t f i e l d’ s n a m e
i n t h e t e x t bo x ’ s D a t a F i e l d pr o p e r t y .
The Basics of RDO
B y de f a u l t , a l l r e m o t e c o n n e c t i o n s t o d a t a a r e n o n u p d a t a ba l e ( r ea do n l y ) da t a s et s. Y o u c a n c h a n g e
this behaviors by m anipulating the following three properties
C u r s o r D r i v e r s : - U s e d t o d e f i n e t h e w a y i n w h i c h y o u c a n m o v e w i t h i n a s et o f d a t a . T h e
da t a b a s e e n g i n e m u s t k e e p t r a c k o f a l l r ec o r d s i n t h e c o l l ec t i o n a n d t h ei r pl a c e i n t h e d a t a s et . T h i s
pr o c e s s o f k e e pi n g t r a c k o f t h e l o c a t i o n o f d a t a po i n t e r i n d a t a s e t i s c a l l e d c u r so r m a n a g em e n t .
Y o u c a n u s e t w o pr i m a r y l o c a t i o n s t o k e e p t r a c k o f c u r so r l o c a t i o n : t h e c l i en t w o r k st a t i o n o r t h e
da t a b a s e s e r v e r . U n d e r R D C a n d R D O m o d el s , t h e O D B C d r i v er h a n dl e s t h e l o c a l w o r k st a t i o n
v e r s i o n o f c u r s o r m a n a g e m e n t . T h e d a t a ba s e s er v e r t h a t h o l d s t h e d a t a h a n dl e s t h e s er v er - si d e
cursor management.
U n d e r R D O t h e r e a r e t w o o t h e r po s s i bl e s et t i n g s f o r c u r so r m a n a ge m e n t . C l i e n t B a t c h a n d N o n e.
Y o u c a n u s e t h e C l i e n t B a t c h o pt i o n w i t h a d v a n c e s d a t a s er v er s t h a t a l l o w m u l t i pl e da t a r e qu e st s t o
b e s e n t s i m u l t a n e o u s l y o v e r t h e s a m e c o n n ec t i o n . I n t h i s c a se y o u c a n b a t c h u p m u l t i p l e S Q L
s t a t e m e n t s i n a s i n g l e s t r i n g a n d s e n d t h em t o t h e se r v e r a t o n e t i m e. T h e s er v er m a n a ge s t h e
r e qu e s t s a n d r e po r t s r e s u l t s b a c k t o y o u a s ea c h S Q L st a t em en t i s c o m pl et e d.
Y o u a l s o c a n c h o o s e t o u s e n o c u r s o r dr i v er w h en a c c e s si n g r em o t e d a t a . T h i s r e su l t s i n t h e s e r v er
s e n di n g y o u a s i n g l e r e c o r d f r o m t h e d a t a s et ea c h t i m e y o u r e qu es t i t . Y o u c a n n o t r e q u e st
pr e v i o u s r e c o r d s f r o m t h e s e r v e r a n d, i f y o u w a n t t o s t a r t a t t h e t o p o f t h e c o l l ec t i o n , y o u m u st
r e s t a r t t h e qu e r y . T h i s i s t h e m o s t l i m i t e d c u r so r m a n a g em en t a v a i l a bl e f o r r em o t e c o n n ec t i o n .
C u r s o r d r i v e r o p t i o n s w i t h R D O a n d RD C
Option
integer value
description
rdUSeIfNeeded
0
I n s t r u c t s R D O t o d e t er m i n e t h e b e st c u r so r
dr i v er . T h i s i s t h e de f a u l t s et t i n g
r d U s e O d bc
1
I n s t r u c t s R D O t o u se c l i en t si d e O D B C c u r so r
dr i v er t o k e e p t r a c k o f d a t a po i n t er i n t h e
da t a s e t
rdUseServer
2
I n s t r u c t s R D O t o u se t h e r em o t e R D B M S
c u r so r d r i v er t o k e e p t r a c k o f t h e
da t a po i n t e r i n t h e d a t a s et
rdUseClientBatch
3
rdUseNone
4
I n s t r u c t s R D O t o u se t h e r em o t e R D B M S t o
m a n a g e m u l t i pl e c u r so r s i n r e s po n s e t o
ba t c h r e qu e st s s en t f r o m t h e c l i en t
w o r k st a t i o n . T h i s i s a v a i l a bl e o n l y o n
a d v a n c e d R D B M S s y s t em s ( S Q L s e r v er 6 . 0
a n d h i gh er )
I n s t r u c t s R D O t o u se n o c u r so r d r i v er . T h e
r e su l t i s a r et u r n o n o n l y o n e r o w , n o m a t t e r
h o w m a n y r o w s a r e i n t h e r e su l t s et . T h i s
o pt i o n st i l l c a n be u s e d t o p er f o r m a c t i o n
qu er i e s su c h a s U P D A T E S E T , I N S E R T I N T O ,
S E L E C T I N T O , et c .
W h e n r dU s e I f N e e d e d i s i n pl a c e , R D O w i l l a t t em pt t o u s e s er v er s i d e c u r so r s i f t h ey a r e a v a i l a b l e.
I f t h e R D B M S do e s n o t s u p po r t s e r v e r si d e c u r so r m a n a g em en t , R D O w i l l u se t h e c l i en t w o r k s t a t i o n
c u r s o r m a n a g e r ( r dU s e O d bc ) . T h e r dU s eN o n e o pt i o n i s u s e d o n l y i f t h e v a l u e i s e x p l i c i t l y s el ec t e d.
T h e i m po r t a n t t h i n g t o r e m e m b e r a bo u t c u r so r d r i v e r s i s t h a t t h e y go v e r n t h e w a y y o u c a n n a v i g a t e
t h e d a t a s e t . T h e o t h e r i m po r t a n t a s p ec t o f c u r so r dr i v e r i s t h a t , w i t h R D O , y o u c a n s el ec t t h e
dr i v e r y o u pr e f e r : C l i e n t S i de o r S e r v er S i d e a n d d a t a so u r c e ( R D B M S ) m u st su p po r t y o u r c u r so r
r e qu e s t i n o r de r f o r y o u t o b e a b l e t o s e l ec t c e r t a i n s er v er si d e o p t i o n s.
NetScape COMPUTER ACADEMY
108
D a t a s e t T y p e : - S e v e r a l t y pe s o f d a t a se t s c a n b e r et u r n ed b y t h e r em o t e d a t a so u r c e.
Dataset Type Options with RDO
Option
Integer Value
Description
r d O p e n F o r w a r dO n l y
0
C r ea t e s a r ea d - o n l y , sc r o l l f o r w a r d o n l y
da t a s e t . A l l m em b er s a r e c o p i ed t o t h e
w o r k st a t i o n f o r u s e. T h i s i s t h e de f a u l t
o pt i o n
rdOpenStatic
1
C r ea t e s a n u pd a t a b l e d a t a s et t h a t h a s
n o n c h a n g i n g m e m be r sh i p. N ew r ec o r d s
a d d e d t o t h e s et m a y o r m a y n o t a p p e a r a s
pa r t o f t h e s et , d e pen d i n g o n t h e c u r so r
dr i v er . A l l m e m be r s a r e c o pi e d t o c l i en t
w o r k st a t i o n f o r u s e.
rdOpenDynamic
2
C r ea t e s a n u pd a t a b a l e d a t a se t t h a t h a s
c h a n gi n g m em b er sh i p. N ew r ec o r d s a d d ed t o
t h e s et w i l l a pp e a r a s p a r t o f t h e se t . A c t u a l
da t a r ec o r d s a r e bu f f e r ed t o t h e c l i en t
w o r k st a t i o n a s n e e d ed. R ec o r d k e y s a r e n o t
used
rdOpenKeyset
3
C r ea t e s a n u pd a t a b a l e d a t a se t t h a t h a s
c h a n gi n g m em b er sh i p. N ew r ec o r d s a d d ed
t o t h e s et w i l l a p p ea r a s pa r t o f t h e s et .
A c t u a l r ec o r d s a r e bu f f e r e d t o t h e c l i en t
w o r k st a t i o n a s n e e d ed r ec o r d k e y s a r e
c r e a t e d t o po i n t t o a l l m em b er s o f t h e s et .
T h i s en a bl e s y o u t o u se bo o k m a r k s w i t h t h e
da t a s e t .
T h e p r i m a r y w o r k o f d a t a s e t m a n a g e m e n t f r o m t h e w o r k s t a t i o n po i n t o f v i ew i s g a i n i n g a c c es s t o
t h e a c t u a l r o w s o f d a t a s t o r e d i n t h e r em o t e s y s t e m . T h e m o s t e f f i c i en t m e t h o d f o r ga i n i n g a c c e s s
i s t o r e c e i v e a s e t o f r o w po i n t e r s f r o m t h e R D B M S , n o t t o a c t u a l l y r ec ei v e t h e c o m pl et e r o w s o f
da t a . I n t h i s w a y , t h e R D B M S c a n a l l o w m u l t i pl e u s e r s t o h a v e a c c e s s t o t h e s a m e s et o f r ec o r d s
w i t h o u t h a v i n g t o d e a l w i t h m a j o r s y n c h r o n i z a t i o n w o r k i f m o r e t h a n o n e u s e r a t t e m pt s t o u p d a t e
t h e s a m e r o w o f d a t a . F o r t h i s r e a s o n , R D O s u p po r t s t h e u s e o f r dO p en K e y s et da t a s e t s. T h es e a r e
s e t s o f d a t a t h a t c o n t a i n n o t j u s t d a t a r o w s , bu t a l so k ey s et po i n t e r s t o o t h er r o w s i n t h e
r e qu e s t e d da t a s e t . R d O p e n K e y s e t s a r e t h e r e m o t e d a t a a c c es s v er s i o n o f M i c r o so f t J e t D y n a s et
type datasets.
T h e r dO p e n D y n a m i c d a t a s e t s do n o t su ppo r t k e y s , bu t t h e y do a c t a s d y n a m i c a l l y c h a n gi n g s et o f
da t a . T h e s e d y n a m i c d a t a s e t s r e f l e c t n ew l y a d d e d o r d e l e t ed r ec o r d s j u st a s r d O p en K ey s et
da t a s e t s , bu t t h e y do n o t s u p po r t t h e u s e o f bo o k m a r k s. T h i s i s be c a u se t h e r d O p en D y n a m i c
da t a s e t s a r e k e pt dy n a m i c t h r o u gh t h e u s e o f r e c u r r i n g r ef r e sh e s o f t h e da t a m e m be r sh i p f r o m t h e
r e m o t e d a t a s o u r c e . A l t h o u gh t h i s m e t h o d i s a c c u r a t e, i t i s h a r dl y ef f i c i en t . I f y o u h a v e l a r g e s et s
o f da t a , u s i n g t h e r dO p e n D y n a m i c o pt i o n c a n r e su l t i n d ec r e a s ed t h r o u g h pu t , b ec a u s e a l l da t a
m e m b e r s a r e s h i p p e d t o t h e c l i e n t e a c h t i m e t h e s et i s r ef r e sh e d.
I t i s a l s o i m po r t a n t t o n o t e t h a t r d O p en S t a t i c da t a s et s a r e u pd a t a bl e. E v en t h o u gh t h ei r
m e m b e r s h i p i s k e pt s t a t i c , i t i s s t i l l po ss i bl e t o u p d a t e t h e r ec o r d s i n t h e s et . T h e s e d a t a s et s a c t
m u c h l i k e a n u p d a t a ba l e v e r s i o n o f M i c r o so f t J et S n a ps h o t da t a s et .
NetScape COMPUTER ACADEMY
109
Chapter 21
ActiveX Data Object (ADO)
ADO (ActiveX Data Objects)
A c t i v e X D a t a O bj e c t ( A D O ) m o d e l i s de s i gn e d t o en a bl e a c c e ss t o d a t a b a s e s o v e r i n t e r n e t
c o n n e c t i o n s . M i c r o s o f t ’ s l a t e s t s e t o f da t a a c c e s s o bj ec t s a r e A c t i v eX D a t a O b j ec t s. T h e s e o bj ec t s
l e t s y o u a c c e s s d a t a i n a d a t a b a s e s e r v e r t h r o u gh a n y O L E D B pr o v i d er . A D O i s i n t e n d e d t o gi v e y o u
a c o n s i s t e n t i n t e r f a c e f o r w o r k i n g w i t h a w i de v a r i et y o f d a t a so u r c e s, f r o m t e x t f i l e s t o O D B C
r e l a t i o n a l da t a b a s e s t o c o m p l e x gr o u p s o f d a t a b a se s. T h e w a y M i c r o so f t i m pl em en t s c o n n ec t i o n s t o
a l l t h o s e d a t a s o u r c e s i s w i t h t h e O L E D B s et o f C O M i n t e r f a c e s, bu t t h a t st a n da r d i s a v e r y
c o m p l e x o n e . O u r i n t e r f a c e t o t h a t i n t er f a c e, so t o s p ea k , i s A D O , a s et o f o bj ec t s w i t h pr o p er t i e s,
e v e n t s , a n d m e t h o ds .








C o n n e c t i o n - a c c e s s f r o m y o u r a p pl i c a t i o n t o a d a t a s o u r c e i s t h r o u g h a c o n n ec t i o n , t h e
e n v i r o n m e n t n e c e s s a r y f o r e x c h a n g i n g d a t a . T h e c o n n ec t i o n o b j ec t i s u se d t o s p ec i f y a
pa r t i c u l a r d a t a p r o v i d e r a n d a n y pa r a m e t er s.
C o m m a n d - a c o m m a n d i s s u e d a c r o s s a n e st a bl i s h e d c o n n ec t i o n m a n i pu l a t e s t h e d a t a so u r c e
i n s o m e w a y . T h e c o m m a n d o b j ec t l et s A D O m a k e i t e a sy t o i ss u e c o m m a n d s.
P a r a m e t e r - C o m m a n ds c a n r e qu i r e p a r a m e t e r s t h a t c a n b e s e t b ef o r e y o u i s su e t h e
c o m m a n d. F o r e x a m p l e , i f y o u r e qu i r e a d e bi t f r o m a c h a r g e a c c o u n t , y o u w o u l d sp ec i f y t h e
a m o u n t o f m o n e y t o be d e b i t e d a s a p a r a m e t e r i n a p a r a m e t e r o b j ec t .
R e c o r d s e t - I f y o u r c o m m a n d i s a q u e r y t h a t r et u r n s da t a a s r o w s i n f o r m a t i o n i n a t a bl e,
t h e n t h o s e r o w s a r e pl a c e d i n l o c a l st o r a g e i n a R ec o r d se t o bj ec t .
F i e l d - A r o w o f a R e c o r d s e t c o n si s t s o f o n e o r m o r e f i e l d s, w h i c h a r e s t o r e d i n F i el d o b j ec t s.
E r r o r - E r r o r s c a n o c c u r w h e n y o u r p r o gr a m i s n o t a b l e t o e st a bl i s h a c o n n ec t i o n , e x ec u t e a
c o m m a n d, o r p e r f o r m a n o p e r a t i o n , a n d A D O s u p po r t s a n E r r o r o b j ec t t o h o l d t h e r e su l t i n g
Error.
C o l l e c t i o n - A D O pr o v i d e s c o l l e c t i o n s, a n o bj ec t t h a t c o n t a i n s o t h e r o bj ec t s o f a p a r t i c u l a r
t y p e . A D O pr o v i d e s f o u r t y p e s o f c o l l ec t i o n s : t h e C o n n ec t i o n o bj e c t h a s t h e E r r o r s
C o l l e c t i o n , t h e C o m m a n d o bj e c t h a s t h e P a r a m e t e r s c o l l ec t i o n , t h e R ec o r d s et o b j ec t h a s t h e
F i e l d s c o l l e c t i o n , a n d t h e C o n n ec t i o n , C o m m a n d, R ec o r d s et , a n d F i e l d o bj ec t s a l l h a v e a
P r o p e r t i e s c o l l e c t i o n , w h i c h c o n t a i n s a l l t h e p r o p er t y o bj ec t s t h a t a p pl y t o t h e m .
E v e n t s - A D O u s e s t h e e v e n t s , j u st l i k e o t h e r i n t e r f a c e o bj ec t s i n V I S U A L B A S I C . Y o u u s e
e v e n t h a n d l i n g pr o c e du r e w i t h e v e n t s. T h er e a r e t w o t y p e s o f e v en t s: C o n n ec t i o n E v en t s,
i s s u e d w h e n t r a n s a c t i o n s o c c u r , o r w h en c o m m a n d s a r e e x ec u t e d, o r w h en c o n n ec t i o n s st a r t
o r e n d a n d R e c o r dS e t E v e n t s , e v en t s u s e d t o r e p o r t t h e pr o gr e s s o f d a t a c h a n g es.
A D O a l s o i n c l u d e s R e m o t e D a t a S e r v i c e s ( R D S ) , w i t h w h i c h y o u c a n m o v e da t a f r o m a se r v e r t o a
c l i e n t a p p l i c a t i o n o r W e b P a ge , m a n i pu l a t e t h e da t a o n t h e c l i en t , a n d r et u r n u p d a t e s t o t h e se r v er
i n o n e r o u n d - t r i p.
The ADO Data Control
T h e A D O d a t a c o n t r o l i s s i m i l a r t o t h e d a t a c o n t r o l a n d t h e r em o t e d a t a c o n t r o l . T h e A D O d a t a
c o n t r o l i s d e s i gn e d t o c r e a t e a c o n n ec t i o n t o a d a t a b a s e u si n g M i c r o so f t A c t i v eX D a t a O bj ec t s
( A D O ) . A t d e s i g n t i m e , y o u c r e a t e a c o n n ec t i o n by s et t i n g t h e C o n n ec t i o n S t r i n g p r o pe r t y t o a v a l i d
c o n n e c t i o n s t r i n g, t h e n s e t t h e R e c o r dS o u r c e pr o p er t y t o a s t a t em en t a p pr o pr i a t e t o t h e d a t a b a se
manager.
Y o u c a n a l s o s e t t h e C o n n e c t i o n S t r i n g pr o p er t y t o t h e n a m e o f a f i l e t h a t de f i n e s a c o n n ec t i o n ( t h e
f i l e i s g e n e r a t e d b y a D a t a L i n k D i a l o g bo x , w h i c h a p p e a r s w h e n y o u c l i c k C o n n ec t i o n S t r i n g o n t h e
P r o p e r t i e s w i n do w a n d t h e n c l i c k e i t h er B u i l d o r S el ec t ) . Y o u t h en c o n n ec t t h e A D O d a t a c o n t r o l t o
a d a t a bo u n d c o n t r o l s u c h a s t h e d a t a gr i d, da t a c o m b o , o r da t a l i st c o n t r o l b y se t t i n g i t s
D a t a S o u r c e pr o p e r t i e s t o t h e A D O d a t a c o n t r o l .
A t r u n t i m e , y o u c a n s e t t h e P r o v i d e r , C o n n ec t i o n S t r i n g, a n d R ec o r d S o u r c e p r o pe r t i e s t o c h a n g e t h e
da t a b a s e .
Opening a Database with an ADO Data Control
To add a new ADO Data control to a form,





S e l e c t P r o j e c t > C o m po n en t s
C l i c k t h e C o n t r o l s t a b i n t h e C o m po n en t D i a l o g b o x
Select the Microsoft ADO Data Control entry
C l i c k O K t o c l o s e t h e c o m po n en t s d i a l o g bo x
This adds the ADO data control tool to the toolbox, draw that control as you want it
on your form

C o n n e c t t h e A D O d a t a c o n t r o l ’ s C o n n ec t i o n o bj ec t t o a d a t a so u r c e w i t h t h e
C o n n e c t i o n S t r i n g pr o p e r t y , s e p a r a t i n g i t e m s i n t h a t st r i n g w i t h s em i c o l o n s. A t t h e
l e a s t , y o u s h o u l d s p e c i f y t h e P r o v i d er ( t h e t y p e o f O L E D B ) a n d D a t a S o u r c e ( d a t a
ba s e n a m e ) v a l u e s i n t h e C o n n ec t i o n S t r i n g.
F o r E x a m pl e , h e r e , w e ’ l l c o n n ec t a n A D O da t a c o n t r o l t o t h e da t a ba s e t o a n A c c es s
D a t a b a s e . T o do c u m e n t t h a t , a d d a n A D O d a t a c o n t r o l , A d o dc 1 , t o a f o r m , s et i t s C o n n ec t i o n S t r i n g
pr o p e r t y t o s p e c i f y t h e d a t a p r o v i d e r t y pe a n d t h e d a t a so u r c e f o r t h a t d a t a ba s e l i k e t h i s
“ P R O V I D E R = M i c r o s o f t .J e t .O L E D B.3 .5 1 ; D a t a S o u r c e = C : \ A B C \ M A I N .M D B ; ”
NetScape COMPUTER ACADEMY
110
Connecting an AD O Data Control to a Bound Control
T o c o n n e c t a t e x t bo x t o a n A D O d a t a c o n t r o l , s et t h e t ex t bo x ’ s D a t a S o u r c e pr o p er t y t o t h e n a m e
o f t h e A D O d a t a c o n t r o l . T o di s p l a y a p a r t i c u l a r f i el d i n t h e t ex t bo x , p l a c e t h a t f i el d’ s n a m e i n t h e
t e x t bo x ’ s D a t a F i e l d pr o p e r t y .
The Data Form Wizard: Creating a Data Form
You can use the VISUAL BASIC Data From wizard to create a form using ADO control or ADO code
t h a t l e t s y o u o p e n a n d e di t a d a t a b a s e. T o u se t h e D a t a F o r m w i z a r d, s e l ec t i t i n t h e V I S U A L B A S I C
A d d - I n s m e n u a n d f o l l o w t h e s t e p s i n t h e D a t a F o r m w i z a r d, o n e st e p f o r e a c h su c c e s si v e w i n do w
t h a t a p p e a r s i n t h e w i z a r d.







I n t r o du c t i o n W i n do w . T h i s w i n do w a s k s i f y o u w a n t t o l o a d a p r o f i l e t o c r e a t e t h e d a t a f o r m
. Click Next
D a t a b a s e T y p e . T h i s w i n do w l et s y o u s el ec t t h e d a t a ba s e f o r m a t , l i k e M i c r o so f t A c c e s s o r
ODBC. For the example select Access
D a t a b a s e . T h i s w i n do w l e t s y o u s el ec t t h e da t a b a se t o w o r k w i t h . U s e t h e n a m e bo x a n d t h e
br o w s e b u t t o n t o s e l e c t y o u r d a t a ba s e o r da t a s o u r c e. T h e d a t a f o r m w i z a r d w i l l c r ea t e t h e
c o r r e c t c o n n e c t i o n s t r i n g f o r t h e A D O da t a c o n t r o l . C l i c k N e x t
F o r m . T h i s w i n do w l e t s y o u s pec i f y t h e n a m e o f t h e f o r m y o u ’ r e c r e a t i n g, a s w e l l a s t h e
f o r m l a y o u t . S i n gl e r e c o r d, g r i d, a n d so o n . Y o u c a n a l so s pec i f y h o w t o b i n d t h e d a t a b a se
t o t h e f o r m : w i t h a n A D O c o n t r o l o r A D O c o d e, o r w i t h c l a s s. C h o o s e A D O c o n t r o l f o r
bi n d i n g. C l i c k N e x t t o c o n t i n u e
R e c o r d S o u r c e . I n t h i s w i n do w , s el ec t t h e t a bl e n a m e a n d t h e f i e l ds y o u w a n t di s p l a y e d.
Click next to continue
C o n t r o l S e l e c t i o n . S p e c i f y t h e bu t t o n s y o u w a n t i n t h e d a t a en t r y f o r m . A d d, D e l e t e,
R e f r e s h , a n d s o o n . L e a v e a l l o pt i o n s s el ec t e d a n d C l i c k N ex t
F i n i s h e d! . C l i c k F i n i s h b u t t o n t o c r e a t e t h e n ew da t a f o r m
NetScape COMPUTER ACADEMY
111
Chapter 22
Using Database Control Methods:
Adding, Deleting and Modifying Records
L i k e m o s t c o n t r o l s , t h e D A O , R D O a n d A D O c o n t r o l s h a v e m et h o d s, e v e n t s a n d p r o pe r t i es. T o m a k e
t h e s e c o n t r o l s c o n s i s t e n t , M i c r o s o f t h a s g i v e n t h em t h e s a m e c o r e m e t h o d s, a n d w e’ l l t a k e a l o o k
a t t h o s e m e t h o ds h e r e . U s i n g t h e s e m e t h o d s, u s er s c a n a dd r ec o r d s t o a d a t a ba s e, c h a n g e t h o s e
r e c o r d s , d e l e t e t h e m , a n d m o v e a r o u n d i n t h e da t a b a s e.
B e c a u s e a l l da t a c o n t r o l s h a v e t h e s a m e c o r e m e t h o ds, w e’ l l u se a d a t a c o n t r o l , D a t a 1 i n t h i s
e x a m p l e . A d d t w o t e x t b o x e s a n d c o m m a n d bu t t o n s A d d, D el et e, R e f r es h , U p da t e, N e x t , P r e v i o u s, ,
First and Last.
Adding Records to Databases
Y o u c a n a d d a n e w r e c o r d t o a d a t a b a se w i t h t h e A d dN ew m e t h o d o f t h e R ec o r d s et pr o p er t y o f a
D a t a o r A D O c o n t r o l , o r o f t h e R e s u l t se t p r o pe r t y o f a R em o t e D a t a c o n t r o l . I n t h i s e x a m pl e, w h en
t h e u s e r c l i c k s A d d bu t t o n , w e c a n a dd n ew r ec o r d s.
P r i v a t e S u b c m dA d d_ C l i c k ( )
D a t a 1 . R e c o r dS e t . A d dN e w
End Sub
T h i s a d d s a n e w b l a n k r e c o r d, y o u c a n en t e r t h e d a t a y o u w a n t i n t h e r ec o r d’ s f i e l d s, a n d t o
u p da t e t h e d a t a b a s e , y o u c l i c k t h e U p da t e bu t t o n
Updating a Database with Changes
A f t e r c h a n gi n g t h e f i e l d s i n a r e c o r d, y o u c a n u p da t e a d a t a ba s e w i t h t h e U p d a t eR ec o r d m et h o d o f
t h e d a t a , A D O , o r r e m o t e da t a c o n t r o l . F o r ex a m p l e, w h en t h e u s er c l i c k s t h e U p d a t e bu t t o n , w e
c a n u pd a t e t h e d a t a bs e w i t h n e w r e c o r d l i k e t h i s
P r i v a t e S u b c m dU p d a t e _ C l i c k ( )
D a t a 1 . U pd a t e R e c o r d
End Sub
Deleting Records in Databases
Y o u c a n de l e t e a r e c o r d i n a da t a b a s e w i t h t h e D el e t e m et h o d o f t h e R e c o r d s et pr o p e r t y o f a da t a
o r A D O d a t a c o n t r o l , o r o f t h e R e s u l t s et p r o p e r t y o f a r em o t e d a t a c o n t r o l . I n t h i s e x a m pl e, w h en
t h e u s e r c l i c k s t h e D e l e t e b u t t o n , w e c a n d e l e t e a r ec o r d l i k e t h i s
P r i v a t e S u b c m dD e l e t e _ C l i c k ( )
Data1.Recordset.Delete
End Sub
Refreshing a Data Control
W h e n w o r k i n g w i t h m u l t i pl e d a t a ba s e s, y o u c a n r e f r e sh t h e d a t a i n t h e c u r r en t d a t a b a s e c o n t r o l
w i t h t h e R e f r e s h m e t h o d o f t h e d a t a , A D O d a t a c o n t r o l , o r t h e r em o t e d a t a c o n t r o l . H er e i n t h i s
e x a m p l e , w h e n t h e u s e r c l i c k s t h e R e f r e sh bu t t o n , w e c a n r e f r e sh t h e c o n t r o l l i k e t h i s
P r i v a t e S u b c m dR e f r e s h _ C l i c k ( )
Data1.Refresh
End Sub
Moving through the Records
Y o u c a n m o v e t h r o u gh t h e r e c o r ds o f a d a t a b a se w i t h M o v eN e x t , M o v eP r e v i o u s, M o v e F i r s t , a n d
M o v e L a s t m e t h o d s o f t h e R e c o r d s e t pr o p er t y o f D a t a o r A D O d a t a c o n t r o l o r o f t h e R e su l t S et
pr o p e r t y o f R e m o t e da t a c o n t r o l . H er e i n t h i s ex a m p l e w e’ l l u s e t h e s e f o u r m et h o d s t o m o v e
t h r o u gh r e c o r d s
P r i v a t e S u b c m dM o v e N e x t _ C l i c k ( )
Data1.Recordset.MoveNext
End Sub
NetScape COMPUTER ACADEMY
P r i v a t e S u b c m dM o v e P r e v i o u s _ C l i c k ( )
Data1.Recordset.MovePrevious
End Sub
P r i v a t e S u b c m dM o v e L a s t _ C l i c k ( )
D a t a 1 . R e c o r d s e t . M o v e L a st
End Sub
P r i v a t e S u b c m dM o v e F i r s t _ C l i c k ( )
D a t a 1 . R e c o r d s e t . M o v e F i r st
End Sub
112
NetScape COMPUTER ACADEMY
113
Chapter 23
The Data-Bound Controls
Y o u c a n b i n d c e r t a i n c o n t r o l s t o t h e d a t a c o n t r o l , t h e r em o t e da t a c o n t r o l , a n d A D O d a t a c o n t r o l ,
a n d t h o s e c o n t r o l s a r e c a l l e d bo u n d c o n t r o l s. T o bi n d a c o n t r o l t o a da t a b a s e c o n t r o l , y o u u s e
pr o p e r t i e s l i k e D a t a S o u r c e t o s p e c i f y t h e d a t a ba s e c o n t r o l , a n d t h en u s e pr o p er t i e s l i k e D a t a F i el d
o r B o u n dC o l u m n t o s p e c i f y w h a t f i e l d t o d i s pl a y i n t h e bo u n d c o n t r o l . H e r e a r e t h e c o n t r o l s t h a t
c a n f u n c t i o n a s bo u n d c o n t r o l s










Picture Boxes
Labels
Text Boxes
C h e c k bo x e s
Image Controls
OLE controls
List Boxes
M a s k e d E di t c o n t r o l s
R i c h T e x t bo x e s
C o m bo bo x e s
I n a d di t i o n , t h e r e a r e s p e c i a l c o n t r o l s t h a t a r e d e si gn e d t o b e u s e d a s b o u n d c o n t r o l s




DBList
D B C O m bo
FlexGrid
MSFlexGrid
F i n a l l y , a n o . o f bo u n d c o n t r o l s a r e s p ec i a l l y bu i l t t o b e u s ed w i t h t h e A D O c o n t r o l o n l y



DataList
D a t a C o m bo
DataGrid
The Data-bound controls in de tail
A f t e r i n s t a l l i n g a da t a , o r A D O d a t a c o n t r o l , y o u c a n c o n n ec t t h a t c o n t r o l t o o t h er c o n t r o l s t h r o u gh
a pr o c e s s c a l l e d da t a bi n di n g. Y o u bi n d c o n t r o l s t o a d a t a c o n t r o l u s i n g t h e d a t a pr o p er t i e s o f t h e
bo u n d c o n t r o l s . T h e s t a n d a r d bo u n d c o n t r o l s a n d t h ei r d a t a pr o p er t i e s a p pe a r i n f o l l o w i n g t a b l e.
Control
C h e c k bo x
C o m bo bo x
D B C o m bo bo x
D B L i s t bo x
FlexGrid
ImageControl
Label
L i s t bo x
M a s k e dE d i t
MSFlexGrid
P i c t u r e bo x
T e x t bo x
R i c h T e x t bo x
Properties to Set
D a t a F i e l d= D e s i r e d B o o l e a n f i e l d; D a t a S o u r c e = D a t a c o n t r o l ’ s n a m e
D a t a F i e l d= D e s i r e d f i e l d; D a t a S o u r c e= D a t a c o n t r o l ’ s n a m e
B o u n dC o l u m n = D e si r ed f i el d; D a t a F i e l d= D es i r e d f i e l d; D a t a S o u r c e= D a t a
c o n t r o l ’ s n a m e ; L i st F i e l d = D e si r e d f i e l d t o di s pl a y i n t h e c o m b o l i st ;
RowSource=Data control’s name
D a t a F i e l d= D e s i r e d f i e l d; D a t a S o u r c e= D a t a c o n t r o l ’ s n a m e;
RowSource=Data control’s name
DataSource=DataControl’s name
D a t a F i e l d= D e s i r e d f i e l d; D a t a S o u r c e= D a t a c o n t r o l ’ s n a m e
D a t a F i e l d= D e s i r e d f i e l d; D a t a S o u r c e= D a t a C o n t r o l ’ s n a m e
D a t a f i e l d= D e s i r e d f i el d; D a t a S o u r c e= D a t a c o n t r o l ’ s n a m e
D a t a F i e l d= D e s i r e d f i e l d; D a t a S o u r c e= D a t a c o n t r o l ’ s n a m e
DataSource=Data control’s name
D a t a F i e l d= D e s i r e d f i e l d; D a t a S o u r c e= D a t a c o n t r o l ’ s n a m e
D a t a F i e l d= D e s i r e d f i e l d; D a t a S o u r c e= D a t a c o n t r o l ’ s n a m e
D a t a F i e l d= D e s i r e d f i e l d; D a t a S o u r c e= D a t a c o n t r o l ’ s n a m e
V I S U A L B A S I C a l s o s u p po r t s s o m e a d di t i o n a l d a t a - bo u n d c o n t r o l s t o w o r k w i t h A D O da t a c o n t r o l
s pe c i f i c a l l y .
The ADO Data-Bound controls
T h e r e a r e t h r e e d a t a - b o u n d c o n t r o l s t h a t a r e s p ec i a l l y o pt i m i z e d f o r u s e w i t h t h e A D O d a t a c o n t r o l:
D a t a G r i d c o n t r o l s , D a t a C o m bo c o n t r o l s, a n d D a t a L i st c o n t r o l s. T h e s e c o n t r o l s a r e sp ec i f i c a l l y
d e s i gn e d t o w o r k w i t h A D O D a t a c o n t r o l s a n d w o n ’ t w o r k w i t h st a n d a r d c o n t r o l s l i k e t h e d a t a
control
T o a d d t h e s e c o n t r o l s t o a pr o g r a m , f o l l o w t h e s e st e ps




S e l e c t P r o j e c t > C o m po n en t
Click the Controls tab
S e l e c t bo t h t h e M i c r o s o f t D a t a G r i d C o n t r o l en t r y a n d M i c r o so f t D a t a L i s t C o n t r o l s
entry in the List
C l i c k O K t o c l o s e t h e C o m po n en t s D i a l o g
NetScape COMPUTER ACADEMY

114
T h i s a d ds t h e D a t a G r i d, D a t a C o m bo , a n d D a t a L i s t c o n t r o l t o o l s t o t h e t o o l bo x ;
these controls as you want on your form
dr a w
H e r e a r e t h e p r i n c i pl e d a t a p r o pe r t i e s y o u u s e w i t h t h e s e t h r e e c o n t r o l s



D a t a G r i d - D a t a S o u r c e = A D O d a t a c o n t r o l ’ s n a m e . Y o u c a n a l so s e t t h e A l l o w A d d N ew ,
A l l o w D e l e t e , A l l o w U p d a t e p r o pe r t i es t o T r u e o r F a l se t o e n a b l e o r D i s a bl e t h o s e
operations
D a t a C o m bo - D a t a S o u r c e = A D O D a t a c o n t r o l ’ s n a m e; D a t a F i el d= N a m e o f t h e f i el d t o
di s pl a y i n t h e c o m bo ’ s t ex t bo x , L i st F i el d= N a m e o f f i el d t o d i sp l a y i n t h e l i s t ,
R o w S o u r c e = A D O d a t a c o n t r o l ’ s n a m e, B o u n d C o l u m n = N a m e o f t h e so u r c e f i e l d w i t h
w h i c h y o u c a n pr o v i d e d a t a t o a n o t h e r c o n t r o l
D a t a L i s t - D a t a S o u r c e = A D O d a t a c o n t r o l ’ s n a m e ; D a t a F i el d= N a m e o f t h e f i e l d t o
di s pl a y i n t h e c u r r e n t s el ec t i o n , L i s t F i e l d= N a m e o f f i el d t o di s pl a y i n t h e L i st ,
R o w S o u r c e = A D O d a t a c o n t r o l ’ s n a m e, B o u n d C o l u m n = N a m e o f t h e so u r c e f i e l d w i t h
w h i c h y o u c a n pr o v i d e d a t a t o a n o t h e r c o n t r o l
NetScape COMPUTER ACADEMY
115
Chapter 24
Working with Database Objects in Code
W o r k i n g w i t h d a t a o b j e c t l i br a r i e s p r o v i de s m o r e f l e x i bi l i t y , m o r e po w er a n d a gr ea t d e a l m o r e
c o m p l e x i t y f o r y o u r d a t a ba s e p r o gr a m s
Data Access Objects (DAO)
About DAO :D A O i s t h e de f a u l t o b j e c t m o de l o f t h e da t a c o n t r o l t h a t y o u c o m m o n l y u s e d. T h e D A O
m o d e l i s o p t i m i z e d f o r a c c e s s i n g a c c es s st y l e, I S A M d a t a b a se o v er l o c a l a r e a n e t w o r k . V I S U A L
B A S I C 6 c o n t a i n s f o l l o w i n g D A O l i b r a r i e s,
1) DAO 3.51 object libraries
2 ) D A O 2 . 5 / 3 . 5 1 c o m pa t i b i l i t y l i br a r y
R e c o r d S e t : - T h e pr i m a r y d a t a o b j e c t u s e d i n D A O i s d a t a s e t o bj ec t . T h i s i s t h e o b j e c t t h a t h o l d s
t h e c o l l e c t i o n o f d a t a r e c o r d s u s e d i n y o u r V I S U A L B A S I C pr o g r a m . T h er e a r e di f f er en t t y p es o f
da t a s e t s o b j e c t s ,
W o r k i n g w i t h D A O , y o u c a n u s e t h e da t a b a s e a n d R ec o r d s et D a t a A c c es s o bj ec t s i n y o u r
pr o c e du r e s . T h e da t a b a s e a n d R e c o r d s et o bj ec t s ea c h h a v e p r o pe r t i e s a n d m et h o d s o f t h e i r o w n ,
a n d y o u c a n w r i t e p r o c e du r e s t h a t u s e t h e s e p r o p er t i es a n d m et h o d s t o m a n i p u l a t e y o u r da t a .
T o o pe n a d a t a ba s e i n D A O , y o u j u s t o p en a D a t a ba s e o b j ec t o r c r e a t e a n ew o n e. T h i s o bj ec t c a n
r e pr e s e n t a M i c r o s o f t J e t D a t a b a s e ( . m d b) f i l e , a n I S A M da t a b a s e ( f o r e x a m pl e, P a r a do x ) , o r a n
O D B C d a t a b a s e c o n n e c t e d t h r o u gh t h e M i c r o so f t J et D a t a b a se E n gi n e. W h en t h e d a t a b a s e o b j e c t i s
a v a i l a bl e , y o u c r e a t e a R e c o r d s e t o bj ec t a n d u s e t h a t o b j ec t ’ s m et h o d s, l i k e M o v eF i r st a n d
M o v e N e x t , t o w o r k w i t h t h e d a t a ba s e .
D A O a l s o s u p po r t s a c l i e n t / s e r v e r c o n n ec t i o n m o d e c a l l e d O D B C D i r ec t . O D B C D i r ec t e st a bl i sh e s a
c o n n e c t i o n di r e c t l y t o a n O D B C d a t a s o u r c e, w i t h o u t l o a di n g t h e M i c r o so f t J et D a t a b a s e E n g i n e i n t o
m e m o r y , a n d i s a go o d s o l u t i o n w h e n y o u n e e d O D B C f e a t u r e s i n y o u r p r o g r a m .
I n t h e O D B C D i r e c t o bj e c t m o d e l , t h e C o n n ec t i o n o bj ec t c o n t a i n s i n f o r m a t i o n a bo u t a c o n n ec t i o n t o
a n O D B C da t a s o u r c e , s u c h a s t h e s e r v e r n a m e, t h e da t a so u r c e n a m e, a n d so o n . I t i s si m i l a r t o a
D a t a b a s e o bj e c t ; i n f a c t , a C o n n e c t i o n o b j ec t a n d a D a t a b a s e o bj ec t r e p r e s en t d i f f er en t r ef er en c e s
t o t h e s a m e o bj e c t .
A Full-Scale DAO E xample
T o i l l u s t r a t e D A O d a t a h a n dl i n g i n c o d e, l e t s c r e a t e a n e x a m p l e pr o j e c t . T h i s pr o g r a m h a s a F i l e
menu with following items.







N e w D a t a b a s e - C r e a t e s a n ew d a t a b a s e
O p e n D a t a ba s e - O p e n s a da t a b a s e
C l o s e D a t a b a s e - C l o s e s t h e c u r r e n t da t a b a se
N e w T a bl e - C r e a t e s a N e w T a b l e
Search-Searches the database
S o r t - S o r t s t h e d a t a ba s e
E x i t - E x i t s t h e A p pl i c a t i o n
Using the DAO code Example to create and Edit a Database
T o c r e a t e a d a t a b a s e f i l e , s e l e c t N e w D a t a b a s e m en u i t e m . N e x t , a d d a t a bl e t o t h a t d a t a ba s e w i t h
t h e N e w T a bl e m e n u i t e m , t h e n a d d r ec o r d s t o t h a t t a bl e. W h en y o u ’ r e r e a d y t o st o r e t h e da t a b a s e
o n di s k , u s e t h e c l o s e t h e C l o s e D a t a ba s e i t em .
I n a d d i t i o n , t h e pr o gr a m h a s b u t t o n s t h a t l e t u s er s a d d, e di t , u p da t e, a n d d el e t e r ec o r d s, a s w el l
a s l e t t i n g t h e m m o v e t h r o u gh a da t a b a s e. E a c h t i m e y o u w a n t t o a d d r ec o r d, c l i c k t h e A d d N ew
R e c o r d bu t t o n , t y pe t h e da t a f o r t h e r ec o r d s f i el d s, a n d c l i c k t h e U p d a t e D a t a ba s e bu t t o n t o u p d a t e
t h e d a t a ba s e .
T o e di t a r e c o r d, o p e n t h e r e c o r d, c l i c k t h e E d i t bu t t o n , e di t t h e d a t a i n t h e r ec o r d’ s f i e l ds , a n d
c l i c k t h e U p d a t e D a t a b a s e b u t t o n t o u p d a t e t h e d a t a ba s e. F o r si m p l i c i t y , t h i s pr o gr a m o n l y c r e a t e s
t a bl e s w i t h t w o f i e l ds , a l t h o u gh y o u c a n pl a c e a s m a n y r ec o r d s a s y o u l i k e i n e a c h t a b l e.
DAO-Creating a Database
T o c r e a t e a D A O d a t a b a s e i n c o de , S el ec t P r o j ec t > R ef er en c e s m en u i t em , s el ec t t h e M i c r o s o f t
D A O o bj e c t l i br a r y , a n d c l i c k O K t o c l o s e t h e r e f er en c e s d i a l o g. N o w w e c a n m a k e u s e o f t h e da t a
o bj e c t s i n t h a t l i br a r y t o c r e a t e a n e w da t a b a s e u si n g C r e a t e D a t a b a s e. C r e a t eD a t a b a s e i s a m et h o d
o f t h e D A O W o r k s pa c e o bj e c t . H e r e ’ s h o w y o u u s e C r e a t eD a t a b a s e.
NetScape COMPUTER ACADEMY
116
S e t d a t a b a s e = w o r k s p a c e .C r e a t e D a t a b a s e ( n a m e , l o c a l e [ , o p t i o n s ] )
Here are the arguments
N a m e - A s t r i n g u p t o 2 5 5 c h a r a c t e r s l o n g t h a t i s t h e n a m e o f t h e d a t a b a se f i l e y o u ’ r e c r ea t i n g. I t
c a n be t h e f u l l p a t h a n d f i l e n a m e , su c h a s “ C : \ a bc \ m a i n . m db ” . i f y o u do n ’ t su pp l y a f i l en a m e
e x t e n s i o n , . m d b i s a d d e d.
L o c a l e - A s t r i n g t h a t s p e c i f i e s a c o l l a t i n g o r d e r f o r c r ea t i n g t h e d a t a ba s e, l i k e d bL a n g G en e r a l ,
d bL a n gG r e e k , a n d s o o n .
H e r e a r e t h e po s s i b l e s e t t i n g s f o r t h e O pt i o n s a r gu m en t





d bE n c r y pt - C r e a t e s a n e n c r y pt e d d a t a b a se
d bV e r s i o n 1 0 - C r e a t e s a d a t a ba s e t h a t u s e s t h e J e t en gi n e v er si o n 1 f i l e f o r m a t
d bV e r s i o n 1 1 - C r e a t e s a d a t a ba s e t h a t u s e s t h e J e t D a t a b a se en gi n e v er si o n
1.1
file format
d bV e r s i o n 2 0 - C r e a t e s a d a t a ba s e t h a t u s e s t h e J e t d a t a ba s e en g i n e v e r s i o n 2
file
format.
d bV e r s i o n 3 0 - T h e d e f a u l t , C r e a t e s a d a t a ba s e t h a t u s e s t h e J e t d a t a ba s e en gi n e
v e r s i o n 3 f i l e f o r m a t . ( c o m p a t i bl e w i t h v er s i o n 3 . 5 )
L e t s s e e a n e x a m pl e . W h e n t h e u s e r s el ec t s t h e N ew d a t a b a se i t e m i n o u r e x a m pl e D A O p r o gr a m ,
da o c o d e , w e w i l l c r e a t e a n e w d a t a ba s e. F i r st , w e d ec l a r e t h a t da t a b a se a s a f o r m - w i de v a r i a bl e:
D i m db A s D a t a b a s e
N e x t , w e a d d a C o m m o n D i a l o g C o n t r o l , C o m m o n D i a l o g1 , t o t h e p r o g r a m a n d sh o w i t t o g et t h e
n a m e o f t h e d a t a ba s e f i l e t h e u s e r w a n t s t o c r e a t e. F i n a l l y , w e c r e a t e t h e n ew d a t a b a s e, p a s si n g
t h e C r e a t e D a t a ba s e m e t h o d t h e n a m e o f t h e da t a b a s e f i l e a n d i n d i c a t i n g t h a t w e w a n t t o u s e t h e
d e f a u l t c o l l a t i n g o r d e r b y p a s s i n g t h e c o n st a n t d bL a n g G en e r a l
Private Sub NewDatabase_Click ( )
C o m m o n D i a l o g1 . S h o w S a v e
I f C o m m o n D i a l o g 1 . F i l eN a m e < > “ ”
S e t d b= D B E n gi n e. W o r k s pa c e s( 0 ) . C r e a t eD a t a b a s e_
( C o m m o n D i a l o g1 . F i l eN a m e db L a n gG en er a l )
End If
End Sub
DAO-Creating a Table with a TableDef Object.
Y o u c r e a t e a t a b l e i n D A O da t a b a s e w i t h T a bl eD ef o b j ec t . T h e n y o u c a n a p p en d f i el d s t o t h e t a b l e,
a n d t h e n y o u c a n a pp e n d t h e n e w t a b l e d ef i n i t i o n t o a d a t a b a se ’ s T a bl eD ef s c o l l ec t i o n .
L e t ’ s s e e a n e x a m p l e . A f t e r t h e u s e r s c r ea t e a n ew d a t a b a se w i t h o u r D A O c o d e ex a m p l e, t h e
da o c o d e p r o j e c t , t h e y c a n c r e a t e a n e w t a b l e u s i n g t h e N ew T a b l e i t em i n t h e F i l e m en u . T h a t i t em
o p e n s t h e N e w T a b l e d i a l o g bo x .
U s e r s c a n e n t e r t h e n a m e o f t h e n e w t a b l e t o c r e a t e i n t h e t ex t bo x e s i n t h e N ew T a b l e d i a l o g b o x ,
a n d w e c a n u s e t h a t i n f o r m a t i o n t o c r e a t e a n e w T a b l eD ef o b j ec t , w h i c h w e d ec l a r e a s a f o r m - w i d e
v a r i a bl e .
Dim td As TableDef
W e c r e a t e a n e w T a b l e D e f f o r t h e D a t a ba s e o bj e c t w e c r e a t e s i n t h e pr e v i o u s t o p i c , u si n g t h e n a m e
f o r t h e t a b l e t h e u s e r h a s p l a c e d i n T e x t 1 i n t h e N ew T a bl e d i a l o g bo x .
S u b C r e a t e T a bl e ( )
S e t t d= d b. C r e a t e T a bl e D ef ( T a bl ef o r m . T ex t 1 . T e x t )
…..
End Sub
T h i s c o d e c r e a t e s a n e w , e m pt y T a bl e D ef o bj ec t n a m ed t d. A n em pt y t a bl e i sn ’ t m u c h u s e, t h o u gh w e ’ l l s e e a bo u t a d d i n g f i e l d s t o t h i s o b j ec t i n t h e n ex t t o pi c .
DAO-Adding Fields to a TableDef Object
H o w do c u m e n t y o u a d d f i e l d s t o a D A O T a b l e D ef o b j ec t ? Y o u c a n u s e t h a t o bj ec t ’ s C r e a t e F i el d
m e t h o d t o do c u m e n t t h a t , pa s s i n g t h a t m et h o d t h e n a m e o f t h e n ew f i el d a n d a c o n st a n t i n d i c a t i n g
t h a t f i e l d’ s t y p e .
T a bl eD e f . C r e a t e F i e l d( F i e l d N a m e, F i e l dT y p e)
NetScape COMPUTER ACADEMY
117
H e r e a r e t h e c o n s t a n t s s p e c i f y i n g t h e po s si b l e f i el d t y p es:





















d bB i g I n t
d bB i n a r y
d bB o o l e a n
d bB y t e
d bC h a r
d bC u r r e n c y
d bD a t e
deDecimal
d bD o u bl e
d bF l o a t
d bG U I D
d bI n t e g e r
d bL o n g
d bL o n g B i n a r y ( O L E o b j e c t )
d bM e m o
dbNumeric
d bS i n g l e
d bT e x t
d bT i m e
d bT i m e S t a m p
d bV a r B i n a r y
L e t ’ s s e e a n e x a m p l e t o m a k e t h i s c l ea r . W e c a n n o w a d d t w o f i e l ds t o t h a t o bj ec t , w h i c h w e
d e c l a r e i n a n a r r a y n a m e d f i e l d s o f t y p e F i el d. T h e u s er s h a v e s p ec i f i e d w h a t n a m es t h e y w a n t t o
gi v e t o t h o s e t w o n e w f i e l ds i n t h e N ew T a bl e D i a l o g bo x ’ s t ex t bo x e s, so w e c r e a t e t h e n ew f i e l d
t h i s w a y . T h e n w e c a n a p pe n d t h e m t o t h e a c t u a l T a bl eD ef o bj ec t .
S u b C r e a t e T a bl e ( )
S e t t d= d b. C r e a t e T a bl e D ef ( T a bl ef o r m . T ex t 1 . T e x t )
S e t f i e l d s ( 0 ) = t d. C r e a t e F i e l d( T a b l eF o r m . T ex t 2 . T e x t , d bT e x t )
S e t f i e l d s ( 1 ) = t d. C r e a t e F i e l d( T a b l eF o r m . T ex t 3 . T e x t , d bT e x t )
t d. f i e l d s . A p p e n d f i e l d s ( 0 )
t d. f i e l d s . A p p e n d f i e l d s ( 1 )
End Sub
DAO-Adding an Index to a TableDef Object
Y o u u s e a n I n d e x t o s o r t a t a bl e , a n d y o u c r ea t e a n i n d ex w i t h t h e D A O C r e a t eI n d ex m e t h o d. T h e
C r e a t e I n d e x m e t h o d c r e a t e s a n I n de x o b j ec t , a n d y o u c a n m a k e o n e o f t h e f i el d s i n a t a b l e t h a t
t a bl e ’ s i n d e x w i t h t h a t I n d e x o bj e c t ’ s C r e a t eF i e l d m et h o d.
L e t ’ s s e e a n e x a m pl e t o m a k e t h i s c l e a r .
W e ’ l l c r e a t e a n i n de x f o r o u r D A O e x a m pl e, w h i c h w e d ec l a r e a s a f o r m - w i d e v a r i a bl e.
D i m db i n d e x A s I n d e x
W e n a m e t h e I n d e x w h e n w e c r e a t e i t ; h e r e, w e ’ l l j u st u s e t h e f i r s t f i e l d t h a t t h e u s er h a s p l a c e d
i n t h i s t a b l e a s t h e t a b l e ’ s i n d e x s o a l l so r t o p er a t i o n s w i l l so r t u s i n g t h a t f i el d. I n t h i s ex a m pl e,
w e n a m e o u r i n d e x by a d di n g t h e w o r d “ i n d ex ” t o t h e n a m e o f t h a t f i e l d t h i s w a y . N ex t , w e c r e a t e
a n e w f i e l d, i n d e x f i e l d, i n t h e i n d e x , u s i n g t h e n a m e o f t h e f i r st f i e l d i n t h e t a bl e. F i n a l l y , w e
a p p e n d i n de x f i e l d t o o u r I n d e x o bj e c t , d b I n de x , a n d a p p en d t h a t o bj e c t t o t h e T a b l e D e f o bj e c t ’ s
Indexes collection.
S u b C r e a t e T a bl e ( )
S e t t d= d b. C r e a t e T a bl e D ef ( T a bl ef o r m . T ex t 1 . T e x t )
S e t f i e l d s ( 0 ) = t d. C r e a t e F i e l d( T a b l eF o r m . T ex t 2 . T e x t , d bT e x t )
S e t f i e l d s ( 1 ) = t d. C r e a t e F i e l d( T a b l eF o r m . T ex t 3 . T e x t , d bT e x t )
t d. f i e l d s . A p p e n d f i e l d s ( 0 )
t d. f i e l d s . A p p e n d f i e l d s ( 1 )
S e t d bI n d e x = t d. C r e a t e I n d ex ( T a bl eF o r m . T e x t 2 . T e x t & “ i n d ex ” )
S e t i n de x f i e l d= d b i n de x . C r ea t e F i e l d( T a b l e f o r m . T ex t 2 . T ex t )
d bi n d e x . f i e l d s . A p p e n d i n d ex f i el d
t d. I n de x e s . A pp e n d db I n d ex
End Sub
NetScape COMPUTER ACADEMY
118
DAO-Creating a Re cord Set
A f t e r y o u ’ v e i n s t a l l e d t h e n e w t a bl e , y o u c a n u s e t h e O p en R ec o r d s et m et h o d t o o p en a r ec o r d s et
and start working with data.
S e t r e c o r d s e t = D a t a b a s e .O p e n Re c o r d s e t ( S o u r c e , t y p e , o p t i o n s , l o c k e d i t s )
H e r e a r e t h e a r g u m e n t s f o r O pe n R e c o r d s et




S o u r c e - A s t r i n g s p e c i f y i n g t h e so u r c e o f t h e r e c o r d s f o r t h e n ew R ec o r d s et o b j ec t .
T h e s o u r c e c a n b e a t a bl e n a m e, a qu e r y n a m e, o r a n S Q L st a t em en t t h a t r et u r n s
records.
T y pe - I n d i c a t e s t h e t y p e o f R ec o r d s et t o o p e n
O p t i o n s - C o m b i n a t i o n o f c o n st a n t s t h a t sp ec i f y c h a r a c t er i st i c s o f t h e n ew R ec o r ds e t .
L o c k e di t s - C o n s t a n t t h a t d et er m i n e s t h e l o c k i n g f o r R ec o r d s et
H e r e a r e t h e po s s i b l e s e t t i n g s f o r t y p e





d b O p e n T a b l e - O p e n s a t a b l e - t y p e R ec o r d se t o b j ec t
d b O p e n D y n a m i c - O p e n s a d y n a m i c - t y p e r ec o r d s et o bj ec t , w h i c h i s l i k e a n O D B C
dy n a m i c c u r s o r .
d b O p e n D y n a s e t - O p e n s a d y n a s e t - t y p e R ec o r d se t o b j ec t , w h i c h i s l i k e a n O D B C
keyset cursor.
d b O p e n S n a p s h o t - O p e n s a sn a p sh o t - t y p e R ec o r d s et o bj ec t , w h i c h i s l i k e a n O D B C
static cursor.
d b O p e n F o r w a r d O n l y - O p en s a f o r w a r d - o n l y - t y p e R ec o r d s et o b j ec t
H e r e a r e t h e po s s i b l e s e t t i n g s f o r o p t i o n s

d b A p p e n d O n l y - A l l o w s t h e u se r s t o a p pe n d n ew r ec o r d s t o t h e R ec o r d s et bu t
pr e v e n t s t h e m f r o m e di t i n g o r d el et i n g e x i st i n g r ec o r d s ( M i c r o so f t J e t d y n a s e t - t y p e
Recordset only)

d b S Q L P a s s T h r o u g h - P a s se s a n S Q L s t a t em en t t o a M i c r o so f t J et c o n n ec t e d O D B C
da t a s o u r c e f o r pr o c e s s i n g ( J e t S n a p sh o t - t y p e R ec o r d s et o n l y )

d b S e e C h a n g e s - G e n e r a t e s a r u n t i m e er r o r i f o n e u s er i s c h a n gi n g d a t a t h a t a n o t h er
u s e r i s e di t i n g ( J e t d y n a s et - t y pe R ec o r d s et o n l y )

d b D e n y W r i t e - P r e v e n t s o t h e r u s er s f r o m m o di f y i n g o r a d di n g r ec o r ds ( J et R ec o r d s et
o bj e c t o n l y )

d b D e n y R e a d - P r e v e n t s o t h e r u se r s f r o m r e a di n g da t a i n a t a bl e ( J e t t a b l e t y p e
recordset only)

d b F o r w a r d O n l y - C r e a t e s a f o r w a r d - o n l y R ec o r d s et ( J et sn a psh o t - t y p e R ec o r d s e t
o n l y ) . I t i s p r o v i de d o n l y f o r ba c k w a r d c o m pa t i b i l i t y , a n d y o u sh o u l d u s e t h e
d bO p e n F o r w a r d O n l y c o n st a n t i n t h e t y p e a r gu m e n t i n st e a d o f u s i n g t h i s o pt i o n .

d b R e a d O n l y - P r e v e n t s u s er s f r o m m a k i n g c h a n g e s t o t h e R ec o r d s e t ( M i c r o so f t J e t
o n l y ) . T h e dbR e a dO n l y c o n st a n t i n t h e l o c k e di t s a r gu m en t r e pl a c e s t h i s o pt i o n ,
which is provided only for backward compatibility

d b R u n A s y n c - R u n s a n a sy n c h r o n o u s qu er y ( O D B C D i r ec t w o r k s p a c es o n l y )

d b E x e c D i r e c t - R u n s a Q u er y by s k i p pi n g S Q L P r e p a r e a n d di r ec t l y c a l l i n g
S Q L E x e c D i r e c t ( O D B C D i r ec t w o r k s pa c e s o n l y )

d b I n C o n s i s t e n t - A l l o w s i n c o n s i s t en t u p da t es ( M i c r o so f t J e t D y n a s et t y p e a n d
s n a p s h o t - t y p e R e c o r d s e t o bj ec t s o n l y )

d b C o n s i s t e n t - A l l o w s o n l y c o n s i s t en t u p d a t e s ( M i c r o so f t J et dy n a s et t y p e a n d
s n a p s h o t t y pe R e c o r d s e t o bj ec t o n l y )
H e r e a r e t h e po s s i b l e s e t t i n g s f o r t h e l o c k e d i t s a r gu m e n t

d b R e a d O n l y - P r e v e n t s u s er s f r o m m a k i n g c h a n g e s t o t h e R ec o r d s et
ODBCDirect workspaces)

d b P e s s i m i s t i c - U s e s p e s si m i st i c l o c k i n g t o d et e r m i n e h o w c h a n g es a r e
R e c o r d s e t i n a m u l t i - u s e r en v i r o n m en t

d b O p t i m i s t i c - U s e s o pt i m i st i c l o c k i n g t o de t er m i n e h o w c h a n g e s a r e
R e c o r d s e t i n a m u l t i - u s e r en v i r o n m en t

d b O p t i m i s t i c V a l u e - U s e s o pt i m i s t i c c o n c u r r en c y ba s e d o n r o w v a l u es
w o r k s pa c e s o n l y )

d b O p t i m i s t i c B a t c h - E n a bl e s b a t c h o p t i m i st i c u p da t i n g ( O D B C D i r ec t
only)
Lets see an example to make this clear.
S u b C r e a t e T a bl e ( )
S e t t d= d b. C r e a t e T a bl e D ef ( T a bl ef o r m . T ex t 1 . T e x t )
S e t f i e l d s ( 0 ) = t d. C r e a t e F i e l d( T a b l eF o r m . T ex t 2 . T e x t , d bT e x t )
S e t f i e l d s ( 1 ) = t d. C r e a t e F i e l d( T a b l eF o r m . T ex t 3 . T e x t , d bT e x t )
t d. f i e l d s . A p p e n d f i e l d s ( 0 )
t d. f i e l d s . A p p e n d f i e l d s ( 1 )
S e t d bI n d e x = t d. C r e a t e I n d ex ( T a bl eF o r m . T e x t 2 . T e x t & “ i n d ex ” )
S e t i n de x f i e l d= d b i n de x . C r ea t e F i e l d( T a b l e f o r m . T ex t 2 . T ex t )
d bi n d e x . f i e l d s . A p p e n d i n d ex f i el d
t d. I n de x e s . A pp e n d db I n d ex
d b. T a b l e D e f s . A p pe n d t d
S e t d br e c o r d s e t = d b. O p e n R ec o r d s et ( T a bl eF o r m . T ex t 1 . T ex t , db O p en T a b l e)
End Sub
( def a u l t f o r
made to the
made to the
( O D B C D i r ec t
w o r k s pa c e s
NetScape COMPUTER ACADEMY
119
I n t h i s c a s e , w e ’ r e o p e n i n g t h e n e w r ec o r d s et a s a st a n d a r d D A O t a b l e by p a s s i n g t h e c o n s t a n t
d bO p e n T a b l e . W e a l s o d e c l a r e db r e c o r d se t a s a f o r m w i d e v a r i a b l e.
D i m db r e c o r d s e t A s R e c o r d s e t
DAO-Opening a Database
T o o p e n a n E x i s t i n g D A O d a t a ba s e , y o u u s e t h e D A O O p en D a t a ba s e M et h o d, pa s s i n g i t t h e n a m e o f
t h e d a t a ba s e t o o p e n , a n d t h e s e a r g u m en t s
S e t d a t a b a s e o b j e c t = W o r k s p a c e .O p e n D a t a b a s e ( d bn a m e , [ o p t i o n s [ ,
r e a d o n l y _ [ ,c o n n e c t ] ] ] )
Here are the arguments




D bn a m e - T h e n a m e o f a n ex i s t i n g d a t a b a s e f i l e, o r t h e d a t a so u r c e n a m e ( D S N ) o f a n
ODBC data source.
O p t i o n s - S e t t i n g o p t i o n s t o T r u e o p en s t h e da t a b a se i n E x c l u s i v e m o d e; s et t i n g i t t o
F a l s e ( t h e d e f a u l t ) o p e n s t h e da t a b a se i n s h a r ed m o d e.
R e a d o n l y - T r u e i f y o u w a n t t o o p en t h e d a t a b a se w i t h r ea d - o n l y a c c e s s, o r F a l se
( t h e d e f a u l t ) i f y o u w a n t t o o p en t h e da t a b a s e w i t h r e a d/ w r i t e a c c e ss.
C o n n e c t - O pt i o n a l . A V a r i a n t ( st r i n g su bt y p e) t h a t s pec i f i e s v a r i o u s c o n n ec t i o n
i n f o r m a t i o n , i n c l u d i n g p a ssw o r ds.
L e t ’ s s e e a n e x a m pl e , i n o u r p r o j e c t , t h e u s er c a n c l i c k t h e O p en D a t a b s e m en u i t e m t o o p e n a
da t a b a s e . I n t h e p r o g r a m , w e g e t t h e n a m e o f t h e d a t a b a s e t h e u s er w a n t s t o o p en w i t h a C o m m o n
D i a l o g C o n t r o l , a n d o p e n t h e da t a b a s e l i k e t h i s:
P r i v a t e S u b O p e n D a t a ba s e _ C l i c k ( )
I f C o m m o n D i a l o g 1 . F i l e n a m e < > “ ” T h en
S e t d b = D b E n gi n e . W o r k s pa c e s( 0 ) . O p en D a t a b a s e ( C o m m o n D i a l o g1 . F i l en a m e)
…
End Sub
N e x t , i f y o u k n o w t h e n a m e o f t h e t a bl e y o u w a n t t o o p en i n t h e da t a b a s e, y o u c a n o pen t h a t t a b l e
by n a m e i m m e d i a t e l y w i t h t h e O p e n R e c o r d s et m et h o d. W h en y o u o p en t h e D A O da t a b a s e, t h er e a r e
a n u m b e r o f s y s t e m t a bl e s a l r e a d y i n i t , so t o o p en t h e f i r st u s er - d e f i n e d t a bl e, w e f i n d t h e i n d ex
o f t h a t t a b l e i n t h e T a b l e D e f s c o l l ec t i o n b y f i r st s k i p p i n g t h e s y st e m t a b l e s w h i c h h a v e t h e
d bS y s t e m O bj e c t f l a g s e t i n t h e i r A t t r i bu t e pr o p e r t i e s.
P r i v a t e S u b O p e n D a t a ba s e _ C l i c k ( )
If CommonDialog1.Filename <> “” Th en
S e t d b = D b E n gi n e . W o r k s pa c e s( 0 ) . O p en D a t a b a s e ( C o m m o n D i a l o g1 . F i l en a m e)
T a bl e i n d e x = 0
W h i l e ( db. T a bl e D e f s ( t a b l ei n d e x ) . A t t r i b u t e s A n d d bS y s t em O b j ec t )
T a bl e i n d e x = T a b l e i n d ex + 1
Wend
End Sub
W e ’ l l o p e n t h e f i r s t t a b l e a f t e r t h e s y s t em t a b l e s. W e o p en a n ew r ec o r d s et f o r t h a t t a b l e w i t h
O p e n R e c o r d s e t m e t h o d a n d f i l l t h e t ex t bo x es T ex t 1 a n d T ex t 2 w i t h f i e l d s o f f i r s t r ec o r d i n t h a t
t a bl e . T h e t a bl e s h o u l d h a v e a t l e a s t o n e r ec o r d .
P r i v a t e S u b O p e n D a t a ba s e _ C l i c k ( )
I f C o m m o n D i a l o g 1 . F i l e n a m e < > “ ” T h en
S e t d b = D b E n gi n e . W o r k s pa c e s( 0 ) . O p en D a t a b a s e ( C o m m o n D i a l o g1 . F i l en a m e)
T a bl e i n d e x = 0
W h i l e ( db. T a bl e D e f s ( t a b l ei n d e x ) . A t t r i b u t e s A n d d bS y s t em O b j ec t )
T a bl e i n d e x = T a b l e i n d ex + 1
Wend
S e t d br e c o r d s e t = d b. O p e n R ec o r d se t ( d b. T a b l e D ef s( t a bl e i n de x ) . N a m e,
d bo p en T a b l e)
S e t t d= d b. T a bl e D e f s ( t a b l e I n de x )
T e x t 1 . T e x t = db r e c o r d s e t . f i el d s( 0 )
T e x t 2 . T e x t = db r e c o r d s e t . f i el d s( 1 )
End If
End Sub
NetScape COMPUTER ACADEMY
120
DAO-Adding a record to a Recordset
T o a dd a n ew r e c o r d t o a D A O r e c o r ds e t , y o u u s e t h e A d dN ew m et h o d . A f t er y o u ’ v e u p d a t e d t h e
f i e l d s o f t h e c u r r e n t r e c o r d, y o u s a v e t h e r ec o r d t o t h e d a t a ba s e w i t h U p da t e m et h o d.
F o r e x a m p l e , w h e n t h e u s e r C l i c k s t h e A d d bu t t o n i n o u r pr o j ec t , t h e d a o c o de pr o j ec t , w e e x ec u t e
t h e A d dN e w m e t h o d o n t h e P r o gr a m s r ec o r d se t a n d c l ea r t w o da t a f i el d t e x t bo x e s
P r i v a t e S u b c m dA d d_ C l i c k ( )
D br e c o r d s e t . A dd N ew
Text1.Text=””
Text2.Text=””
End Sub
N o w u s e r s c a n e n t e r da t a f o r t h e n e w r ec o r d, a n d c l i c k U p d a t e b u t t o n t o sa v e t h e c h a n g e s.
DAO-Editing Records in a Rec ordset
B e s i d e s a d d i n g n e w r e c o r d s , u s e r s m i gh t w a n t t o ed i t t h e e x i st i n g r ec o r d s, t o do t h a t
Y o u u s e t h e E d i t m e t h o d l i k e t h i s i n o u r D A O ex a m p l e.
P r i v a t e S u b c m dE d i t _ C l i c k ( )
D br e c o r d s e t . E di t
End Sub
A f t e r u s e r s e d i t t h e d a t a i n t h e r e c o r d’ s f i e l d s, t h e y m u st u p da t e t h e d a t a b a s e w i t h t h e n ew d a t a ,
a n d t h e y do c u m e n t t h a t i n t h e d a o c o d e p r o j ec t b y c l i c k i n g U p d a t e bu t t o n .
DAO-Updating a Record in a Record Set
W h e n t h e u s e r c h a n g e s t h e da t a i n a r ec o r d o r a d ds a n ew r ec o r d, w e m u st u p d a t e t h e da t a b a s e t o
r e c o r d t h a t c h a n g e , a n d y o u u s e t h e r ec o r d s e t U p da t e m e t h o d t o do c u m e n t t h a t :
R e c o r d s e t .U p d a t e ( [ t y p e [ , f o r c e ] ] )
Here are the arguments in this function:


T y pe - C o n s t a n t i n d i c a t i n g t h e t y p e o f u p d a t e, a s s p ec i f i ed i n S e t t i n g s ( O D B C D i r ec t
workspaces only).
F o r c e - B o o l e a n v a l u e i n di c a t i n g w h e t h er o r n o t t o f o r c e t h e c h a n g es i n t o t h e
da t a b a s e , r e ga r d l e s s o f w h et h e r t h e d a t a h a s b e en c h a n ge d by a n o t h e r u s er
(ODBCDirect workspaces only)
L e t s s e e a n e x a m p l e , w h e n t h e u s e r c l i c k s t h e U p da t e bu t t o n i n o u r pr o j ec t , w e w i l l u p da t e t h e
da t a b a s e w i t h t h e n e w d a t a f o r t h e c u r r en t r ec o r d. W e g et t h e n ew da t a f o r t h e c u r r en t r ec o r d
f r o m t e x t bo x e s T e x t 1 a n d T e x t 2 , w h e r e t h e u s e r h a s e n t er e d d a t a , a n d l o a d t h e da t a i n t o t h e
r e c o r d s e t ’ s f i e l d s u s i n g t h e f i e l ds c o l l ec t i o n . A f t e r l o a d i n g t h e d a t a , w e s a v e t h a t r ec o r d u si n g t h e
U p d a t e m e t h o d.
P r i v a t e S u b c m dU p d a t e _ C l i c k ( )
D br e c o r d s e t . f i e l d s ( 0 ) = T ex t 1 . T ex t
D br e c o r d s e t . f i e l d s ( 1 ) = T ex t 2 . T ex t
D br e c o r d s e t . U p da t e
End Sub
DAO-Moving through the Records in Rec ordset
T o m o v e t h r o u gh t h e r e c o r d s , y o u u s e t h e M o v e c o m m a n d s M o v eF i r st , M o v eN ex t , M o v e L a s t ,
M o v e P r e v i o u s c o m m a n d s . A f t e r m o v i n g w e d i sp l a y t h e c u r r en t r ec o r d s d a t a i n T e x t bo x e s i n o u r
example.
T o M o v e t o t h e F i r s t R e c o r d , e x e c u t e M o ve F i r s t M e t h o d .
P r i v a t e S u b c m dM o v e F i r s t _ C l i c k ( )
D br e c o r d s e t . M o v e F i r s t
T e x t 1 . T e x t = dbR e c o r d s e t . F i el d s( 0 )
T e x t 2 . T e x t = db r e c o r d s e t . F i el d s( 1 )
End Sub
NetScape COMPUTER ACADEMY
121
T o M o v e t o t h e N e x t R e c o r d , e x e c u t e M o ve N e x t M e t h o d .
P r i v a t e S u b c m dM o v e N e x t _ C l i c k ( )
D br e c o r d s e t . M o v e N e x t
T e x t 1 . T e x t = dbR e c o r d s e t . F i el d s( 0 )
T e x t 2 . T e x t = db r e c o r d s e t . F i el d s( 1 )
End Sub
T o M o v e t o t h e L a s t R e c o r d , e x e c u t e M o ve L a s t M e t h o d .
P r i v a t e S u b c m dM o v e L a s t _ C l i c k ( )
D br e c o r d s e t . M o v e L a s t
T e x t 1 . T e x t = dbR e c o r d s e t . F i el d s( 0 )
T e x t 2 . T e x t = db r e c o r d s e t . F i el d s( 1 )
End Sub
T o M o v e t o t h e P r e v i o u s R e c o r d , e x e c u t e M o ve P r e vi o u s M e t h o d .
P r i v a t e S u b c m dM o v e P r e v i o u s _ C l i c k ( )
D br e c o r d s e t . M o v e P r e v i o u s
T e x t 1 . T e x t = dbR e c o r d s e t . F i el d s( 0 )
T e x t 2 . T e x t = db r e c o r d s e t . F i el d s( 1 )
End Sub
DAO-Deleting a Record in a Recordset
T o d e l e t e a r e c o r d i n a D A O r e c o r d s e t , y o u u se t h e D e l e t e m et h o d, a n d t h e n y o u u p da t e t h e
r e c o r d s e t . F o r e x a m pl e w h e n t h e u s e r c l i c k s t h e D el e t e bu t t o n i n o u r D A O c o d e e x a m pl e, w e c l ea r
t h e t e x t bo x e s T e x t 1 a n d T e x t 2 , t h a t di s p l a y t h e c u r r en t r ec o r d a n d d e l e t e t h a t r ec o r d.
P r i v a t e S u b c m dD e l e t e _ C l i c k ( )
Text1.Text=””
Text2.Tex=””
D br e c o r d s e t . D e l e t e
End Sub
DAO-Sorting a Recordset
T o s o r t a r e c o r d s e t , y o u c a n i n s t a l l t h e i n d e x y o u w a n t t o so r t w i t h i n t h e r ec o r d se t ’ s I n d ex
pr o p e r t y . F o r e x a m pl e , w e c a n s o r t t h e r ec o r d s e t i n o u r D A O c o d e ex a m pl e, w i t h t h e I n d ex w e’ v e
c r e a t e d t h i s w a y . A f t e r t h e r e c o r d s e t i s so r t e d, w e d i sp l a y t h e f i r s t r ec o r d i n t h e t w o m a i n t e x t
bo x e s T r e x t 1 a n d T e x t 2 .
P r i v a t e S u b c m dS o r t _ C l i c k ( )
S e t d bi n d e x = t d. I n d e x e s ( 0 )
D br e c o r d s e t . I n de x = db i n d ex . N a m e
T e x t 1 . T e x t = db r e c o r d s e t . f i el d s( 0 )
T e x t 2 . T e x t = db r e c o r d s e t . F i el d s( 1 )
End Sub
DAO-Searching a Recordset
Y o u c a n s e a r c h a r e c o r d s e t w i t h a n i n d e x ; w e j u st s et i t s I n d ex pr o p er t y t o t h e I n d ex w e w a n t t o
s e a r c h a n d t h e n s e t i t s S e e k pr o p e r t y t o t h e st r i n g w e w a n t t o s e a r c h f o r . L et ’ s se e a n e x a m pl e.
W h e n t h e u s e r s e l e c t s t h e S e a r c h m e n u i t e m i n o u r E x a m pl e, w e i n s t a l l t h e i n d ex b a se d o n t h e f i r s t
f i e l d i n t h e r e c o r d s e t a n d s h o w t h e d i a l o g bo x n a m e d S e a r c h . A f t er t h e u s er di sm i ss e s t h e s ea r c h
di a l o g, w e r e t r i e v e t h e t e x t t o s e a r c h f o r f r o m t h a t t e x t gi v en i n t h e s ea r c h i t em . I n t h e S e e k
c o m p a r i s o n , b e s i d e s “ = ” , y o u c a n a l s o u s e “ < ” , “ < = ” , “ > = ” , a n d “ > ” . W h en t h e s ea r c h i s
c o m p l e t e , w e di s pl a y t h e f o u n d r e c o r d’ s da t a i n t h e T ex t bo x es.
P r i v a t e S u b c m dS e a r c h _ C l i c k ( )
D i m R e s po n s e A s S t r i n g
S e t d bi n d e x = t d. I n d e x e s ( 0 )
D br e c o r d s e t . I n de x = db i n d ex . N a m e
R e s po n s e = I n pu t B o x ( “ E n t er I t em t o se a r c h ” )
D br e c o r d s e t . S e e k “ = ” , R e spo n s e
T e x t 1 . T e x t = db r e c o r d s e t . F i el d s( 0 )
T e x t 2 . T e x t = db r e c o r d s e t . F i el d s( 1 )
End Sub
NetScape COMPUTER ACADEMY
122
DAO-Executing SQL
Y o u c a n e x e c u t e a n S Q L s t a t e m e n t w h en y o u c r e a t e a D A O r ec o r d s et u si n g t h e O p en R ec o r d s et
m e t h o d b y p l a c i n g t h a t S Q L s t a t e m e n t i n t h e so u r c e a r gu m en t .
S e t r e c o r d s e t o b j e c t = D a t a b a s e o b j e c t .O p e n Re c o r d s e t ( s o u r c e ,t y p e ,o p t i o n s ,_
lockedits)
H e r e a r e t h e a r g u m e n t s f o r O pe n R e c o r d s et .




S o u r c e - A s t r i n g s pe c i f y i n g t h e so u r c e o f t h e r ec o r d s f o r n ew R ec o r d se t . T h e so u r c e
c a n b e a t a b l e n a m e , a qu er y n a m e, o r a n S Q L s t a t e m en t t h a t r et u r n s r e c o r d s. ( f o r
t a bl e t y p e r e c o r d s e t t h e so u r c e c a n o n l y b e a t a b l e n a m e)
T y pe - I n d i c a t e s t h e t y p e o f R ec o r d s et t o o p en
O p t i o n s - C o m b i n a t i o n o f c o n st a n t s t h a t sp ec i f y c h a r a c t er i st i c s o f t h e n ew R ec o r ds e t .
L o c k e di t s - C o n s t a n t t h a t d et er m i n e s t h e l o c k i n g f o r R ec o r d s et .
H e r e a r e t h e po s s i b l e v a l u e s f o r t y p e .





d bO p e n T a b l e - O p e n s a t a bl e - t y pe R ec o r d s et o bj ec t
d bO p e n dy n a m i c - O pe n s a dy n a m i c - t y p e R ec o r d se t o bj ec t , w h i c h i s l i k e a n O D B C
dy n a m i c c u r s o r
d bO p e n D y n a s e t - O p e n s a dy n a s et t y p e r ec o r d se t , w h i c h i s l i k e a n O D B C k e y s e t c u r so r
d bO p e n S n a ps h o t - O p e n s a sn a p sh o t t y p e r ec o r d s et o bj ec t , w h i c h i s l i k e a n O D B C
static cursor
d bO p e n F o r w a r d O n l y - O p e n s a f o r w a r d - o n l y - t y p e r ec o r d s et o bj ec t
H e r e a r e t h e po s s i b l e v a l u e s f o r O pt i o n s a r gu m e n t











d bA pp e n d O n l y - A l l o w s u s er s t o a pp en d r ec o r d s t o t h e r ec o r d s et bu t pr e v e n t s f r o m
e di t i n g o r d e l e t i n g e x i s t i n g r ec o r d s ( M i c r o s o f t J e t D y n a s et t y pe o n l y )
d bS Q L P a s s T h r o u g h - P a s s e s a n S Q L st a t em en t t o a M i c r o so f t J e t c o n n ec t e d O D B C da t a
s o u r c e f o r pr o c e s s i n g ( M i c r o so f t J et sn a p sh o t - t y p e r ec o r d s et o n l y )
d bS e e C h a n g e s - G e n e r a t e s a r u n t i m e e r r o r i f o n e u s er i s c h a n gi n g da t a t h a t a n o t h e r
u s e r i s e di t i n g ( M i c r o s o f t J et D y n a s e t t y p e o n l y )
d bD e n y W r i t e - P r e v e n t s o t h er u s er s f r o m m o di f y i n g o r a d d i n g r ec o r ds ( M i c r o so f t J e t
r e c o r d s e t o bj e c t s o n l y )
d bD e n y R e a d - P r e v e n t s o t h er u s er s f r o m r ea d i n g d a t a i n a t a b l e ( M i c r o so f t t a bl e t y pe
record set only)
d bF o r w a r d O n l y - C r e a t e s a f o r w a r d - o n l y r ec o r d s et ( M i c r o so f t J e t s n a p sh o t t y pe o n l y ) .
I t i s p r o v i d e d o n l y f o r b a c k w a r d c o m p a t i b i l i t y , a n d y o u sh o u l d u se t h e
d bO p e n F o r w a r d O n l y c o n st a n t i n t h e t y p e a r gu m e n t i n st e a d o f u s i n g t h i s o pt i o n
d bR e a dO n l y - P r e v e n t s u s er s f r o m m a k i n g c h a n g e s t o t h e r ec o r d s et ( M i c r o so f t J et
o n l y ) . T h e d bR e a dO n l y c o n st a n t i n t h e l o c k e di t s a r gu m en t r ep l a c e s t h i s o pt i o n ,
which is provides only for backward compatibility
d bR u n A s y n c - R u n s a n a s y n c h r o n o u s q u e r y ( O D B C D i r ec t w o r k s pa c e s o n l y )
d bE x e c D i r e c t - R u n s a Q u er y b y sk i pp i n g S Q L P r ep a r e a n d di r ec t l y c a l l i n g
S Q L E x e c D i r e c t ( O D B C D i r ec t w o r k s pa c e s o n l y )
d bI n c o n s i s t e n t - A l l o w s i n c o n si s t e n t u p da t es ( M i c r o so f t J et dy n a s et t y p e a n d sn a p s h o t
type only)
d bC o n s i s t e n t - A l l o w s o n l y c o n si st en t u pd a t e s ( M i c r o so f t J e t d y n a s e t t y p e a n d
s n a p s h o t t y pe o n l y )
H e r e a r e t h e po s s i b l e s e t t i n g s f o r l o c k e d i t s a r g u m en t





d bR e a dO n l y - P r e v e n t s u s er s f r o m m a k i n g c h a n g e s t o t h e R ec o r d se t ( de f a u l t f o r
ODBCDirect workspaces)
d bP e s s i m i s t i c - U s e s p e s s i m i st i c l o c k i n g t o de t er m i n e h o w c h a n g e s a r e m a d e t o t h e
r e c o r d s e t i n a m u l t i - u s e r en v i r o n m en t
d bO pt i m i s t i c - U s e s o p t i m i st i c l o c k i n g t o d et er m i n e h o w c h a n ge s a r e m a d e t o t h e
R e c o r d s e t i n a m u l t i - u s e r en v i r o n m en t
d bO pt i m i s t i c V a l u e - U s e s o pt i m i s t i c c o n c u r r en c y b a se d o n r o w v a l u e s ( O D B C D i r ec t
w o r k s pa c e s o n l y )
d bO pt i m i s t i c B a t c h - E n a bl e s b a t c h o pt i m i st i c u p d a t i n g ( O D B C D i r ec t w o r k s p a c e s o n l y )
A n y o n e o f t h e s e r e c o r d s e t o bj e c t c a n b e u s e d t o g a i n a c c e s s t o a n e x i st i n g t a bl e i n a d a t a b a s e.
E a c h h a s u n i qu e pr o p e r t i e s a n d b e h a v e s di f f e r en t l y a t t i m e s.
The dynase t type recordset data obje ct: V I S U A L B A S I C d y n a s e t t y p e r e c o r d s et d a t a o bj e c t i s m o s t f r e qu en t l y u s e d i n V I S U A L B A S I C
da t a b a s e p r o gr a m . I t i s u s e d t o d y n a m i c a l l y a c c e ss t o p a r t o f a l l o f a n ex i s t i n g d a t a t a bl e i n a
da t a b a s e .
W h e n y o u s e t t h e d a t a ba s e n a m e a n d r ec o r d s et p r o pe r t y o f a V I S U A L B A S I C d a t a
c o n t r o l , y o u a r e a c t u a l l y c r e a t i n g d y n a s et t y p e r ec o r d s et . A l so y o u c a n c r e a t e dy n a s et m e t h o d o f
da t a b a s e o b j e c t .
NetScape COMPUTER ACADEMY
123
D y n a s e t r e qu i r e s l e s s m e m o r y t h a n o t h e r da t a o bj ec t s a n d pr o v i d e t h e m o s t u pd a t e o p t i o n
i n c l u di n g t h e c a pa b i l i t y o f c r e a t i n g a d di t i o n a l d a t a o bj ec t s f r o m e x i s t i n g dy n a s et . D y n a s et a r e t h e
d e f a u l t da t a o b j e c t f r o m v i s u a l ba s i c d a t a c o n t r o l a n d t h e y a r e t h e o n l y u p d a t a bl e d a t a o bj ec t y o u
c a n u s e f o r d a t a b a s e s c o n n e c t e d t h r o u gh M i c r o s o f t O D B C ( O p e n D a t a b a s e C o n n e c t i vi t y )
E v e n t h o u g h d y n a s e t s a r e v i r t u a l t a bl e s i n m em o r y c r e a t e d f r o m ph y si c a l t a bl e, t h e y a r e n o t
s t a t i c c o p y o f t h e da t a t a bl e s . A f t e r y o u c r e a t e d a dy n a s et , i f a n y o n e a l t er s t h e da t a t a b l e by
m o d i f y i n g, a d d i n g o r d e l e t i n g r e c o r d s y o u s e e t h e c h a n ge a s i n y o u r dy n a s et a s so o n a s y o u r
r e f r e s h t h e dy n a s e t . R e f r e s h i n g t h e dy n a s et c a n b e do n e u si n g r ef r e sh m e t h o d. D y n a s et a l so h a v e
s o m e l i m i t a t i o n s a n d dr a w ba c k s .
E . g. : - i f a n o t h e r u s e r d e l e t e s a r e c o r d t h a t y o u c u r r en t l y h a v e i n y o u r d y n a s e t a n d y o u a t t em p t t o
m o v e t h a t r e c o r d, V I S U A L B A S I C w i l l r e po r t a n er r o r . A dy n a s et c a n b e c r ea t ed u s i n g m o r e t h a n
o n e t a bl e . D y n a s e t t y p e r e c o r d s e t c a n u s e bo o k m a r k , f i l t e r , so r t , pr o p er t i e s t o r e o r d e r d a t a f o r
di s pl a y y o u c a n n o t u s e t h e s e e k m e t h o d o n a d y n a s e t t y pe r ec o r d s et , y o u c a n u s e t h e f i n d f i r st ,
f i n d n e x t , f i n d l a s t , f i n d pr e v i o u s m e t h o ds.
Using the find methods in dynaset object: D y n a s e t do n o t h a v e i n d e x e s a p pl y t o t h em . I . e. , y o u c a n n o t p er f o r m a s e e k a c t i o n t o l o c a t e a
s pe c i f i c r e c o r d. H o w e v e r D y n a s e t w i l l a l l o w s eq u en t i a l s ea r c h e s f o r a n i n di v i d u a l r ec o r d t o h a n d l e
t h e D y n a s e t s u ppo r t t h e f o u r f i n d m e t h o d s.
1)
2)
3)
4)
F i n d F i r s t : - s t a r t s t h e s e a r c h f r o m t h e f i r s t r e c o r d i n t h e d a t a s et , b eg i n s s e a r c h i n g f o r w h a t
a n d r e t u r n s t h e f i r s t r e c o r d s t h a t m a t c h es t h e s e a r c h c r i t er i a .
F i n d L a s t : - s t a r t s t h e s e a r c h f r o m t h e l a s t r ec o r d i n t h e d a t a s et , b eg i n s s e a r c h i n g b a c k w a r d
and returns the first record that matches the criteria.
F i n d N e x t : - s t a r t s t h e s e a r c h F r o m t h e c u r r e n t r ec o r d i n t h e d a t a s et , b e gi n s s e a r c h i n g f o r
w h a t a n d r e t u r n s t h e f i r s t r e c o r d t h a t m a t c h e s t h e c r i t er i a .
F i n d P r e v i o u s : - s t a r t s t h e s e a r c h i n g f r o m t h e c u r r en t r ec o r d i n t h e d a t a se t , b eg i n s s ea r c h i n g
ba c k w a r d s a n d r e t u r n s t h e f i r s t r ec o r d t h a t m a t c h e s t h e c r i t er i a .
S y n t a x : - R e c o r d s e t . f i n df i r s t ” < f i e l dn a m e> < o p e r a t o r > < v a l u e> ”
E . g. :
r s . f i n df i r s t ” i t e m = ’ t v ’ ”
Table type record set data object: I n V I S U A L B A S I C t a b l e t y p e r ec o r d s et da t a o bj ec t g i v e s y o u a c c e s s t o t h e ph y s i c a l d a t a
t a bl e , s o m e t i m e s r e f e r r e d a s ba s e t a bl e, y o u c a n u s e t h e t a bl e o bj ec t t o d i r ec t l y o p en t h e t a bl e.
T h e c h i e f a dv a n t a g e o f u s i n g t a bl e o bj ec t i s t h a t y o u c a n s p ec i f y s e a r c h i n d ex e s a n d u se V I S U A L
B A S I C ‘ s e e k ’ m e t h o d. L i k e d y n a s e t s , T a b l e s t a k e a l i m i t ed a m o u n t o f l o c a l w o r k s t a t i o n m em o r y .
T h e t a bl e t y p e r e c o r d s e t a l s o g i v e s y o u i n s t a n t i n f o r m a t i o n o n t h e st a t e o f t h e d a t a t a bl e. T h i s i s
i m po r t a n t i n a m u l t i u s e r e n v i r o n m e n t .
I . e . , i f a u s e r a d d s o r d e l e t e s a r ec o r d f r o m t h e t a b l e, a l l o t h er u s es f o r h a v e t h e d a t a b a se
o p e n a s V I S U A L B A S I C t a b l e o b j e c t a l so s e e t h e c h a n g es.
V I S U A L B A S I C t a bl e o bj e c t s h a v e f o l l o w i n g dr a w ba c k s. Y o u c a n n o t u s e a s el ec t st a t e m e n t
( qu e r y ) t o i n i t i a l i z e a t a b l e o b j e c t . Y o u c a n n o t c o m bi n e d a t a t a b l es t o c r e a t e u n i qu e v i ew s w h en
y o u c r e a t e t a b l e o b j e c t s . Y o u c a n n o t u s e bo o k m a r k s, c r e a t e f i l t er s o r so r t t h e t a bl e. A l so y o u
c a n n o t u s e t h e t a b l e d a t a o bj e c t t o a c c e s s O D B C o n l y . D y n a s et a n d sn a p sh o t c a n b e u s ed w i t h
ODBC datasources.
T h e s e a l s t r e n gt h o f a t a b l e o bj ec t i s t h a t y o u c a n s p ec i f y i n d ex o bj ec t s t o u s e w h e n
s e a r c h i n g f o r s p e c i f i c r e c o r d s i n t h e t a b l e. T a bl e o b j ec t s a l so u s e l i m i t e d w o r k st a t i o n m em o r y a n d
o f f e r s i n s t a n t u p d a t e w h e n e v e r t h e d a t a i n t h e t a b l e c h a n g e s.
L i k e d y n a s e t s t a b l e o b j e c t s u s e l i m i t ed w o r k s t a t i o n m em o r y b ec a u s e V I S U A L B A S I C c a t c h e s
po i n t e r s t o t h e a c t u a l r e c o r d s a t w o r k st a t i o n i n st e a d o f l o a di n g a l l t h e r ec o r ds i n t o w o r k s t a t i o n
m e m o r y . T h i s gi v e s y o u r p r o g r a m s t h e da t a s e t a c c e s s sp e e d a l l o f t h e da t a o b j ec t , W h e n y o u a r e
s e a r c h i n g f o r t h e s i n g l e r e c o r d. U n l i k e D y n a s e t o r S n a p sh o t , T a b l e o b j ec t s a r e n o t su b s e t o f t h e
da t a t a bl e . T h e y c o n t a i n a l l t h e r e c o r d s i n t h e d a t a t a bl e a t a l l t i m e s.
i . e . , w h e n a n e w r e c o r d i s a dd e d o r a u s er d el e t es a r ec o r d, t h e t a b l e o bj ec t i s u p d a t e d
a u t o m a t i c a l l y t o s e l e c t t h e c h a n ge s .
Ta bl e ty p e r ec or d s e ts , O bj ec t s, I n d ex es , S e ek s: Y o u c a n u s e i n d e x e s t o o r d e r t h e da t a t a b l e.
seek method.
F o r di s pl a y s a n d r e po r t s a n d t o s p e ed s ea r c h es u s i n g
S e e k m e t h o d: E . g. : Dim db as database
Dim ss as recordset
S e t d b = O p e n d a t a b a s e ( “ c : \ a b c \ s t o c k .m d b” )
S e t s s = d b .O p e n R e c o r d s e t ( “ s a l e s ” , d b o p e n t a bl e )
R s .i n d e x = a b
{ c r e a t e i n de x a b o n sa l e s ( i t e m ) }
R s .s e e k ” = ” ,& ’ t v ’
NetScape COMPUTER ACADEMY
124
Limitations of table type record set: T a bl e t y pe r e c o r d s e t h a s c e r t a i n dr a w b a c k s. T h e y a r e ,
1 ) Y o u c a n n o t s o r t a t a bl e
2 ) Y o u c a n ’ t u s e t a b l e t y p e w h e n a c c e s si n g O D B C d a t a so u r c e s
3 ) Y o u c a n ’ t u s e V I S U A L B A S I C d a t a c o n t r o l t o a c c e s s t a b l e t y p e r ec o r d s et .
U n l i k e D y n a s e t s a n d S n a p s h o t s , V I S U A L B A S I C t a bl e o b j ec t s c a n n o t b e so r t ed, f i l t er e d o r h a v e b o o k
m a r k s e t . I n s t e a d o f s o r t i n g, y o u c a n u se i n d ex o b j ec t s w i t h a t a bl e t y p e r ec o r d se t t o e st a b l i sh
t h e o r d e r o f d a t a i n t h e t a b l e . I f y o u n e e d t o f i l t e r t h e t a b l e, y o u m u s t c r ea t e a d y n a s et o r
s n a p s h o t t y pe r e c o r d s e t .
Y o u c a n ’ t de f i n e a t a b l e t y p e o b j e c t t o a c c e p t t h e d a t a u s i n g O D B C da t a so u r c e s.
dy n a s e t o r s n a p s h o t o bj e c t f o r O D B C d a t a r e qu e st .
Y o u m u st u s e a
T h e V I S U A L B A S I C t a bl e t y p e r e c o r d s et o b j ec t i s t h e b e st c h o i c e w h en y o u n e e d f a s t s ea r c h i n g o f
l a r g e da t a t a b l e s .
H o w e v e r y o u n e e d t o p r o c e s s s e t s o f da t a i n st e a d o f si n gl e r ec o r d s, t h e t a b l e t y p e o b j ec t do e s n o t
w o r k a s e a s i l y a s qu i c k l y a s D y n a s e t o r sn a p sh o t .
S n a p s h o t T y pe R e c o r d S e t
V I S U A L B A S I C S n a p s h o t t y p e r ec o r d s et o bj e c t a r e a l m o s t i de n t i c a l t o d y n a se t t y p e
r e c o r d s e t s i n b e h a v i o r a n d pr o p e r t i e s. H o w e v e r t h e se a r e t w o m a j o r di f f er en c es s n a p sh o t a n d
dy n a s e t .
a)
b)
Snapshots are stored entirely in workstation memory.
Snap-shots are read-only object.
Y o u n e e d t o c o n s i d e r s e v e r a l t h i n g s w h e n u s i n g S n a p sh o t da t a o b j ec t .
E . g. : - U n l i k e d y n a s e t o bj e c t , S n a p sh o t s a r e st o r e d en t i r el y a t w o r k st a t i o n m e m o r y . i . e. I f y o u
c r e a t e a S n a p s h o t o bj e c t w h i c h c o n t a i n s 5 0 0 r e c o r d s, a l l 5 0 0 r ec o r d s a r e se n t f r o m t h e d a t a
t a bl e t o y o u r w o r k s t a t i o n m e m o r y .
B e c a u s e a l l t h e r e qu e s t e d r e c o r d s a r e l o a d ed t o l o c a l m a c h i n e, i n i t i a l r ec o r d s o f d a t a c a n t a k e
t i m e w i t h S n a ps h o t t h a n w i t h D y n a s e t . H o w e v er w h en t h e d a t a r ec o r d s a r e r e t r i e v e d a n d st o r e d
l o c a l l y , s u b s e qu e n t a c c e s s t o r e c o r d w i t h i n t h e S n a p sh o t o b j ec t i s f a st er t h a n w i t h D y n a se t
o bj e c t ,
S n a p s h o t a r e s t a t i c v i e w s o f t a bl e. I f y o u h a v e a s et o f d a t a r ec o r d s i n a S n a p sh o t o b j ec t ,
a n d t h e n s o m e o n e de l e t e s r e c o r d s f r o m u n d er l y i n g da t a t a bl e, t h e sn a p - sh o t do e s n o t r ef l ec t
the changes.
T h e o n l y w a y y o u c a n l e a r n a bo u t t h e c h a n ge s i n u n de r l y i n g da t a t a bl e i s t o c r e a t e n ew
s n a p s h o t b y m a k i n g a n e w r e qu e s t
A Full-Scale RDO Example
T o i l l u s t r a t e R D O d a t a h a n dl i n g i n c o de, h er e w e bu i l d f u l l y f u n c t i o n a l R D O p r o j ec t - t h e r do c o d e
pr o j e c t . T h i s pr o gr a m i s d e s i gn e d t o o p en t h e O D B C d a t a so u r c e. U s i n g t h e b u t t o n s i n t h e pr o j ec t
y o u c a n m o v e t h r o u gh t h e da t a b a s e , a n d w e’ l l s e e h o w t o w r i t e c o d e f o r t h e r do pr o j ec t .
RDO-Opening a Connection
T i o p e n a n R D O c o n n e c t i o n t o a da t a b a se , y o u c a n u s e t h e R D O O p en C o n n ec t i o n m et h o d.
O p e n C o n n e c t i o n i s a m e t h o d o f t h e r do E n v i r o n m e n t o bj ec t , a n d y o u ’ l l f i n d a c o l l ec t i o n o f t h o s e
o bj e c t s i n t h e r do E n g i n e o bj e c t ’ s r do E n v i r o n m en t s c o l l ec t i o n . T o a d d t h e R D O o bj ec t s t o a
pr o gr a m , s e l e c t t h e P r o j e c t > R e f e r e n c e s m en u i t e m i n V I S U A L B A S I C , s e l ec t t h e M i c r o so f t R em o t e
D a t a O bj e c t e n t r y i n t h e R e f e r e n c e s di a l o g bo x , a n d c l i c k O K . N o w w e ’ r e f r e e t o u s e
r do E n v i r o n m e n t m e t h o ds l i k e O p e n C o n n ec t i o n .
W o r k s p a c e .O p e n C o n n e c t i o n ( d a t a s o u r c e , [ p r o m p t , [ r e a d - o n l y , [ c o n n e c t ,_
[options]]]])
Here are the arguments to OpenConnection


da t a s o u r c e - T h e n a m e o f t h e D a t a so u r c e
pr o m p t - O D B C p r o m pt i n g c h a r a c t er i s t i c r dD r i v er P r o m pt a s k s t h e u se r f o r a
dr i v e r / d a t a b a s e , r dD r i v e r N o P r o m pt u s e s s p ec i f i e d d r i v er / d a t a b a s e,
r dD r i v e r C o m pl e t e s pe c i f i e s t h e c o n n ec t i o n s t r i n g i t s e l f , a n d
r dD r i v e r C o m pl e t e R e qu i r e d i s t h e sa m e a s r dD r i v e r C o m pl e t e, w i t h t h e
additional
r e qu i r e m e n t t h a t t h e dr i v e r s h o u l d di s a b l e t h e c o n t r o l s f o r
i n f o r m a t i o n n o t n ee d e d f o r
the connection.

r e a d - o n l y - T r u e i f y o u w a n t t o o p en t h e d a t a so u r c e a s r e a d - o n l y

connect-The connect string

o pt i o n s - S e t t o r dA s y n c E n a bl e i f y o u w a n t t o ex e c u t e c o m m a n d s a sy n c h r o n o u s l y
NetScape COMPUTER ACADEMY
125
L e t ’ s s e e a n e x a m pl e , h e r e w e c r e a t e a n r do E n v i r o n m e n t o bj ec t n a m e d r e t h i s w a y w h en t h e f o r m
loads:
D i m r e A s O bj e c t
Private Sub Form_Load( )
S e t r e = r do E n gi n e. r do E n v i r o n em en t s( 0 )
End Sub
N o w w e o pe n a c o n n e c t i o n n a m e d d b t o t h e O D B C so u r c e t h i s w a y
D i m r e A s O bj e c t
D i m db A s C o n n e c t i o n
Private Sub Form_Load()
S e t r e = r do E n gi n e . r do E n v i r o n m en t s( 0 )
S e t d b= r e . O p e n C o n n e c t i o n ( “ d b ” )
End Sub
RDO-Creating a Re sultSe t
A f t e r o p e n i n g a n O D B C da t a s o u r c e a n d c r e a t i n g a n r do C o n n ec t i o n o bj ec t , w e c a n c r ea t e a n R D O
r e s u l t s e t t o s t a r t w o r k i n g w i t h t h e r e c o r d s i n t h a t d a t a so u r c e. T o c r ea t e a r es u l t s et , w e c a n u s e
t h e r do C o n n e c t i o n m e t h o d O p e n R e s u l t s et .
S e t r e s u l t s e t = r d o C o n n e c t i o n .O p e n Re s u l t s e t ( n a m e , [ t y p e , [ l o c k t y p e , [ o p t i o n s ] ] ] )
H e r e a r e t h e a r g u m e n t s f o r O pe n R e s u l t s et




n a m e - S o u r c e f o r t h e r e s u l t se t ; c a n b e a n r do T a bl e o bj ec t , a n r do Q u e r y o bj ec t , o r a n
SQL statement
t y p e - S p e c i f i e s t h e r e s u l t se t t y p e
l o c k t y p e - C a n b e o n e o f t h e s e v a l u e s: r dC o n c u r R e a d O n l y ( r e a d - o n l y ) , r dC o n c u r L o c k
( p e s s i m i s t i c c o n c u r r e n c y ) , r dC o n c u r R o w V er ( o p t i m i st i c r o w - b a se d c o n c u r r en c y ) ,
r d C o n c u r V a l u e s ( o p t i m i s t i c v a l u e - b a s e d c o n c u r r e n c y ) , o r r dC o n c u r B a t c h ( o pt i m i s t i c
c o n c u r r e n c y u s i n g b a t c h u p da t e s)
o pt i o n s - S e t t o r dA s y n c E n a bl e i f y o u w a n t t o ex e c u t e c o m m a n d s a sy n c h r o n o u s l y
H e r e a r e t h e po s s i b l e v a l u e s f o r t h e t y pe a r gu m e n t




d bO p e n K e y s e t - O pe n s a dy n a s et - t y p e r do R e su l t s et o bj ec t , w h i c h i s l i k e a n O D B C
keyset cursor
d bO p e n D y n a m i c - O p e n s a dy n a m i c - t y p e r do R e su l t s et o bj ec t , w h i c h l et s t h e
a p p l i c a t i o n s e e c h a n g e s m a d e b y o t h er u s er s.
d bO p e n S t a t i c - O pe n s a s t a t i c - t y p e r do R esu l t s et o bj ec t
d bO p e n F o r w a r d O n l y - O p e n s a f o r w a r d - o n l y - t y p e r do R es u l t s et o b j ec t , w h er e y o u c a n
only use MoveNext to move
L e t ’ s s e e a n e x a m pl e , H e r e , w e ’ l l c r e a t e a n S Q L - ba s e d r e su l t s e t i n o u r R D O c o d e ex a m pl e, t h e
r do c o d e p r o j e c t , w h e n t h e f o r m l o a ds , u s i n g t h e r do C o n n ec t i o n o b j ec t w e’ v e c r e a t e d - d b. I n t h i s
c a s e , w e ’ l l s e t u p a n S Q L s t a t e m e n t , S Q L S e l , t o pl a c e a l l t h e f i el d s f r o m t h e d a t a so u r c e’ s t a b l e
named students in the result set:
D i m r e A s O bj e c t
D i m db A s r do C o n n e c t i o n
Dim SQLSel As String
Private Sub Form_Load()
SQLsel=“Select * From Stock”
S e t r e = r do E n gi n e . r do E n v i r o n m en t s( 0 )
S e t d b= r e . O p e n C o n n e c t i o n ( “ d b ” )
End Sub
N o w , w e u s e O pe n R e s u l t s e t t o c r e a t e a n r do R e su l t s et o bj ec t , r e su l t s et :
Dim
Dim
Dim
Dim
r e A s O bj e c t
db a s r do C o n n e c t i o n
r e s u l t s e t A s r do R e s u l t s e t
SQLSel As String
Private Sub Form_Load()
SQLsel-“Select * From Stock”
S e t r e = r do E n gi n e . r do E n v i r o n m en t s( 0 )
S e t d b= r e . O p e n C o n n e c t i o n ( “ d b ” )
S e t r e s u l t s e t = d b. O p e n R e su l t s e t ( S Q L S el , r dO p en K e y s e t )
End Sub
NetScape COMPUTER ACADEMY
126
N o w t h a t w e ’ v e o p e n e d a r e s u l t s e t , w e c a n u s e r do R e su l t se t m et h o d s l i k e M o v e F i r s t t o m o v e t o
t h e f i r s t r e c o r d a n d di s p l a y t h e da t a i n t h a t r ec o r d’ s N a m e a n d G r a de f i el d s w i t h t h e r do c o d e
pr o j e c t ’ s t e x t bo x e s , T e x t 1 a n d T e x t 2
Dim
Dim
Dim
Dim
r e A s O bj e c t
db a s r do C o n n e c t i o n
r e s u l t s e t A s r do R e s u l t s e t
SQLSel As String
Private Sub Form_Load()
SQLsel-“Select * From Stock”
S e t r e = r do E n gi n e . r do E n v i r o n m en t s( 0 )
S e t d b= r e . O p e n C o n n e c t i o n ( “ d b ” )
S e t r e s u l t s e t = d b. O p e n R e su l t s e t ( S Q L S el , r dO p en K e y s e t )
Resultset.MoveFirst
T e x t 1 . T e x t = r e s u l t s e t ( “ N a m e” )
Text2.Text=resultset(“Qty”)
End Sub
RDO-Moving through the Records in a Result set
T o m o v e t h r o u gh t h e r e c o r d s i n a r e s u l t se t , y o u c a n u se t h e r d o R e su l t s et ’ s M o v e m e t h o d s l i k e
M o v e F i r s t , M o v e N e x t , M o v e L a s t a n d M o v e P r e v i o u s. A f t er m o v i n g t o t h e r ec o r d w e d i s pl a y t h e
c u r r e n t r e c o r d’ s d a t a i n t e x t bo x e s .
T o m o v e t o t h e F i r s t r e c o r d , y o u u s e M o ve F i r s t m e t h o d
P r i v a t e S u b c m dM o v e F i r s t _ C l i c k ( )
Resultset.MoveFirst
T e x t 1 . T e x t = r e s u l t s e t ( “ N a m e” )
Text2.Text=resultset(“qty”)
End Sub
T o m o v e t o t h e L a s t r e c o r d , y o u u s e M o ve L a s t m e t h o d
P r i v a t e S u b c m dM o v e L a s t _ C l i c k ( )
Resultset.MoveLast
T e x t 1 . T e x t = r e s u l t s e t ( “ N a m e” )
Text2.Text=resultset(“qty”)
End Sub
T o m o v e t o t h e N e x t r e c o r d , y o u u s e M o ve N e xt m e t h o d
P r i v a t e S u b c m dM o v e N e x t _ C l i c k ( )
Resultset.MoveNext
T e x t 1 . T e x t = r e s u l t s e t ( “ N a m e” )
Text2.Text=resultset(“qty”)
End Sub
T o m o v e t o t h e P r e v i o u s r e c o r d , y o u u s e M o ve Pr e vi o u s m e t h o d
P r i v a t e S u b c m dM o v e P r e v i o u s _ C l i c k ( )
Resultset.MovePrevious
T e x t 1 . T e x t = r e s u l t s e t ( “ N a m e” )
Text2.Text=resultset(“qty”)
End Sub
RDO-Executing SQL
Y o u c a n e x e c u t e S Q L s t a t e m e n t s w i t h R D O o b j ec t s w h en y o u o p e n a r e su l t s et , y o u c a n a l so
e x e c u t e a n S Q L s t a t e m e n t w i t h t h e r do C o n n ec t i o n o bj ec t ’ s E x ec u t e st a t e m en t s l i k e t h i s:
SQLSel=”Select * from stock”
R do C o n n e c t i o n . E x e c u t e S Q L S e l
NetScape COMPUTER ACADEMY
127
A Full-Scale ADO E xample
T o i l l u s t r a t e A D O d a t a h a n dl i n g i n c o de, w e’ l l bu i l d a n A D O pr o j ec t , t h e a d o c o d e pr o j ec t . T h i s
a p p l i c a t i o n l e t s y o u o pe n t h e m a i n . m d b f i l e u s i n g A D O o b j ec t s t o e d i t r e c o r d s, a d d r ec o r d s, a n d
e v e n d e l e t e r e c o r d s . Y o u c a n a l s o m o v e t h r o u gh t h e d a t a ba s e u si n g t h e b u t t o n s.
T o e di t a r e c o r d, j u s t t y p e t h e n e w v a l u e s i n t o t h e t ex t bo x e s a n d c l i c k t h e U p d a t e b u t t o n . T o a d d
a r e c o r d, u s e t h e A d d bu t t o n , t y p e t h e n ew v a l u e s i n t o t h e t ex t bo x es a n d c l i c k U p d a t e b u t t o n .
ADO-Opening a Connection
T h e f i r s t s t e p i n e di t i n g a n A D O d a t a ba s e i s t o o p en t h a t d a t a b a s e, w h i c h i s c a l l e d da t a so u r c e i n
A D O t e r m i n o l o gy , b y s e t t i n g u p a C o n n ec t i o n o b j ec t . T o u s e t h a t a n d o t h er A D O o b j ec t s i n c o d e,
y o u u s e t h e P r o j e c t > R e f e r e n c e s i t e m , s el ec t t h e M i c r o so f t A c t i v eX D a t a O bj ec t s L i br a r y i t em , a n d
c l i c k O K , a d d i n g t h e A D O O b j e c t L i br a r y t o y o u r pr o j ec t .
N o w , w e a r e f r e e t o c r e a t e a n e w A D O C o n n ec t i o n o bj ec t w i t h t h e C o n n ec t i o n o b j ec t ’ s O p en
m e t h o d.
C o n n e c t i o n .O p e n C o n n e c t i o n S t r i n g [ , Us e r I D [ , P a s s w o r d [ , O p e n O p t i o n s ] ] ]
Here are the arguments



ConnectionString -String containing info rmation
U s e r I D - S t r i n g c o n t a i n i n g a u s er n a m e t o u s e w h e n e st a b l i sh i n g t h e c o n n e c t i o n
O p e n O p t i o n s - I f s e t t o a d C o n n ec t A s y n c , t h e c o n n ec t i o n w i l l be o p en e d
asynchronously
L e t ’ s s e e a n e x a m pl e , w h e n w e s t a r t o u t A D O c o d e e x a m p l e, t h e a do c o d e p r o j ec t , w e’ l l e st a b l i sh a
c o n n e c t i o n , d b, t o t h e d a t a ba s e m a i n . m db.
Private Sub Form_Load( )
D i m db A s C o n n e c t i o n
S e t d b= N e w C o n n e c t i o n
D b. O p e n “ P R O V I D E R = M i c r o so f t . J e t . O L E D B . 3 . 5 1 ; D a t a
S o u r c e= C : \ X Y Z \ M A I N . M D B ; ”
End Sub
ADO-Creating a Re cordset from a Connection
N o w t h a t y o u ’ v e c r e a t e d a n A D O c o n n ec t i o n , y o u c a n o p en a r ec o r d s e t f r o m t h a t c o n n ec t i o n u si n g
t h e R e c o r d s e t o bj e c t ’ s O p e n m e t h o d:
R e c o r d s e t .O p e n [ S o u r c e , [ A c t i v e C o n n e c t i o n , [ T y p e , [ L o c k T y p e , [ O p t i o n s ] ] ] ]
Here are the arguments for this meth od





S o u r c e - A v a l i d C o m m a n d o bj ec t v a r i a bl e n a m e, a n S Q L st a t em en t , a t a bl en a m e, a
s t o r e d pr o c e du r e c a l l , o r t h e f i l e n a m e o f a R ec o r d s et .
A c t i v e C o n n e c t i o n - A V a l i d C o n n ec t i o n o bj ec t v a r i a b l e n a m e o r a st r i n g c o n t a i n i n g
C o n n e c t i o n S t r i n g pa r a m et er s
T y pe - S e t s t h e R e c o r d s e t t y o e
L o c k t y p e - A V a l u e t h a t d et er m i n e s w h a t t y p e o f l o c k i n g ( c o n c u r r en c y ) t h e p r o v i d er
s h o u l d u s e w h e n o pe n i n g t h e R ec o r ds e t
O p t i o n s - A L o n g v a l u e t h a t i n d i c a t es h o w t h e p r o v i d er sh o u l d e v a l u a t e t h e S o u r c e
a r gu m e n t i f i t r e pr e s e n t s so m et h i n g o t h er t h a n a C o m m a n d o bj ec t , o r t h a t t h e
R e c o r d s e t s h o u l d b e r e s t o r e d f r o m a f i l e w h er e i t w a s pr e v i o u s l y s a v e d
H e r e a r e t h e po s s i b l e v a l u e s f o r t h e T y p e a r gu m en t




d bO p e n K e y s e t - O pe n s a dy n a s et - t y p e R ec o r d s et o bj ec t , w h i c h i s l i k e a n O D B C k ey s e t
cursor
d bO p e n D y n a m i c - O p e n s a dy n a m i c - t y p e r ec o r d s et o bj ec t , w h i c h l et s t h e a p pl i c a t i o n
s e e c h a n g e s m a d e by o t h er u s er s
d bO p e n S t a t i c - O pe n s a s t a t i c - t y p e R ec o r d s e t o b j e c t .
d bO p e n F o r w a r d O n l y - O p e n s a F o r w a r d - o n l y - t y p e R ec o r d se t o bj ec t , w h er e y o u c a n
only use MoveNext to move
H e r e a r e t h e po s s i b l e v a l u e s f o r t h e L o c k T y pe a r gu m en t




a d L o c k R e a dO n l y - T h e d e f a u l t ; r ea d - o n l y
a d L o c k P e s s i m i s t i c - P e s s i m i st i c l o c k i n g, r ec o r d by r ec o r d
a d L o c k O pt i m i s t i c - O p t i m i st i c L o c k i n g, r ec o r d b y r ec o r d
a d L o c k B a t c h O pt i m i s t i c - O pt i m i s t i c ba t c h u pd a t e s
NetScape COMPUTER ACADEMY
128
H e r e a r e t h e po s s i b l e v a l u e s f o r t h e o p t i o n s a r gu m en t








a d C m dT e x t - P r o v i d e r s h o u l d e v a l u a t e S o u r c e a s a de f i n i t i o n o f a C o m m a n d
a d C m dT a bl e - A D O s h o u l d ge n e r a t e a n S Q L qu er y t o r e t u r n a l l r o w s f r o m t h e t a bl e
named in source
a dc m dT a b l e D i r e c t - P r o v i d er sh o u l d r e t u r n a l l r o w s f r o m t h e t a bl e n a m ed i n t h e so u r c e
a d C m dS t o r e dP r o c - P r o v i d er sh o u l d e v a l u a t e so u r c e a s st o r e d pr o c e du r e
a d C m d U n k n o w n - T y p e o f c o m m a n d i n t h e s o u r c e a r gu m en t i s n o t k n o w n
a d C o m m a n d F i l e - R e c o r d s et sh o u l d b e r e st o r e d f r o m t h e f i l e n a m e d i n so u r c e
a d E x e c u t e A s y n c - s o u r c e sh o u l d b e e x ec u t e d a s y n c h r o n o u sl y
a d F e t c h A s y n c - A f t e r t h e i n i t i a l qu a n t i t y s pec i f i e d i n t h e C a c h eS i z e p r o p e r t y i s
f e t c h e d, a n y r e m a i n i n g r o w s s h o u l d be f e t c h ed a sy n c h r o n o u s l y
L e t ’ s s e e a n e x a m pl e , i n o u r A D O e x a m pl e, w e c r e a t e a r ec o r d se t , a do R e c o r d s et , by f i r s t d ec l a r i n g
it a form-wide variable
D i m a do R e c o r d s e t A s R e c o r d s e t
N e x t , w e s e l e c t a l l t h e r e c o r d s i n t h e st o c k t a bl e t h i s w a y w h en t h e f o r m l o a d s, u s i n g t h e O p en
m e t h o d.
Private Sub Form_Load( )
D i m db A s C o n n e c t i o n
D i m a do R e c o r d s e t A s R e c o r d s et
S e t d b= N e w C o n n e c t i o n
D b. O p e n “ P R O V I D E R = M i c r o so f t . J e t . O L E D B . 3 . 5 1 ; D a t a _
Source=C:\XYZ\MAIN.MDB;”
S e t a do R e c o r ds e t = N e w R ec o r d se t
a d o R e c o r d s e t . O p e n “ S e l ec t N a m e, Q t y f r o m st o c k ” , d b, a d O p en S t a t i c , _
a d L o c k O pt i m i st i c
End Sub
ADO-Binding Controls to Recordsets
T o bi n d a c o n t r o l t o a n A D O r e c o r d s e t o bj ec t , y o u j u s t s e t t h a t c o n t r o l ’ s D a t a S o u r c e pr o p er t y t o
t h a t o b j e c t , a n d t h e n s e t w h a t e v e r o t h e r d a t a pr o p er t i e s t h a t c o n t r o l n e e d s t o h a v e se t .
L e t ’ s s e e a n e x a m pl e , i n o u r A D O e x a m pl e pr o j e c t , w e c r e a t e a r ec o r d s e t , a do R ec o r ds e t , a n d o p en
t h e m a i n . m d b d a t a b a s e . W e c a n bi n d t h e f i el d s i n t h a t d a t a b a s e t o t h e t ex t bo x es T e x t 1 a n d T e x t 2 .
P r i v a t e S u b F o r m - L o a d( )
D i m db A s C o n n e c t i o n
S e t d b= N e w C o n n e c t i o n
d b. O p e n “ P R O V I D E R = M i c r o so f t . J e t . O L E D B . 3 . 5 1 ; D a t a S o u r c e= _
C:\XYZ\MAIN.MDB;”
S e t a do R e c o r ds e t = N e w R ec o r d se t
A do R e c o r d s e t . O p e n “ S e l ec t N a m e, Q t y f r o m S t o c k ” , _
d b, a dO p e n s t a t i c , a d L o c k O pt i m i s t i c
S e t T e x t 1 . D a t a S o u r c e = a do R ec o r d se t
T e x t 1 . D a t a F i e l d= ” N a m e ”
S e t T e x t 2 . D a t a S o u r c e = a do R ec o r d se t
T e x t 2 . D a t a F i e l d= ” Q t y ”
End Sub
ADO-Adding a Record to a Recordset
T o a d d a n e w r e c o r d t o a n A D O r e c o r d s et , y o u u s e t h e A d dN ew m et h o d. A f t er y o u ’ v e u p da t ed t h e
f i e l d s o f t h e c u r r e n t r e c o r d, y o u s a v e t h a t r ec o r d t o t h e da t a b a s e w i t h t h e U p d a t e m et h o d. H er e ’ s
how you use AddNew.
R e c o r d s e t . A d dN e w [ F i e l d s [ , V a l u es ] ]
Here are the arguments for this method


F i e l d s - A s i n gl e n a m e o r a n a r r a y o f n a m e s o r o r di n a l po s i t i o n s o f t h e f i e l d s i n t h e
new record
V a l u e s - A s i n gl e v a l u e o r a n a r r a y o f v a l u e s f o r t h e f i e l ds i n t h e n ew r ec o r d. I f f i el d s
i s a n a r r a y , V a l u e s m u s t a l so b e a n a r r a y w i t h t h e s a m e n u m b e r o f m em b er s. T h e
o r d e r o f f i e l d n a m e s m u st m a t c h t h e o r d er o f f i e l d v a l u e s i n ea c h a r r a y
NetScape COMPUTER ACADEMY
129
L e t ’ s s e e a n e x a m pl e , h e r e w e ’ l l a d d a n ew r ec o r d t o t h e r ec o r d s et a do R ec o r d s et i n o u r A D O c o d e
E x a m pl e , t h e a d o c o d e e x a m p l e , w h e n t h e u s e r c l i c k s t h e a p pr o pr i a t e bu t t o n .
P r i v a t e S u b c m dA d d_ C l i c k ( )
On Error GoTo ErrLabel
A do R e c o r d s e t . A d dN e w
Text1.Text=””
Text2.Text=””
Exit Sub
ErrLabel:
M s gB o x E r r . D e s c r i p t i o n
End Sub
ADO-Refreshing the Recordset
S o m e t i m e s y o u w a n t t o r e f r e s h t h e d a t a i n a r ec o r d s et - y o u m i gh t b e de a l i n g w i t h m u l t i p l y c o n n e c t e d da t a b a s e s , f o r i n s t a n c e , w h e r e o t h er u s er s a r e m a k i n g c h a n g e s a s w el l - a n d y o u c a n u s e
t h e A D O R e f r e s h m e t h o d f o r t h a t . L e t ’ s s e e a n e x a m p l e. H e r e, w e’ l l r ef r e sh t h e r ec o r d s et i n o u r
A D O c o d e e x a m p l e , t h e a d o c o d e e x a m p l e, w h en t h e u s er C l i c k s t h e a p pr o pr i a t e bu t t o n .
P r i v a t e S u b c m dR e f r e s h _ C l i c k ( )
A do R e c o r d s e t . R e qu e r y
End Sub
ADO-Updating a Record in a Recordset
A f t e r c h a n gi n g t h e d a t a i n a r e c o r d’ s f i e l d s o r a d di n g a n ew r ec o r d, y o u u p da t e t h e d a t a s o u r c e t o
r e c o r d t h e c h a n g e , u s i n g t h e U p d a t e m et h o d.
R e c o r d s e t .U p d a t e F i e l d s , V a l u e s
Here are the arguments for this method


F i e l d s - A s i n gl e n a m e o r a n a r r a y o f n a m e s o r o r di n a l po s i t i o n s o f t h e f i e l d s i n t h e
n e w r e c o r d.
V a l u e s - A S i n g l e v a l u e o r a n a r r a y o f v a l u e s f o r t h e f i e l ds i n t h e n ew r ec o r d. I f f i el d s
i s a n a r r a y , V a l u e s m u s t a l so b e a n a r r a y w i t h t h e s a m e n u m b e r o f m em b er s. T h e
o r d e r o f f i e l d n a m e s m u st m a t c h t h e o r d er o f f i e l d v a l u e s i n ea c h a r r a y .
L e t ’ s s e e a n e x a m pl e , W h e n u s e r s w a n t t o u p da t e r ec o r d s i n o u r A D O c o d e e x a m p l e, t h e y c l i c k t h e
a p p r o pr i a t e bu t t o n , a n d w e ’ l l u pd a t e t h e d a t a so u r c e t h i s w a y .
P r i v a t e S u b c m dU p d a t e _ C l i c k ( )
a d o R e c o r d s e t . U p da t e
End Sub
ADO-Moving through the Records in Recordset
T o m o v e t h r o u gh t h e r e c o r d s i n a r e c o r d se t o f A D O t y p e, y o u u se t h e f o u r M o v e m et h o d s
M o v e F i r s t , M o v e L a s t , M o v e N e x t a n d M o v eP r e v i o u s. A f t e r m o v i n g t o t h e r e c o r d w e d i sp l a y t h e
current record in Text boxes
T o M o v e t o t h e F i r s t r e c o r d , u s e M o ve F i r s t m e t h o d
P r i v a t e S u b c m dM o v e F i r s t _ C l i c k ( )
adoRecordset.MoveFirst
T e x t 1 . T e x t = a do R e c o r d s e t ( “ N a m e ” )
T e x t 2 . T e x t = a do R e c o r d s e t ( “ Q t y ” )
End Sub
T o M o v e t o t h e L a s t r e c o r d , u s e M o ve L a s t m e t h o d
P r i v a t e S u b c m dM o v e L a s t _ C l i c k ( )
adoRecordset.MoveLast
T e x t 1 . T e x t = a do R e c o r d s e t ( “ N a m e ” )
T e x t 2 . T e x t = a do R e c o r d s e t ( “ Q t y ” )
End Sub
NetScape COMPUTER ACADEMY
130
T o M o v e t o t h e N e x t r e c o r d , u s e M o ve N e x t m e t h o d
P r i v a t e S u b c m dM o v e N e x t _ C l i c k ( )
adoRecordset.MoveNext
I f a do R e c o r d s e t . E O F = T r u e t h en a do R ec o r d s e t . M o v eL a st
T e x t 1 . T e x t = a do R e c o r d s e t ( “ N a m e ” )
T e x t 2 . T e x t = a do R e c o r d s e t ( “ Q t y ” )
End Sub
T o M o v e t o t h e P r e v i o u s r e c o r d , u s e M o ve P r e vi o u s m e t h o d
P r i v a t e S u b c m dM o v e P r e v i o u s _ C l i c k ( )
adoRecordset.MovePrevious
I f a do R e c o r d s e t . B O F T h en a do R ec o r d s et . M o v eF i r s t
T e x t 1 . T e x t = a do R e c o r d s e t ( “ N a m e ” )
T e x t 2 . T e x t = a do R e c o r d s e t ( “ Q t y ” )
End Sub
ADO-Deleting a Record in a Recordset
T o d e l e t e a r e c o r d i n a n A D O r e c o r d s e t , y o u u s e t h e D el et e m e t h o d
R e c o r d s e t .D e l e t e A f f e c t R e c o r d s
H e r e , A f f e c t R e c o r ds i s a v a l u e t h a t de t er m i n e s h o w m a n y r ec o r d s t h e D el et e m et h o d w i l l a f f ec t . I t
can be one of the following constants


a d A f f e c t C u r r e n t - T h e d e f a u l t ; d el e t es o n l y t h e C u r r en t r ec o r d
a d A f f e c t G r o u p - D e l e t e s t h e r ec o r d t h a t s a t i sf y t h e c u r r en t F i l t e r p r o p e r t y se t t i n g
L e t ’ s s e e a n e x a m pl e , H e r e w e d e l e t e a r ec o r d i n o u r A D O c o d e e x a m p l e , w h en t h e u s er pr e ss e s t h e
a p p r o pr i a t e bu t t o n . I n a d di t i o n , w e m o v e t o t h e n ex t r ec o r d i n t h i s w a y
P r i v a t e S u b c m dD e l e t e _ C l i c k ( )
On Error GoTo ErrLabel
adoRecordset.Delete
adoRecordset.MoveNext
I f a do R e c o r d s e t . E O F T h e n a do R ec o r d s et . M o v e L a s t
Exit Sub
ErrLabel:
M s gB o x E r r . D e s c r i p t i o n
End Sub
ADO-Executing SQL in a Recordset
Y o u c a n e x e c u t e a n S Q L s t a t e m e n t w h en y o u o p e n a r ec o r d s e t u s i n g t h e O p en m e t h o d b y p a s si n g
t h a t s t a t e m en t a s t h e S o u r c e a r gu m e n t
R e c o r d s e t .O p e n [ s o u r c e , [ A c t i v e C o n n e c t i o n , [ T y p e , [ L o c k T y p e , [ O p t i o n s ] ] ] ]
Here are the arguments for this method




s o u r c e - A V a l i d C o m m a n d o bj ec t v a r i a bl e n a m e, a n S Q L st a t em en t , a t a bl e n a m e, a
s t o r e s pr o c e du r e c a l l , o r t h e f i l e n a m e o f a R ec o r d s et .
A c t i v e C o n n e c t i o n - A v a l i d C o n n ec t i o n o bj ec t v a r i a bl e n a m e o r a s t r i n g c o n t a i n i n g
C o n n e c t i o n S t r i n g pa r a m et er s
T y pe - S e t s t h e R e c o r d s e t t y pe
L o c k T y p e - A V a l u e t h a t d et er m i n e s w h a t t y p e o f l o c k i n g ( c o n c u r r en c y ) t h e p r o v i d er
s h o u l d u s e w h e n o pe n i n g t h e R ec o r ds e t o b j ec t
NetScape COMPUTER ACADEMY

131
O p t i o n s - A L o n g v a l u e t h a t i n d i c a t es h o w t h e p r o v i d er sh o u l d e v a l u a t e t h e S o u r c e
a r gu m e n t i f i t r e pr e s e n t s so m et h i n g o t h er t h a n a C o m m a n d o bj ec t , o r t h a t t h e
R e c o r d s e t o bj e c t s h o u l d b e r es t o r e d f r o m a f i l e w h er e i t w a s pr e v i o u s l y s a v e d
H e r e a r e t h e P o s s i b l e v a l u e s f o r t h e T y p e a r gu m en t




d bO p e n K e y s e t - O pe n s a dy n a s et - t y p e r ec o r d se t o bj ec t , w h i c h i s l i k e a n O D B C k ey s e t
cursor
d bO p e n D y n a m i c - O p e n s a dy n a m i c - t y p e r ec o r d s et o bj ec t , w h i c h l et s t h e a p pl i c a t i o n
s e e c h a n g e s m a d e by t h e u se r s
d bO p e n S t a t i c - O pe n s a s t a t i c - t y p e R ec o r d s e t o b j e c t
d bO p e n F o r w a r d O n l y - O p e n s a f o r w a r d - o n l y - t y p e r ec o r d s et o bj ec t , w h er e y o u c a n o n l y
use Movenext to move
H e r e a r e t h e po s s i b l e v a l u e s f o r t h e L o c k t y p e a r gu m en t








a d C m dT e x t - P r o v i d e r s h o u l d e v a l u a t e so u r c e a s a de f i n i t i o n o f a c o m m a n d
a d C m dT a bl e - A D O s h o u l d ge n e r a t e a n S Q L qu er y t o r e t u r n a l l r o w s f r o m t h e t a bl e
named in source
a d C m dT a bl e D i r e c t - P r o v i d er sh o u l d r e t u r n a l l r o w s f r o m t h e t a b l e n a m e d i n S o u r c e
a d C m dS t o r e dP r o c - P r o v i d er sh o u l d e v a l u a t e so u r c e a s a s t o r e d p r o c e du r e
a d C m d U n k n o w n - T y p e o f c o m m a n d i n t h e s o u r c e a r gu m en t i s n o t k n o w n
a d C o m m a n d F i l e - R e c o r d s et sh o u l d b e r es t o r e d f r o m t h e f i l e n a m e d i n so u r c e
a d E x e c u t e A s y n c - s o u r c e sh o u l d b e e x ec u t e d a s y n c h r o n o u sl y
a d F e t c h A s y n c - A f t e r t h e i n i t i a l qu a n t i t y s pec i f i e d i n t h e C a c h eS i z e p r o p e r t y i s
f e t c h e d, a n y r e m a i n i n g r o w s s h o u l d be f e t c h ed a sy n c h r o n o u s l y
H e r e i s a n e x a m pl e w h e r e w e o p e n a r ec o r d s et w i t h t h e S Q L st a t em en t
a d o R e c o r d s e t .O p e n “ S e l e c t * f r o m s t o c k ” , d b, a d O p e n S t a t i c , a d L o c k O p t i m i s t i c
NetScape COMPUTER ACADEMY
132
Chapter 25
Creating Reports- Data Report
U nd e rs ta n di ng R e po rt W ri t in g
R e p o r t w r i t i n g i s t h e m e t h o d b y w h i c h d a t a i s p u l l e d f r o m y o u r da t a b a s e a n d d i s p l a y e d i n a pr i n t e d
f o r m a t , W e b p a g e , o r t e x t f i l e . A p r i n t ed r e po r t i s, i n m a n y s i t u a t i o n s, t h e u l t i m a t e pr o du c t o f y o u r
da t a b a s e a p p l i c a t i o n . W i t h t h e r e l e a s e o f M i c r o so f t V i su a l B a si c 6 . 0 , M i c r o so f t h a s i n t r o du c ed t h e
D a t a R e po r t f o r c r e a t i n g R e po r t s . T h i s t o o l u s e s t h e A D O D a t a en v i r o n m en t t o ex t r a c t da t a f r o m a
da t a s o u r c e a s a b a s i s o f t h e r e po r t .
Creating the Report with Data Report Designer
T h e r e a r e t h r e e m a i n s t e ps i n c r e a t i n g a R e po r t . T h e f i r st i s t o d ef i n e t h e c o n n ec t i o n t o y o u r d a t a
by bu i l d i n g t h e D a t a E n v i r o n m e n t . T h e s ec o n d st e p i n c r ea t i n g t h e r ep o r t i s t o b i n d t h e r e po r t t o
t h e D a t a E n v i r o n m e n t a n d a d d f i e l ds a n d o t h e r o bj ec t s. T h e t h i r d a n d f i n a l st e p i s t o c a l l t h e r e p o r t
f r o m w i t h i n y o u r V i s u a l B a s i c pr o g r a m u s i n g S h o w m et h o d.
S t e p s t o c r e a t e a R e p o r t u s i n g D a t a Re p o r t D e s i g n e r
S t a r t a N e w S t a n d a r d E X E pr o j e c t
I n s e r t a D a t a E n v i r o n m e n t i n t o y o u r pr o j ec t u si n g P r o j ec t > A d d D a t a E n v i r o n m en t m e n u i t e m .
Y o u c r e a t e t h e D a t a E n v i r o n m e n t t o s t o r e t h e d ef i n i t i o n o f t h e d a t a se t t o b e u s ed i n t h e r e p o r t .
D o u b l e - c l i c k o n t h e D a t a E n v i r o n m e n t de s i gn er . C l i c k o n t h e C o n n ec t i o n 1 a n d s el ec t P r o p er t i e s
f r o m t h e m e n u t h a t a p p e a r s . T o c r e a t e t h e c o n n ec t i o n , C l i c k o n t h e N e x t bu t t o n a f t er s el ec t i n g
P r o v i d e r n a m e i n t h e pr o p e r t i e s bo x . T h i s br i n g s u p t h e C o n n ec t i o n s t a b. S e l ec t t h e s ec o n d o p t i o n ,
U s e c o n n e c t i o n s t r i n g a n d t h e n c l i c k b u i l d bu t t o n . S el ec t t h e D a t a b a s e a n d C l i c k n ex t bu t t o n . T o
d e f i n e t h e d a t a s o u r c e , c l i c k o n t h e s e l ec t b u t t o n i n t h e d a t a b s se s ec t i o n o f t h e di a l o g. S e l ec t t h e
da t a b a s e f i l e n a m e a n d c l i c k O K . T e s t y o u r c o n n e c t i o n u si n g T e st C o n n ec t i o n bu t t o n .
N o w y o u c a n d e f i n e t h e C o m m a n d o b j ec t . T h e C o m m a n d st o r es c o n n ec t i o n t o t h e t a bl e a n d t h e
f i e l d s t h a t a r e u s e d o n t h e r e po r t . R i gh t - c l i c k o n C o m m a n d s i n t h e D a t a E n v i r o n m e n t d e si gn er a n d
s e l e c t A d d C o m m a n d. S e t t h e c o m m a n d n a m e. O p en t h e c o n n ec t i o n c o m bo bo x a n d se l ec t t h e
c o n n e c t i o n n a m e y o u h a v e c r e a t e d. S el ec t T a bl e f r o m t h a t c o m bo b o x . A l l t h e t a b l e s i n y o u r
da t a b a s e w i l l be di s pl a y e d i n t h e c o m bo .
Y o u h a v e n o w c o m pl e t e d a l l t h e D a t a E n v i r o n m en t w o r k n ec e ss a r y t o c r e a t e a s i m pl e l i st r e po r t .
N o w i t ’ s t i m e t o c r e a t e t h e r e po r t . T o do t h i s , a d d a D a t a r epo r t d e si gn er f r o m P r o j ec t m e n u .
D o u b l e c l i c k o n d a t a r e p o r t 1 i n p r o j e c t ex p l o r er w i n do w , s et i t s n a m e. S et t h e D a t a so u r c e pr o p e r t y
t o d a t a e n v i r o n m e n t a n d da t a m e m be r p r o pe r t y t o c o m m a n d o bj ec t n a m e .
Y o u c a n n o w a dd f i e l d s t o y o u r da t a r e po r t . T o d o t h i s, y o u di s p l a y t h e D a t a E n v i r o n m en t b y
do u bl e - c l i c k i n g o n i t i n t h e P r o j e c t E x pl o r er w i n d o w . S i m pl y c l i c k a n d dr a g f i e l d s f r o m t h e D a t a
E n v i r o n m e n t t o t h e D a t a R e po r t .
T h e S h o w m e t h o d i s u s e d t o d i s pl a y y o u r r e po r t f r o m v i su a l b a s i c . F o r ex a m p l e
P r i v a t e S u b m n u R e po r t _ C l i c k ( )
D a t a R e po r t 1 . S h o w
End Sub
F or ma t ti n g th e R ep or t
T h e pa c k a gi n g o f y o u r r e po r t s i s o f t e n j u st a s i m po r t a n t a s t h e i n f o r m a t i o n c o n t a i n ed w i t h i n . U s er s
gi v e g r e a t e r c r e di bi l i t y t o r e po r t s t h a t h a v e a po l i sh e d l o o k .
Defining Row Spacing on your Report
T h e D a t a R e po r t u s e s t h e a m o u n t o f s p a c e i n D et a i l sec t i o n o f t h e r e po r t t o ga u g e s pa c e b et w e en
r e c o r d s . T o r e du c e t h e a m o u n t o f s pa c e, y o u d r a g a n d r e du c e t h e si z e o f D et a i l s ec t i o n .
I n s e r t i n g C o l u m n H e a d i n g s o n y o u r Re p o r t
O p e n t h e da t a r e po r t , C h o o s e V i e w > T o o l B o x t o d i s pl a y t h e T o o l b o x . D o u b l e c l i c k o n R p t L a b el
c o n t r o l . D r a g t h e c o n t r o l i n t o P a g e h ea d er s e c t i o n o f y o u r r e po r t a n d se t i t s c a p t i o n pr o p e r t y .
S i m i l i a r y c r e a t e c o l u m n h e a d i n g s f o r a l l y o u r f i el d s.
Inserting Headers and Footers
A l l g o o d pr i n t e r r e po r t s h a v e c e r t a i n c h a r a c t er i s t i c s. T h a t i s t h e n a m e o f r e po r t , d a t e, p a g e
n u m b e r s e t c . T h e s e i t e m s a r e b e s t pl a c e d i n t h e R epo r t H e a de r a n d R e po r t F o o t e r s ec t i o n s o f y o u r
r e po r t . T o a d d R e po r t h e a d e r a n d F o o t e r , r i gh t - c l i c k o n t h e r epo r t a n d s el ec t
Show Report Header/Footer.
NetScape COMPUTER ACADEMY
133
Inserting Controls in Report
T o i n s e r t c o n t r o l s i n y o u r r e po r t c h o o s e I n se r t > C o n t r o l > C u r r e n t D a t e m en u o p t i o n . T o pu t a
pa g e n u m b e r , s e l e c t I n s e r t C o n t r o l > C u r r en t P a g e N u m b er .
Creating Reports Using SQL statements
T h e da t a r e po r t e r e n a bl e s y o u t o c r e a t e r e po r t s u si n g S Q L st a t em en t s a s t h e ba s i s f o r t h e
Command object.
Grouping Records in Data Reports
A d d a G r o u p i n g i n t h e D a t a E n v i r o n m en t t o e n a b l e y o u t o gr o u p t h e r e po r t by t i t l e s. T o do t h i s,
do u bl e c l i c k o n t h e da t a d e s i n g e r , r i gh t - c l i c k o n t h e c o m m a n d o bj ec t a n d s el ec t pr o p e r t i e s. C h e c k
t h e G r o u p c o m m a n d o n G r o u pi n g t a b . C l i c k t h e f i el d i n t h e c o m m a n d l i st bo x a n d m o v e i t t o t h e
f i e l d s u s e d f o r gr o u p i n g l i s t bo x . S e l e c t o k .
Adding Aggregate functions in Report
A g gr e g a t e f u n c t i o n s c a n b e a d de d t o a D a t a E n v i r o n m en t a n d dr a gg e d o n t o a d a t a r e po r t t o do
m o s t b a s i c m a t h f u n c t i o n s , i n c l u d i n g a v er a ge, c o u n t , su m , m a x i m u m , m i n i m u m a n d st a n d a r d
deviation.
Exporting Data
T h e D a t a r e po r t i s a l s o a
information to a Web page.
and Text formats. Try this
s e l e c t E x po r t i c o n a t t o p o f
go o d t o o l f o r ex t r a c t i n g d a t a t o o t h er a p p l i c a t i o n s o r f o r p u b l i sh i n g
A f t e r t h e r e po r t i s g en er a t e d, y o u h a v e t h e c h o i c e o f sa v i n g i t t o H T M L
b y g e n e r a t i n g t h e r e po r t o n c e a g a i n . W h en t h e p r i n t pr e v i ew a pp e a r s,
s c r e e n a n d sa v e t h e r e po r t i n H T M L f o r m a t .
NetScape COMPUTER ACADEMY
134
Chapter 26
Image Lists, List Views, Tree Views and Tab
Strips
Image Lists
I m a g e L i s t c o n t r o l s a r e i n v i s i b l e c o n t r o l s t h a t s e r v e o n e pu r po s e: t o h o l d i m a g e s t h a t a r e u se d by
o t h e r c o n t r o l s . U s u a l l y , y o u a d d i m a g e s t o a n i m a g e l i st c o n t r o l a t d e si g n t i m e, u si n g t h e i n se r t
pi c t u r e bu t t o n i n t h e c o n t r o l ’ s pr o p e r t y p a ge s. Y o u c a n a l so a d d i m a g es t o a n i m a g e l i st a t r u n
t i m e , u s i n g A d d m e t h o d o f i t s i n t e r n a l i m a g e c o l l ec t i o n , L i st I m a g e s.
T o u s e t h e i m a g e s i n t h e i m a g e l i s t , y o u u su a l l y a sso c i a t e t h e i m a g e l i s t w i t h a W i n do w s C o m m o n
C o n t r o l . Y o u c a n a l s o r e a c h t h e i m a g e s i n a n i m a g e l i st w i t h t h e L i st I m a g es c o l l ec t i o n ’ s P i c t u r e
pr o p e r t y . F o r E g. , i f y o u w a n t e d t o u s e a n i m a g e l i st w i t h a c o n t r o l t h a t ’ s n o t a W i n do w s c o m m o n
c o n t r o l , s u c h a s a pi c t u r e bo x , y o u c a n a ss i gn t h e f i r s t i m a g e i n t h e i m a g e c o n t r o l t o t h a t p i c t u r e
bo x t h i s w a y
P i c t u r e 1 . P i c t u r e = I m a g e L i s t 1 . L i s t I m a g e s( 1 ) . P i c t u r e
T o a d d a n i m a g e l i s t , S e l e c t P r o j e c t > C o m po n en t s > W i n do w s C o m m o n C o n t r o l s
T o a d d i m a g e s t o t h e I m a g e l i s t , r i gh t c l i c k o n i t a n d c h o o s e P r o p er t i e s, w h i c h w i l l br i n g t h e
P r o p e r t y pa g e s . C l i c k t h e i m a g e s t a b a n d c l i c k I n s er t P i c t u r e bu t t o n t o a d d I m a g e s. E a c h
s u c c e s s i v e i m a g e g e t s a n e w I n d e x V a l u e, st a r t i n g a t 1 a n d c o u n t i n g u p. I f y o u w i sh , y o u c a n a l s o
gi v e e a c h i m a g e a K e y V a l u e by e n t e r i n g t e x t i n t h e bo x l a b e l e d K e y w h e n y o u a d d a n i m a ge.
A l s o y o u c a n a d d i m a g e s t o a n I m a g e l i s t a t r u n t i m e, u si n g t h e L i s t I m a g e s c o l l ec t i o n ’ s A d d m et h o d.
F o r e g,
I m a g e L i s t 1 . L i s t I m a g e s . A d d , “ T o o l s ” , L o a dP i c t u r e( “ C : \ a bc . bm p” )
Tr ee Vi e ws
T r e e v i e w s p r e s e n t d a t a i n a h i e r a r c h i c a l w a y , su c h a s t h e v i ew o f di r ec t o r i es t h a t a p p e a r s i n t h e
t r e e v i e w a t l e f t i n W i n d o w s E x p l o r e r . T r ee s a r e c o m po s e d o f c a sc a d i n g br a n c h e s o f n o de s, a n d
e a c h n o d e u s u a l l y c o n s i s t s o f a n i m a g e a n d a l a b el . I m a g e s f o r n o d e s a r e su pp l i e d b y a n i m a g el i s t
c o n t r o l a s s o c i a t e d w i t h t r e e v i e w c o n t r o l . A n o d e c a n b e ex p a n d e d o r c o l l a p s e d, de p en di n g o n
w h e t h e r o r n o t t h e n o d e h a s c h i l d n o d es . A t t h e t o p m o s t l e v e l a r e r o o t n o d es , a n d ea c h r o o t n o d e
c a n h a v e a n y n u m b e r o f c h i l d n o de s . E a c h n o d e i n a t r e e a c t u a l l y a p r o g r a m m a bl e n o d e o b j ec t ,
w h i c h b e l o n gs t o t h e n o d e s c o l l e c t i o n . A s w i t h o t h e r c o l l ec t i o n s, ea c h m em b er o f t h e c o l l ec t i o n h a s
a u n i qu e I n d e x a n d K e y pr o p e r t y t h a t a l l o w s y o u t o a c c e s s t h e pr o p er t i e s o f t h e n o d e.
T o a d d T r e e V i e w C o n t r o l , S e l e c t P r o j ec t > C o m p o n en t s > M i c r o so f t W i n d o w s C o m m o n C o n t r o l s
W h e n y o u f i r s t a d d t h e t r e e v i e w c o n t r o l , t h e r e a r e o n l y s a m pl e n o d es v i s i b l e i n i t , a n d n o t h i n g a t
r u n t i m e . Y o u ’ r e r e s po n s i bl e f o r a d di n g t h e n o d e s a n d s et t i n g u p t h ei r r el a t i o n sh i p s, t ex t , a n d
i m a g e s y o u r s e l f . T h e r e a r e m a n y d i f f e r en t s t y l e s f o r t r e e v i ew s - t ex t n o d e s o n l y , p i c t u r es a n d t ex t
n o d e s , s h o w i n g o r n o t s h o w i n g t h e t r e e l i n e s t h a t c o n n ec t n o d e s e t c . Y o u s et t h e t r ee v i ew ’ s st y l e
u s i n g i t s S t y l e pr o p e r t y . H e r e a r e t h e po s si b l e v a l u e s
tvwTextOnly
tvwPictureText
tvwPlusMinusText
tvwPlusPictureText
tvwTreeLinesText
tvwTreeLinePictureText
tvwTreeLinesPlusMinusText
t v w T r e e L i n e s P l u s M i n u s P i c t u r e T ex t
0
1
2
3
4
5
6
7
Y o u a c t u a l l y a d d N o d e o bj e c t s t o a t r e e v i ew b y a d d i n g t h em t o t h e N o de s c o l l ec t i o n .
For Example
Private Sub Form_Load()
Dim Node1 As Node
S e t N o d e 1 = T r e e V i e w 1 . N o d e s . A dd
Node1.Text=”Node 1”
T r e e V i e w 1 . N o d e s ( 1 ) . K e y = ” N o de 1 ”
End Sub
Y o u c a n a dd o t h e r n o d e s by du pl i c a t i n g t h e pr ec e di n g c o de a n d n a m i n g N o d e2 , N o d e 3 a n d so o n .
But, they will appear in the same level.
NetScape COMPUTER ACADEMY
135
Adding Subnodes to a TreeView
W h e n y o u a d d a n e w n o d e t o a t r e e v i ew ’ s N o d e s c o l l ec t i o n , u s i n g A d d m e t h o d, y o u c a n s p ec i f y
h o w i t i s r e l a t e d t o t h e n o d e s a l r e a d y t h er e. T h e s y n t a x f o r A d d m et h o d i s
N o d e s . A d d ( r e l a t i v e , [ r e l a t i o n s h i p ] [ , K e y ] [ ,t e x t ] [ ,i m a g e ] [ s e l e c t e d i m a g e ] )
T h e r e l a t i v e a r gu m e n t i s a n o t h e r n o d e t h a t y o u ’ r e r el a t i n g t h e n ew n o d e t o w i t h r e l a t i o n s h i p
a r gu m e n t . T h e po s s i b l e v a l u e s f o r r e l a t i o n sh i p a r e
tvwLast
-
tvwNext
tvwPrevious
tvwChild
-
1 ; t h e n o d e i s pl a c e s a f t er a l l o t h er n o d e s a t t h e sa m e l e v el o f t h e
n o d e n a m ed i n r el a t i v e.
2 ; t h e n o d e i s pl a c e d a f t er t h e n o d e n a m e d i n r el a t i v e
3 ; t h e n o d e i s pl a c e d b e f o r e t h e n o d e n a m e d i n r e l a t i v e
4 ; t h e n o d e b ec o m e s a c h i l d n o de o f t h e n o d e n a m e d i n r e l a t i v e
Adding Images to TreeView
T o a d d a n i m a g e t o a n o d e i n a t r e e v i ew , y o u j u st h a v e t o s et i t s I m a ge pr o p er t y t o a n I n d ex o r
k e y i n t h e t r e e v i e w ’ s a s s o c i a t e d i m a g el i st c o n t r o l .
Expanding and Collapsing Nodes
W h e n t h e u s e r c l i c k s a p l u s o r m i n u s s i g n i n a t r e e v i ew t o e x p a n d o r c o n t r a c t a n o d e. H o w c a n w e
m a k e t h e n o d e s i m a g e m a t c h . W h e n t h e u s er c l o s e s a n o d e, t h e t r e e v i ew c o n t r o l g en er a t e s a
C o l l a p s e e v e n t . I n t h a t e v e n t h a n dl e r , w e c a n s et t h e n o d e’ s i m a g e t o t h e c l o s e d f o l d er by r e f e r r i n g
to that Image by its key.
P r i v a t e S u b T r e e V i e w 1 _ C o l a p s e ( B y V a l N o d e A s C o m c t l i b. N o d e)
Node.Image=”closed”
‘ c l o s e d i s t h e k e y v a l u e f o r t h e i m a ge
End Sub
S i m i l i a r l y , w h e n t h e u s e r e x p a n ds a n o de, t h e t r e e v i ew c o n t r o l ge n e r a t ed a n E x p a n d E v en t . I n t h a t
event handler we can write as follows
P r i v a t e S u b T r e e V e i w 1 _ E x p a n d( B y V a l N o d e A s C o m c t l i b . N o d e)
N o d e . I m a g e = ” O pe n ”
‘ o p en i s t h e k e y v a l u e f o r i m a g e
End Sub
Sample Code
A d d a T r e e V i e w C o n t r o l T r e e V i e w 1 , a n d I m a g e L i st I m a g e L i st 1 . A dd t w o pi c t u r e s i n I m a g el i st a n d
c h a n g e k e y pr o p e r t y f o r t h e i m a g e s a s “ c l o s ed ” a n d “ l e a f ”
P r i v a t e S u b F o r m - L o a d( )
D i m N o d e 1 , N o d e 2 , N o d e3 , N o d e4 A s N o d e
S e t N o d e 1 = T r e e V i e w . N o d es . A dd
TreeView1.Nodes(1).Text=”Node 1”
T r e e V i e w 1 . N o d e s ( 1 ) . K e y = ” N o de 1 ”
T r e e V i e w 1 . N o d e s ( 1 ) . I m a g e= ” c l o s e d”
S e t N o d e 2 = T r e e V i e w . N o d es . A dd ( “ N o d e 1 ” , t v w C h i l d, “ N o d e 2 ” )
TreeView1.Nodes(2).Text=”Node 2”
T r e e V i e w 1 . N o d e s ( 2 ) . K e y = ” N o de 2 ”
T r e e V i e w 1 . N o d e s ( 2 ) . I m a g e= ” l e a f ”
S e t N o d e 3 = T r e e V i e w . N o d es . A dd ( “ N o d e 1 ” , t v w C h i l d, “ N o d e 3 ” )
TreeView1.Nodes(3).Text=”Node 3”
T r e e V i e w 1 . N o d e s ( 3 ) . K e y = ” N o de 3 ”
T r e e V i e w 1 . N o d e s ( 3 ) . I m a g e= ” c l o s e d”
S e t N o d e 4 = T r e e V i e w . N o d es . A dd ( “ N o d e 3 ” , t v w C h i l d, “ N o d e 4 ” )
NetScape COMPUTER ACADEMY
136
TreeView1.Nodes(4).Text=”Node 1”
T r e e V i e w 1 . N o d e s ( 4 ) . K e y = ” N o de 1 ”
T r e e V i e w 1 . N o d e s ( 4 ) . I m a g e= ” l e a f ”
End Sub
L is t V ie ws
T h e L i s t V i e w c o n t r o l d i s pl a y s , a s i t s n a m e i m p l i e s, l i s t s o f i t em s. Y o u c a n se e a l i s t v i ew a t r i gh t i n
t h e W i n do w s E x pl o r e r . E a c h i t e m i n a L i s t V i ew i s di s pl a y i n g a l i st o f f i l e s . E a c h i t em i n a l i s t v i ew
c o n t r o l i s i t s e l f a L i s t I t e m o bj e c t a n d c a n h a v e b o t h t ex t a n d a n i m a ge a s so c i a t e d w i t h i t . T h e
L i s t I t e m o bj e c t s a r e s t o r e d i n t h e l i s t v i ew ’ s L i st I t e m s c o l l ec t i o n
L i s t V i e w s c a n di s pl a y d a t a i n f o u r d i f f e r en t v i ew m o d e s.
I c o n m o de
-
SmallIconmode
L i s t m o de
R e p o r t m o de
-
C a n b e m a n i pu l a t e d w i t h t h e m o u s e, a l l o w i n g t h e u s er t o dr a g a n d dr o p a n d
r a r r a n g e o bj e c t s
A l l o w s m o r e L i s t I t em o b j ec t s t o b e v i ew e d. L i k e t h e I c o n V i ew m o d e, o bj e c t s
c a n b e r e a r r a n g e d b y t h e u se r
P r e s e n t s a s o r t e d v i ew o f t h e L i s t I t em o bj ec t s
P r e s e n t s a s o r t e d v i ew , w i t h su b - i t em s, a l l o w i n g ex t r a i n f o r m a t i o n t o be
Displayed
Y o u u s u a l l y a s s o c i a t e t w o i m a g e l i s t c o n t r o l s w i t h a l i s t v i ew : o n e t o h o l d t h e i c o n s f o r t h e I c o n
v i e w m o d e , a n d o n e t o h o l d s m a l l i c o n s f o r o t h er t h r ee m o d e s.
T o a d d a L i s t V i e w c o n t r o l , S e l e c t W i n do w s C o m m o n C o n t r o l s i t e m f r o m P r o j ec t > C o m po n en t s
Y o u a d d i t e m s t o a l i s t v i e w ’ s L i s t I t e m s c o l l ec t i o n , u si n g A d d m et h o d. E a c h i t em y o u a d d i s a
L i s t I t e m o bj e c t .
E a c h i t e m i n a L i s t V i e w i s a L i s t I t e m o bj ec t , a n d e a c h su c h o b j ec t h a s a n I c o n pr o p er t y . Y o u s et
t h i s p r o pe r t y t o a n i m a g e ’ s i n d e x o r K e y i n a n i m a g e l i s t c o n t r o l .
A d d a n I m a g e L i s t , I m a g e l i s t 1 a n d a d d a n i m a g e n a m el y n ew . bm p
T o c o n n e c t t h e i m a g e l i s t w i t h L i s t V i e w , s e l ec t t h e pr o p er t y pa g e s o f L i s t V i ew , C l i c k t h e I m a ge L i st s
t a b a n d S e l e c t I m a ge L i s t 1 i n t h e bo x l a b el e d N o r m a l .
A d d a n o t h e r I m a g e L i s t c o n t r o l , n a m e l y I m a g e l i st 2 , a dd a n i m a g e n a m el y l e a f . bm p, c o n n ec t w i t h
ListView control and click ok
F o r E g.
Private Sub Form_Load ( )
Dim ListItem1 As ListItem
S e t L i s t I t e m 1 = L i s t V i e w 1 . L i s t I t e m s. A dd( )
ListItem1.Text=”Item 1”
ListItem1.Icon=1
ListItem1.SmallIcon=1
Dim ListItem2 As ListItem
S e t L i s t I t e m 2 = L i s t V i e w 1 . L i s t I t e m s. A dd( )
ListItem2.Text=”Item 2”
ListItem2.Icon=1
ListItem2.SmallIcon=1
Dim ListItem3 As ListItem
S e t L i s t I t e m 3 = L i s t V i e w 1 . L i s t I t e m s. A dd( )
ListItem3.Text=”Item 3”
ListItem3.Icon=1
ListItem3.SmallIcon=1
End Sub
NetScape COMPUTER ACADEMY
137
L i s t V i e w s c a n di s pl a y l i s t s a r r a n g e s i n c o l u m n s w h en y o u s e t t h ei r V i ew pr o p er t y t o l v w R e po r t . T o
a d d c o l u m n s t o a l i s t v i e w , y o u j u s t n e e d t o a d d c o l u m n h e a d e r s, a n d y o u do t h a t w i t h t h e l i st
v i e w ’ s C o l u m n H e a de r s c o l l e c t i o n .
P r i v a t e s u b F o r m _ L o a d( )
D i m c o l H e a de r a s C o l u m n H e a d e r
D i m i n t L o o p I n de x A s I n t e ge r
For intLoopindex= 1 to 4
S e t c o l H e a d e r = L i s t V i e w 1 . C o l u m n H e a d er s. A d d( )
C o l H e a d e r . T e x t = ” F i e l d” & i n t L o o p I n de x
C o l H e a d e r . W i dt h = L i s t V i e w 1 . W i dt h / 4
Next
End Sub
Tab Strips
Y o u c a n gr o u p di a l o g bo x e s i n t o o n e u si n g T a b s t r i p. A s t h e u s e r s e l ec t s t h e t a b i n t h e t a b st r i p, y o u
c a n d i s p l a y t h e c o n t e n t s t h a t w e r e s e p a r a t e d i a l o g bo x e s i n pa n e l s t h a t a p p e a r w h en t h e i r t a b i s
c l i c k e d. T o a d d a T a b s t r i p, s e l e c t P r o j ec t > C o m p o n en t s > W i n do w s C o m m o n C o n t r o l s.
A f t e r y o u a d d a t a b s t r i p c o n t r o l , y o u c a n a d d n e w t a b s, t ex t , a n d i m a g e s t o t h o s e t a b s. A t de s i g n
t i m e , y o u u s e t h e t a b s t r i ps pr o p e r t y p a ge s a n d a d d n ew t a b s b y c l i c k i n g I n s er t T a b bu t t o n . Y o u
c a n s e t t h e e a c h t a b’ s T e x t , K e y pr o p er t i e s et c . a t r u n t i m e t o a d d t a bs u s e t a b s t r i p’ s T a bs
pr o p e r t y , u s i n g A d d m e t h o d. Y o u c a n s et t h e C a pt i o n o f ea c h t a b u si n g C a pt i o n pr o p er t y . T o se t
i m a g e s f o r t a b, a d d i m a g e l i s t c o n t r o l , i m a g el i st 1 , a d d i m a g e s t o i t e a n d c o n n ec t w i t h t a b s i n t h e
t a b s t r i p.
Sample Code
Private Sub Form_Load( )
D i m T a b 2 , T a b3 a s C o m c t l i b. T a b
S e t T a b1 = T a bS t r i p1 . T a b s ( 1 )
T a b1 . K e y = ” K e y 1 ”
T a b1 . C a pt i o n = ” T a b 1 ”
T a b1 . I m a g e = 1
S e t T a b2 = T a bS t r i p1 . T a b s . A d d( )
T a b2 . K e y = ” K e y 2 ”
T a b2 . C a pt i o n = ” T a b 2 ”
T a b2 . I m a g e = 2
S e t T a b3 = T a bS t r i p1 . T a b s . A d d( )
T a b3 . K e y = ” K e y 3 ”
T a b3 . C a pt i o n = ” T a b 3 ”
T a b3 . I m a g e = 3
End Sub
NetScape COMPUTER ACADEMY
138
Chapter 27
File Handling
File Handling
T h e r e a r e t h r e e m a i n w a y s i n V B t o a c c e ss f i l e s i n V i su a l B a s i c : a s se qu e n t i a l f i l e s, a s r a n do m
a c c e s s f i l e s , a n d a s bi n a r y f i l e s .
Sequential Access Files
S e qu e n t i a l f i l e s a r e l i k e t a p e c a s s e t t e s - y o u r e a d da t a f r o m t h em i n a s eq u e n t i a l m a n n er . I f y o u
w a n t da t a a t t h e e n d o f t h e f i l e , y o u h a v e t o r e a d a l l t h e i n t e r v en i n g d a t a f i r s t . S e qu en t i a l f i l es a r e
o f t e n o r g a n i z e d i n t o t e x t s t r i n gs i n V i su a l B a si c . H er e a r e t h e V i su a l B a s i c s t a t em en t s a n d f u n c t i o n s
you use with sequential files







Open
L i n e I n pu t #
Print #
Write #
I n pu t $
I n pu t #
Close
I n a d di t i o n , V i s u a l B a s i c s u ppo r t s T e x t s t r e a m o b j ec t s t o m a k e w o r k i n g w i t h se qu en t i a l f i l e s ea s i e r .
Here are the major Textstream methods







Read
ReadAll
ReadLine
Write
WriteBlankLines
WriteLine
Close
I f y o u ’ v e go t a t e x t f i l e f u l l o f v a r i a b l e - l e n g t h s t r i n g s, y o u u su a l l y t r e a t t h a t f i l e a s s e qu en t i a l . Y o u
c a n a l s o u s e s e q u e n t i a l f i l e s t o s t o r e bi n a r y - f o r m a t i t em s l i k e n u m be r s .
Random Access Files
I f s e qu e n t i a l f i l e s a r e l i k e c a s s e t e s , R a n do m a c c e ss f i l e s a r e m o r e l i k e C D s. R a n do m f i l es a r e
o r g a n i z e d i n t o r e c o r ds u s u a l l y o f t h e s a m e l en gt h , a n d y o u c a n r e a d a p a r t i c u l a r r ec o r d w i t h o u t
h a v i n g t o r e a d a l l t h e i n t e r v e n i n g da t a - y o u c a n m o v e t o t h a t r ec o r d i n a f i l e di r ec t l y , j u s t a s y o u
can move to a CD track.
H e r e a r e t h e V i s u a l B a s i c s t a t e m e n t s a n d f u n c t i o n s y o u u s e w i t h r a n do m a c c e s s f i l e s








T y pe … E n d T y p e
Open
Put #
Len
Seek
LOC
Get #
Close
I f y o u w a n t t o c r e a t e y o u r o w n d a t a b a s e f i l e s, f o r m a t t e d a s y o u w a n t t h e m , y o u ’ d o r g a n i z e t h em
i n t o r e c o r ds . I n f a c t , a n y f i l e t h a t y o u w a n t t o o r g a n i z e i n t o r ec o r ds i s b e st f o r m a t t e d a s a r a n d o m
access file.
Binary Files
B i n a r y f i l e s a r e s i m p l y u n f o r m a t t e d b i n a r y d a t a , a n d V i su a l B a s i c do e s n o t i n t e r p r et ( su c h a s
l o o k i n g f o r t e x t s t r i n g s ) o r o r ga n i z e t h e c o n t en t s ( i n t o r ec o r d s) o f su c h f i l e s a t a l l . T h e s e f i l e s a r e
j u s t b y t e s t o V i s u a l B a s i c , a n d t h e st a t em en t s a n d f u n c t i o n s y o u u s u a l l y u s e w i t h t h e s e f i l e s
include the following





Open
Get
Put
Seek
Close
B i n a r y f i l e s i n c l u d e E X E f i l e s , g r a ph i c f i l es, a n d so o n .
NetScape COMPUTER ACADEMY
139
The FileSystem Object
B e s i d e s t h e p r e c e d i n g f i l e t y p e s , V i su a l B a si c i n c l u d es t h e F i l eS y s t em O b j ec t f o r ea s y f i l e
m a n i p u l a t i o n o n di s k . T h i s o b j e c t i n c l u de s a n u m b er o f m e t h o d s f o r c o py i n g, m o v i n g, a n d de l e t i n g
files such as these

GetFile

CopyFile

DeleteFile

MoveFiles

FileExists

CreateFolder

CreateTextFile

OpenTextFile
I n f a c t , y o u u s e t h e F i l e S y s t e m O b j e c t t o c r e a t e T ex t S t r ea m o b j ec t s w i t h m et h o d s l i k e
CreateTextFile and OpenTextFile.
Creating A File
T h e s t a n da r d w a y i s t o u s e t h e O p e n s t a t em en t . H er e’ s h o w t h e O p en st a t e m e n t w o r k s:
O pe n pa t h n a m e F or m ode [Ac c e s s a c c e s s ] [ L oc k ] As [ #] f i l e n u m b e r [L e n =r e c l e n gt h ]






P a t h n a m e - A f i l e n a m e ( m a y i n c l u d e di r ec t o r y o r f o l d er a n d d r i v e)
M o d e - A k e y w o r d s p e c i f y i n g t h e f i l e m o d e: A p pe n d, B i n a r y , I n pu t , O u t pu t , o r R a n do m ( i f
u n s p e c i f i e d, t h e f i l e i s o p e n e d f o r R a n do m a c c es s)
A c c e s s - A K e y w o r d s p e c i f y i n g t h e o p er a t i o n s p e r m i t t e d o n t h e o p en f i l e: R ea d, W r i t e, o r
Read Write.
L o c k - A k e y w o r d s p e c i f y i n g t h e o p er a t i o n s r e s t r i c t e d o n t h e o p en f i l e b y o t h e r p r o c es s e s:
S h a r e d, L o c k R e a d, L o c k W r i t e , a n d L o c k R e a d W r i t e.
F i l e n u m b e r - A V a l i d f i l e n u m b e r i n t h e r a n g e 1 t o 5 1 1 , i n c l u si v e . U se t h e F r e e F i l e f u n c t i o n
t o o b t a i n t h e n e x t a v a i l a bl e f i l en u m b er .
R e c l e n g t h - A n u m b e r l e s s t h a n o r eq u a l t o 3 2 7 6 7 . F o r f i l e s o p en e d f o r r a n do m a c c e s s, t h i s
v a l u e i s t h e r e c o r d l e n g t h . F o r s e qu en t i a l f i l e s, t h i s v a l u e i s t h e n u m b e r o f c h a r a c t er s
bu f f e r e d.
I f t h e f i l e i s a l r e a d y o p e n e d b y a n o t h e r pr o c e ss a n d t h e s p ec i f i e d t y p e o f a c c e s s i s n o t a l l o w e d, t h e
O p e n o p e r a t i o n f a i l s a n d a n e r r o r o c c u r s . A l so n o t e t h a t t h e L en c l a u s e i s i gn o r e d i f m o d e i s
B i n a r y . I f t h e f i l e s p e c i f i e d b y p a t h n a m e do e s n ’ t e x i s t , i t i s c r ea t ed w h en a f i l e i s o pe n e d f o r
A p p e n d, B i n a r y , O u t pu t , o r R a n do m m o d es . A f t e r y o u ’ v e c r ea t ed t h e f i l e , y o u r ef er t o i t u si n g t h e
f i l e n u m be r . T h e f o l l o w i n g e x a m p l e l e t u s e r s w r i t e t h e t ex t i n a t e x t bo x , T ex t 1 t o a f i l e o n d i s k ,
f i l e . t x t , w h e n t h e y pr e s s a bu t t o n .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
On Error GoTo FileError
Open “C:\file.txt” For Output as #1
Print #1, Text1.Text
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
Getting a File’s Length
T h e r e a r e t w o w a y s t o d e t e r m i n e t h e l e n g t h o f a f i l e, t h e F i l e L e n a n d L O F f u n c t i o n s.
The FileLen function
T h e F i l e L e n f u n c t i o n r e t u r n s t h e l e n gt h o f a f i l e i n b y t e s o n d i sk . F o r ex a m p l e
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
M s gB o x “ T h e f i l e . t x t f i l e i s ” & S t r ( F i l e L en ( “ C ; \ F i l e. t x t ” ) ) & “ b y t e s l o n g ”
End Sub
The LOF function
T h e L O F f u n c t i o n r e t u r n s t h e l e n gt h o f a f i l e i n by t e s o p en e d w i t h t h e O p en s t a t em en t . Y o u pa s s
t h e L O F f u n c t i o n a n o p e n f i l e n u m b e r . F o r ex a m pl e
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
On Error GoTo FileError
O p e n “ c : \ f i l e . t x t ” F o r O u t pu t A s # 1
Print #1, Text1.Text
M s gB o x “ T h e f i l e i s “ & S t r ( L O F ( 1 ) ) & “ by t e s l o n g”
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
NetScape COMPUTER ACADEMY
140
Opening A File
U s e t h e O p e n s t a t e m e n t t o o p e n a f i l e . I f t h e f i l e i s a l r e a dy o p en e d b y a n o t h e r p r o c es s a n d t h e
s pe c i f i e d t y p e o f a c c e s s i s n o t a l l o w e d, t h e O p en st a t em en t f a i l s a n d a n er r o r o c c u r s. A l so n o t e
t h a t t h e L e n c l a u s e i s i g n o r e d i f m o de i s B i n a r y . I f t h e f i l e s p ec i f i ed b y p a t h n a m e do e sn ’ t ex i st , i t
i s c r e a t e d w h e n a f i l e i s o p e n e d f o r A p pen d, B i n a r y , O u t pu t , o r R a n do m m o d e s. I f y o u o p en a n
e x i s t i n g f i l e f o r o u t pu t , i t i s o v e r w r i t t en ; i f y o u o p en i t f o r A p pen d, n ew da t a i s a d d ed t o t h e e n d
o f t h e f i l e . A f t e r y o u ’ v e c r e a t e d t h e f i l e, y o u r e f er t o i t u si n g t h e f i l e n u m b er .
O pe n pa t h n a m e F or m ode [Ac c e s s a c c e s s ] [ L oc k ] As [ #] f i l e n u m b e r [L e n =r e c l e n gt h ]
T h e f o l l o w i n g e x a m p l e o p e n s a f i l e n a m ed f i l e. t x t a n d w r i t e t h e c o n t en t s o f a t ex t bo x , T ex t 1 , t o
that file
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
On Error GoTo FileError
Open “C:\file.txt” For Output as #1
Print #1, Text1.Text
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
Writing to a Sequential File
S e qu e n t i a l f i l e s a r e o f t e n t e x t s t r i n g s i n V i su a l B a si c , bu t t h e y c a n a l so b e c o m bi n a t i o n s o f t ex t a n d
n u m b e r s . Y o u u s u a l l y u s e t h e s e s t a n d a r d st a t em en t s t o w r i t e t o s e qu en t i a l f i l e s i n V i su a l B a s i c
Pr i n t # n u m be r , e x pr e s s i on l i s t
Wr i te # n u m be r , e xpr e s s i on l i s t
H e r e n u m b e r i s a n o pe n f i l e n u m b e r a n d e x pr e ss i o n l i st i s a l i s t o f v a r i a b l e s t o w r i t e, s e p a r a t e d b y
commas.
The Print # statement
I f y o u w a n t t o s t o r e y o u r d a t a i n t e x t f o r m a t , u s e P r i n t # . A s a n ex a m pl e , w e’ l l s t o r e t h e t e x t i n a
t e x t bo x t o a f i l e n a m e s f i l e . t x t u s i n g P r i n t # .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
On Error GoTo FileError
O p e n “ C : \ f i l e . t x t ” F o r o u t pu t a s # 1
Print #1, Text1.Text
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
The Write # Statement
Y p u c a n a l s o u s e t h e W r i t e # s t a t e m e n t t o w r i t e t e x t a n d o t h er t y pe s o f da t a t o a f i l e. Y o u u se t h i s
s t a t e m e n t w i t h a f i l e n u m b e r a n d a c o m m a - d el i m i t e d l i st o f t h e v a r i a bl e s y o u w a n t t o w r i t e t o t h a t
f i l e . F o r E x a m p l e , h e r e w e o p e n a f i l e , d a t a . da t , a n d w r i t e t w o n u m be r s t h a t t h e u s er h a s en t e r e d
i n t h e t e x t bo x e s T e x t 1 a n d T e x t 2 t o t h a t f i l e.
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
O p e n “ C : \ d a t a . d a t ” F o r O u t pu t a s # 1
W r i t e # 1 , V a l ( T e x t 1 . T e x t ) , V a l ( t ex t 2 . T ex t )
Close #1
End Sub
Writing to a Random Access File
Y o u u s u a l l y w r i t e r e c o r d s t o r a n do m a c c e s s f i l e s u si n g P u t st a t em en t :
Pu t [ #]f i l e n u m be r , [r e c n u m be r ] , va r n a m e
H e r e , f i l e n u m b e r i s t h e n u m b e r o f a f i l e t o w r i t e t o , r ec n u m be r i s t h e n u m be r o f t h e r ec o r d t o
w r i t e , a n d v a r n a m e i s t h e n a m e o f t h e v a r i a b l e t h a t h o l ds t h e d a t a t o sr i t e t o t h e f i l e.
T o w o r k w i t h r e c o r d s i n a r a n do m a c c e s s f i l e, y o u d ef i n e a r ec o r d t y p e f i r s t . F o r E x a m pl e, h e r e w e
d e f i n e a n e w t y p e n a m e d R e c o r d i n a m o du l e, y o u c a n o n l y de f i n e t y pe s i n m o d u l e s.
NetScape COMPUTER ACADEMY
141
T y pe R e c o r d
Name As String * 50
N u m be r A s S t r i n g * 5 0
End Type
N o t e t h a t w e u s e f i x e d - l e n gt h s t r i n g s h er e t o m a k e a l l o u r r ec o r d s t h e s a m e si z e.
N o w , i n a pr o gr a m , w e c a n s e t u p a n a r r a y o f s u c h r ec o r d s i n t h e G e n e r a l p a r t o f a f o r m , a s w el l a s
a n i n t e g e r t o k e e p t r a c k o f t h e t o t a l n u m b er o f r ec o r d s.
Dim SriteData(1 to 50) As Record
D i m T o t a l R e c o r d s A s I n t e ge r
I n t h i s e x a m p l e , w e ’ l l j u s t h a v e o n e r ec o r d, w h i c h w e f i l l f r o m t h e t e x t bo x e s T ex t 1 a n d T ex t 2
w h e n t h e u s e r c l i c k s a b u t t o n . N e x t , w e c r e a t e a f i l e t o st o r e o u r r ec o r d s i n . f i n a l l y w e u s e t h e P u t
statement to srite the data to the file.
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
W r i t eD a t a ( 1 ) . N a m e = T e x t 1 . T e x t
W r i t eD a t a ( 1 ) . N u m b e r = T e x t 2 . T ex t
T o t a l R e c o r ds = 1
On Error GoTo FileError
O p e n “ C : \ r e c o r d s . da t ” F o r r a n do m a s # 1 L en = L en ( W r i t eD a t a ( 1 ) )
F o r L o o p_ i n d e x = 1 t o T o t a l R e c o r d s
P u t # 1 , W r i t e D a t a ( L o o p _ i n d ex )
Next
Close #1
Exit Sub
FileError:
M s gB o x ” F i l e E r r o r ”
End Sub
Writing to a Binary File
Y o u u s u a l l y w r i t e r e c o r d s t o bi n a r y f i l e s u s i n g P u t s t a t em en t
Pu t [ #]f i l e n u m be r , [r e c n u m be r ] , va r n a m e
H e r e i s a n e x a m p l e s h o w i n g h o w t o u s e P u t t o sr i t e a f l o a t i n g po i n t n u m b er t h e u s e r h a s en t er e d i n
a t e x t bo x , T e x t 1 , t o a f i l e - n o t e t h a t w e o p en t h a t f i l e i n b i n a r y m o d e a n d do n ’ t u s e a r ec o r d
number with Put here.
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Dim VarOutPut As Double
VarOutPut=Val(Text1.Text)
On Error GoTo FileError
O p e n “ C : \ b i n a r y . da t ” F o r B i n a r y A s # 1
P u t # 1 , , v a r o u t pu t
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
Reading From Sequential Files
T o r e a d f r o m a s e qu e n t i a l f i l e , y o u c a n u s e t h e s e s t a t em en t s.
In p u t # n u m be r , e x pr e s s i on l i s t
L i n e I n p u t # n u m b e r , s tr i n g
In p u t$ (n u m be r by te s , [# ] n u m be r )
H e r e n u m b e r i s a f i l e n u m b e r , e x pr e s s i o n l i s t i s a l i s t o f v a r i a bl e s t h e d a t a w i l l b e s t o r e d i n , s t r i n g i s
a s t i n g v a r i a bl e t o s t o r e da t a i n , a n d n u m b er by t e s i s t h e n u m b er o f b y t e s y o u w a n t t o r e a d.
The Input # statement
Y o u c a n u s e t h e I n pu t # s t a t e m e n t t o r e a d t e x t a n d n u m be r s f r o m a se q u en t i a l f i l e. F o r e x a m pl e , i f
w e w r i t e t w o i n t e ge r s t h e u s e r h a s e n t e r ed i n T ex t 1 a n d T e x t 2 t o a f i l e, d a t a . d a t , t h i s w a y u s i n g
W r i t e # w h e n t h e u s e r c l i c k s C o m m a n d1 .
NetScape COMPUTER ACADEMY
142
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
O p e n “ C : \ d a t a . d a t ” F o r O u t pu t A s # 1
W r i t e # 1 , V a l ( T e x t 1 . T e x t ) , V a l ( T ex t 2 . T e x t )
Close #1
End Sub
T h e n w e c a n r e a d t h o s e i n t e ge r s b a c k u s i n g I n pu t # t h i s w a y w h en t h e u s er c l i c k s C o m m a n d2 .
P r i v a t e S u b C o m m a n d2 _ C l i c k ( )
Dim int1, int2 as Integer
O p e n “ C : \ d a t a . d a t ” F o r I n pu t A s # 1
I n pu t # 1 , i n t 1 , i n t 2
Text3.Text=Str(int1)
Text4.Text=Str(int2)
Close #1
End Sub
The Line Input Statement
U s i n g t h e L i n e I n pu t s t a t e m e n t , y o u c a n r ea d l i n e s ( t ex t st r i n g s t h a t en d w i t h a c a r r i a g e r et u r n o r
c a r r i a g e r e t u r n / l i n e f e e d pa i r ) f r o m a f i l e. F o r e x a m pl e, sa y w e h a d t h i s s et o f l i n e s, e a c h
s e p a r a t e d by a c a r r i a g e r e t u r n / l i n e f e e d p a i r i n a f i l e n a m e d f i l e. t x t :
Here is some
Multi-line text
That we
Will read in…
W h e n t h e u s e r c l i c k s a bu t t o n , w e c a n r ea d i n t h e p r ec e d i n g t e x t l i n e b y l i n e w i t h L i n e I n p u t . N ex t
w e u s e t h e E O F f u n c t i o n , w h i c h r e t u r n s T r u e w h en w e r ea c h t h e en d o f t h e f i l e.
N e x t , w e u s e L i n e I n pu t s t a t e m e n t t o r e a d l i n e o f t ex t f r o m t h e f i l e a n d a p p en d t h em t o a m u l t i l i n e t e x t bo x , T e x t 1 , a l o n g w i t h a c a r r i a g e r e t u r n l i n e f ee d p a i r t h i s w a y .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Dim NewLine As String
On Error GoTo FileError
O p e n “ C : \ f i l e . t x t ” F o r I n pu t A s # 1
Do untill EOF(1)
L i n e I n pu t # 1 , N e w L i n e
T e x t 1 . T e x t = T e x t 1 . T e x t + N ew L i n e + v b C r L f
Loop
Exit Sub
File Error:
M s gB o x “ F i l e E r r o r ”
End Sub
The Input$ Statement
T h e I n pu t $ s t a t e m e n t l e t s y o u r e a d i n a st r i n g o f a s pec i f i e d l en gt h . I t m i gh t se em o d d t o h a v e t o
k n o w t h e s t r i n g’ s l e n g t h s b e f o r e r e a di n g t h e m i n , bu t I n pu t $ do e s h a v e o n e v er y u s ef u l a s p ec t : i f
y o u u s e i t t o g e t h e r w i t h t h e L O F f u n c t i o n , y o u c a n r e a d i n a w h o l e t ex t f i l e a t o n c e.
F o r E x a m pl e , h e r e ’ s h o w w e r e a d i n t h e f i l e f r o m t h e p r e v i o u s e x a m pl e, f i l e. t x t , a l l a t o n c e, w i t h o u t
having to work line by line.
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Dim NewLine As String
On Error GoTo FileError
O p e n “ C : \ f i l e . t x t ” F o r I n pu t A s # 1
T e x t 1 . T e x t = I n pu t $ ( L O F ( 1 ) , # 1 )
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
Reading From Random Access Files
Y o u u s e G e t t o r e a d r e c o r d s f r o m a r a n do m a c c e ss f i l e.
G e t [ #]f i l e n u m be r , [r e c n u m be r ] , va r n a m e
H e r e , f i l e n u m b e r i s t h e n u m b e r o f a f i l e t o r e a d f r o m , r ec n u m b er i s t h e n u m b er o f t h e r ec o r d t o
NetScape COMPUTER ACADEMY
143
r e a d, a n d v a r n a m e i s t h e n a m e o f t h e v a r i a b l e t h a t sh o u l d r ec e i v e t h e r e a d - i n d a t a .
L e t ’ s s e e a n e x a m pl e , w e s e t u p a n e w t y p e n a m e d R ec o r d i n a m o du l e:
T y pe R e c o r d
Name As String * 50
N u m be r A s S t r i n g * 5 0
End Type
T h e n w e s e t u p t w o f o r m w i de a r r a y s o f r ec o r d s , W r i t eD a t a a n d R e a d D a t a , a n d a n I n t e g er n a m e d
T o t a l R e c o r ds t o k e e p t r a c k o f h o w m a n y r ec o r d s a r e t o t a l .
Dim WriteDetail ( 1 to 50) As Record
D i m R e a dD e t a i l ( 1 t o 5 0 ) A s R e c o r d
D i m T o t a l R e c o r d s A s I n t e ge r
W h e n t h e u s e r c l i c k e d a c o m m a n d bu t t o n , w e r e a d t h e t e x t f r o m t w o t e x t bo x e s, T ex t 1 a n d T ex t 2 ,
pl a c e d t h a t t e x t i n t h e f i r s t r e c o r d o f t h e W r i t eD a t a a r r a y , a n d w r o t e t h a t r ec o r d o u t t o a f i l e
n a m e d r e c o r d s . da t w i t h t h e P u t s t a t e m en t .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
W r i t eD a t a ( 1 ) . N a m e = T e x t 1 . T e x t
W r i t eD a t a ( 1 ) . N u m b e r = T e x t 2 . T ex t
T o t a l R e c o r ds = 1
On Error GoTo FileError
O p e n “ C : \ r e c o r d s . da t ” F o r R a n do m A s # 1 L en = L e n ( W r i t eD a t a ( 1 ) )
F o r i n t L o o p I n de x = 1 t o T o t a l R ec o r ds
P u t # 1 , , W r i t e D a t a ( I n t L o o pi n d e x )
Next
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
N o w , w e ’ l l s e e h o w t o r e a d t h a t r e c o r d b a c k i n , f i r s t , w e o p e n t h e f i l e r ec o r d s. d a t f o r r a n d o m
a c c e s s , s e t t i n g t h e r e c o r d s s i z e t o t h e l en gt h o f e a c h a r r a y el em en t . T h e n w e u s e G et st a t em en t t o
r e a d i n t h e r e c o r d s . N e x t , w e l o o p o v e r a l l t h e r ec o r d s i n t h e f i l e. T h en w e c l o s e t h e f i l e a n d
di s pl a y t h e N a m e a n d N u m b e r f i e l d s o n t h e f i r st r ec o r d i n t w o t ex t bo x e s T ex t 3 a n d T ex t 4
P r i v a t e S u b C o m m a n d2 _ C l i c k ( )
On Error GoTo FileError
D i m i n t L o o p i n d e x A s I n t e ge r
O p e n “ C : \ r e c o r d s . da t ” F o r R a n do m A s # 1 L en = L en ( R ea dD a t a ( 1 ) )
F o r I n t L o o p i n de x = 1 t o L O F ( 1 ) / L en ( R e a dD a t a ( 1 ) )
G e t # 1 , , R e a d D a t a ( I n t L o o pI n d ex )
Next
Close #1
T e x t 3 . T e x t = R e a dD a t a ( 1 ) . N a m e
T e x t 4 . T e x t = R e a dD a t a ( 1 ) . N u m b er
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
Reading From Binary Files
You usually use Get to read data from a binary file
G e t [ #] f i l e n u m be r , [r e c n u m be r ] , va r n a m e
L e t ’ s s e e a n e x a m pl e . I n t h i s c a s e , w e f i r st w r i t e so m e b i n a r y da t a - su c h a s a f l o a t i n g n u m b er - t o a
f i l e , a n d t h e n w e ’ l l r e a d i t b a c k i n . h e r e, w e l e t t h e u s er e n t er a D o u b l e v a l u e i n a t ex t bo x , w h i ch
w e r e a d i n w h e n t h e u s e r c l i c k s a c o m m a n d bu t t o n , C o m m a n d1 . T h en w e w r i t e t h a t n u m b e r o u t t o
a b i n a r y f i l e , bi n a r y . d a t .
NetScape COMPUTER ACADEMY
144
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m v a r o u t pu t A s D o u b l e
V a r o u t pu t = V a l ( T e x t 1 . T e x t )
On Error GoTo FileError
O p e n “ C : \ b i n a r y . da t ” F o r B i n a r y A s # 1
P u t # 1 , , v a r o u t pu t
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
n e x t w e r e a d t h a t n u m b e r b a c k i n a s b i n a r y d a t a w h en t h e u se r c l i c k s a n ew b u t t o n C o m m a n d2 .
T h e n w e u s e G e t t o r e a d i n t h e n u m b e r a n d st o r e i t i n a n ew v a r i a b l e, v a r i n pu t . F i n a l l y w e d i s p l a y
t h e n e w l y r e a d - i n v a r i a b l e i n a t e x t bo x , T ex t 2 , a n d c l o s e t h e f i l e:
P r i v a t e S u b C o m m a n d2 _ C l i c k ( )
D i m v a r i n pu t A s D o u b l e
On Error GoTo FileError
O p e n “ C : \ b i n a r y . da t ” F o r B i n a r y A s # 1
Get #1, , varinput
T e x t 2 . T e x t = S t r ( v a r i n pu t )
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
Accessing any Record in a Random Access File
W h e n y o u ’ v e s e t u p a f i l e t o h o l d r e c o r d s b y c r e a t i n g i t i n R a n d o m m o d e w i t h t h e O p en st a t em en t
a n d pa s s i n g t h e l e n gt h o f t h e r e c o r ds y o u w a n t t o o p en , y o u c a n u s e G e t t o a c c e s s a n y r ec o r d i n
t h e f i l e by r e c o r d n u m b e r
G e t #1 , r e c or d n u m be r , va r i a bl e n a m e
I n t h i s c a s e , w e ’ r e r e a di n g r e c o r d n u m b er r ec o r dn u m b er f r o m f i l e 1 a n d pl a c i n g t h e d a t a r ea d i n t o
a v a r i a b l e n a m e d v a r i a bl e n a m e . I n t h e s a m e w a y , y o u c a n w r i t e a n y r ec o r d w i t h P u t :
Pu t #1 , r e c or d n u m be r , va r i a bl e n a m e
U s i n g G e t a n d P u t i n t h i s w a y , y o u c a n r e a d a n d w r i t e a n y r ec o r d i n t h e f i l e.
Closing A File
Y o u u s e t h e C l o s e S t a t e m e n t t o c l o s e t h e f i l e. C l o si n g f i l e w r i t e s a l l da t a o u t t o d i sk . T o c l o s e a l l
f i l e s y o u r a p pl i c a t i o n h a s o p e n , j u s t u s e t h e C l o s e s t a t em en t w i t h o u t a n y a r gu m en t s.
E g:
Close #1
Saving Files from Rich Text Boxes
Y o u c a n u s e t h e S a v e F i l e ( ) m e t h o d t o sa v e t h e t ex t i n a r i c h t e x t bo x t o di s k , a n d do i n g t h a t i s
really easy-you just use SaveFile( ) this way:
Ri c h T e xt B ox .S a ve F i l e ( pa t h n a m e , [f i l e ty pe ])
Y o u c a n s a v e t e x t a s pl a i n o r R T F t e x t ; t h e se t t i n g s f o r f i l et y p e a r e
r t f R T F - 0 ( t h e d e f a u l t ) ; t h e r i c h t e x t bo x c o n t r o l s a v e s i t s c o n t e n t s a s a n R T F f i l e.
R t f T e x t - 1 ; t h e r i c h t e x t bo x c o n t r o l s a v e s i t s c o n t e n t s a s a t ex t f i l e.
H e r e ’ s a n e x a m p l e w h e r e w e di s p l a y s o m e t ex t i n a r i c h t e x t bo x :
Private Sub Form_Load( )
RichTextBox1.Text=”This is the text in the file”
End Sub
Next, we save that text to a file this way:
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
RichTextBox1.SaveFile (“C: \data.txt”)
End Sub
NetScape COMPUTER ACADEMY
145
Opening Files in Rich Text Boxes
Y o u c a n w r i t e f i l e s t o d i s k f r o m a r i c h t ex t b o x w i t h S a v eF i l e( ) . Y o u u s e L o a dF i l e( ) t o r e a d f i l e s
ba c k i n . y o u c a n l o a d p l a i n t e x t o r r t f t e x t f i l e s.
Ri c h T e xt B ox .L oa dF i l e pa t h n a m e , [f i l e ty pe ]
F o r e x a m pl e w e u s e t h e f o l l o w i n g c o d e t o l o a d t h e f i l e w e w r o t e i n pr e v i o u s sec t i o n
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
R i c h T e x t bo x 1 . L o a d F i l e “ C : \ d a t a . t x t ”
End Sub
Saving Files from Picture Boxes
Y o u c a n u s e S a v e P i c t u r e t o s a v e t h e i m a g e s i n pi c t u r e bo x es t o d i sk f i l e s.
S a ve Pi c tu r e pi c tu r e , s tr i n ge xpr e s s i o n
H e r e ’ s w h a t t h e a r gu m e n t s i n t h a t s t a t e m e n t m e a n :
P i c t u r e - P i c t u r e o r i m a ge c o n t r o l f r o m w h i c h t h e gr a ph i c s f i l e i s t o be c r e a t e d
S t r i n g e x p r e s s i o n - F i l e n a m e o f t h e gr a ph i c s f i l e t o sa v e
N o t e t h a t S a v e P i c t u r e o n l y s a v e s i m a ge s i n B M P , W M F , a n d I C O f o r m a t s . I f t h e i m a g e c a m e f r o m a
G I F o r J P E G f i l e , i t ’ s s a v e d i n B M P f o r m a t . G r a p h i c s i n a n I m a g e pr o p er t y a r e a l w a y s sa v e d a s
bi t m a p ( B M P ) f i l e s n o m a t t e r w h a t t h e i r o r i g i n a l f o r m a t .
H e r e ’ s a n e x a m pl e w h e r e w e s a v e t h e i m a g e f r o m P i c t u r e1 t o a f i l e, i m a g e. b m p, w h e n t h e u s er
clicks a button:
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
S a v e P i c t u r e P i c t u r e 1 . P i c t u r e , “ C : \ i m a ge. b m p ”
End Sub
Opening Files in Picture boxes
Y o u u s e t h e P i c t u r e pr o p e r t y t o o pe n i m a g e s i n pi c t u r e bo x . A pi c t u r e bo x i s v e r v er s a t i l e a n d c a n
di s pl a y i m a g e s f r o m bi t m a p ( . bm p) , i c o n ( . i c o ) , m e t a f i l e ( . w m f ) , J P E G ( . j p g) , o r G I F ( . g i f ) f i l e s - j u s t
l o a d t h e f i l e ’ s n a m e i n t o t h e P i c t u r e pr o p er t y . Y o u c a n u s e t h e L o a dP i c t u r e( ) t o l o a d i n a p i c t u r e
like this
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
P i c t u r e 1 . P i c t u r e = L o a d P i c t u r e ( “ C : \ v b v b v b \ pi c t u r e s \ a bc . b m p ” )
End Sub
U s i n g t h e D r i v e L i s t B o x , D i r L i s t B o x , a n d F i l e L i s t Bo x C o n t r o l s
Y o u c a n u s e t h e V i s u a l B a s i c f i l e c o n t r o l s: dr i v e l i st b o x , t h e di r ec t o r y l i st b o x , a n d t h e f i l e l i st
bo x . T h e s e c o n t r o l s a r e i n t r i n s i c t o V i su a l B a si c .
Sub Drive1_Change( )
Dir1.Path=Drive1.Drive
End Sub
S u b D i r 1 _ C h a n ge ( )
File1.Path=Dir1.Path
End Sub
Sub File1_Click( )
P i c t u r e 1 . P i c t u r e = L o a d P i c t u r e ( F i l e 1 . P a t h & “ \ ” & F i l e1 . F i l en a m e)
End Sub
Y o u c a n s e t t h e p a t t e r n pr o p e r t y o f a F i l e L i st bo x t o d et e r m i n e t h e t y p e o f f i l e t o d i s p l a y i n t h e
file list.
Y o u c a n u s e o t h e r c o n t r o l s l i k e T e x t bo x t o d i s p l a y t h e c o n t en t s o f t e x t f i l e
F o r E x a m p l e t h e f o l l o w i n g e x a m pl e di s pl a y s t h e c o n t e n t s o f s e l ec t e d t ex t f i l e i n a T ex t bo x c o n t r o l .
NetScape COMPUTER ACADEMY
146
S u b C o m m a n d1 _ C l i c k ( )
Dim Filename As String
On Error GoTo FileError
If (Right$(Dir1.Path,1) = “ \”) Then
F i l e n a m e = F i l e 1 . p a t h & F i l e1 . F i l en a m e
Else
F i l e n a m e = F i l e 1 . P a t h & “ \ ” & F i l e1 . F i l eN a m e
End If
O p e n F i l e N a m e F o r I n pu t A s # 1
T e x t 1 . T e x t - I pu t $ ( L O F ( 1 ) , # 1 )
Close #1
Exit Sub
FileError:
M s gB o x “ F i l e E r r o r ”
End Sub
Creating and Deleting Directories
Y o u c a n c r e a t e a n e w d i r e c t o r y w i t h t h e M k D i r st a t em en t a n d r em o v e a di r ec t o r y w i t h t h e R m D i r
s t a t e m e n t . T h e f o l l o w i n g e x a m pl e c r e a t e s a di r ec t o r y w h en t h e u s e r C l i c k a C o m m a n d B u t t o n
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
MkDir “C:\data”
End Sub
T o r e m o v e t h e di r e c t o r y u s e R m D i r s t a t em en t
P r i v a t e S u b C o m m a n d2 _ C l i c k ( )
RmDir “C:\Data”
End Sub
Changing Directories
T o c h a n g e t h e de f a u l t di r e c t o r y , u s e C h D i r . H er e’ s a n ex a m pl e w h e r e w e c h a n g e t h e d ef a u l t
di r e c t o r y t o C : \ W i n do w s u s i n g C h d i r w h en t h e u s er c l i c k s a c o m m a n d bu t t o n C o m m a n d1 .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
C h D i r “ C : \ W i n do w s ”
End Sub
Copying a File
Y o u c a n c o p y f i l e s u s i n g t h e V i s u a l B a si c F i l e S y s t e m O bj ec t . T h i s o bj ec t p r o v i d e s y o u w i t h a c c e s s t o
t h e c o m pu t e r ’ s f i l e s y s t e m a n d h a s m e t h o ds l i k e C o p y F i l e t o c o p y a f i l e:
F i l e S ys te m O b je c t .C op yF i l e s ou r c e , de s ti n a ti on [ , o ve r w r i te ]
H e r e , s o u r c e i s t h e s o u r c e f i l e n a m e i n c l u d i n g pa t h , de s t i n a t i o n i s t h e de s t i n a t i o n f i l e n a m e a l so
i n c l u di n g p a t h , a n d o v e r w r i t e i s a bo o l e a n t h a t , i f T r u e, m e a n s y o u w a n t t o o v e r w r i t e t h e
d e s t i n a t i o n f i l e i f i t a l r e a d y e x i s t s . Y o u c a n u se w i l dc a r ds t h e a st er i sk [ * ] .
C o p y F i l e s o l v e s a t e d i o u s pr o bl e m f o r t h e pr o gr a m m e r - i f a l l y o u w a n t t o d o i s c o p y a f i l e, w h y
s h o u l d y o u h a v e t o w r i t e a l l t h e c o d e s p ec i f i c a l l y t o do t h a t ? Y o u do n ’ t ; u s i n g C o p y F i l e. H e r e’ s a n
e x a m p l e w h e r e w e c o py a f i l e , f i l e. t x t , t o f i l e2 . t x t . N o t i c e t h a t w e m u st f i r s t c r e a t e a
F i l e S y s t e m O bj e c t .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t A s O bj e c t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
F i l e S y s t e m . O bj e c t . C o py F i l e “ C : \ f i l e. t x t ” , “ C : \ f i l e 2 . t x t ”
End Sub
Y o u c a n a l s o do t h e s a m e t h i n g w i t h t h e V i su a l B a si c F i l eO b j ec t , w h er e w e u se G e t F i l e t o g et a
F i l e O b j e c t o bj e c t a n d t h e n u s e t h e F i l eO bj ec t ’ s C o p y m et h o d:
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , F i l e O bj e c t A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y st em O bj ec t ” )
S e t F i l e O bj e c t = F i l e S y s t e m O bj e c t . G e t F i l e ( “ C : \ f i l e . t x t ” )
FileObject.Copy “C: \file2.txt”
End Sub
NetScape COMPUTER ACADEMY
147
Moving a File
T h e V i s u a l B a s i c F i l e S y s t e m O bj e c t l e t s y o u m o v e a f i l e f r o m o n e di r e c t o r y t o a n o t h er u s i n g i t s
M o v e F i l e m e t h o d. T h i s m e t h o d t a k e s o n l y t w o a r gu m en t s, t h e so u r c e a n d d es t i n a t i o n p a t h s. H e r e’ s
a n e x a m p l e w h e r e w e m o v e a f i l e , f i l e . t x t , f r o m C : t o t h e D : d r i v e; n o t e t h a t w e m u st f i r s t c r e a t e a
F i l e S y s t e m O bj e c t .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t A s O bj e c t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
F i l e S y s t e m O bj e c t . M o v e F i l e “ C : \ F i l e. t x t ” , “ D : \ f i l e. t x t ”
End Sub
Y o u c a n a l s o do t h e s a m e t h i n g w i t h t h e V i su a l B a si c F i l eO b j ec t , w h er e w e u se G e t F i l e t o g et a
F i l e O b j e c t a n d t h e n u s e t h e F i l e O bj e c t ’ s M o v e m et h o d:
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , F i l e O bj e c t A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y st em O bj ec t ” )
S e t F i l e O bj e c t = F i l e S y s t e m O b j ec t . G e t F i l e( “ C : \ f i l e. t x t ” )
FileObject.Move “D:\file.txt”
End Sub
Deleting a File
T h e V i s u a l B a s i c F i l e S y s t e m O bj e c t l e t s y o u d el et e a f i l e u si n g i t s D e l et eF i l e m et h o d:
F i l e S ys te m O b je c t .D e l e te F i l e f i l e s pe c [ ,f or c e ]
H e r e , t h e f i l e s p e c i s t h e f i l e y o u w a n t t o de l et e, a n d f o r c e i s a B o o l e a n t h a t , i f T r u e, m ea n s y o u
w a n t t o d e l e t e r e a d - o n l y f i l e s a s w e l l . L et ’ s s e e a n e x a m p l e. H er e w e d el et e t h e f i l e f i l e . t x t , f r o m
t h e C : dr i v e ; n o t e t h a t w e m u s t f i r s t c r e a t e a F i l eS y st em O bj ec t :
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t A s O bj e c t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
F i l e S y s t e m O bj e c t . D e l e t e F i l e “ C : \ F i l e. t x t ”
End Sub
Y o u c a n a l s o do t h e s a m e t h i n g w i t h t h e V i su a l B a si c F i l eO b j ec t , w h er e w e u se G e t F i l e t o g et a
F i l e O b j e c t a n d t h e n u s e t h e F i l e O bj e c t ’ s D el e t e n m e t h o d:
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , F i l e O bj e c t A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
S e t F i l e O bj e c t = F i l e S y s t e m O bj e c t . G e t F i l e( “ C : \ f i l e. t x t ” )
FileObject.Delete
End Sub
To get the Date a File Created, Modified or Last Accessed
Y o u c a n u s e V i s u a l B a s i c F i l e O bj e c t t o d et er m i n e w h e n a f i l e w a s c r e a t e d, l a s t m o d i f i e d, a n d l a st
a c c e s s e d. T h e pr o p e r t i e s t h a t a r e i m po r t a n t h er e a r e D a t eC r ea t e d, D a t e L a s t M o di f i e d, a n d
D a t e L a s t A c c e s s e d.
H e r e ’ s a n e x a m p l e h o w t o ge t t h e s e d a t e s.
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , F i l e O bj e c t A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
S e t F i l e O bj e c t = F i l e S y s t e m O bj e c t . G e t F i l e( “ C : \ f i l e. da t ” )
Text1.Text=”C:\file.dat” &vbCrLf & “was created “ & _
F i l e O b j e c t . D a t e C r e a t e d & v b C r L f & “ w a s l a st m o di f i e d “ & _
F i l e O b j e c t . D a t e L a s t M o di f i e d & v bC r L f & “ w a s l a st a c c e s s ed “ & _
F i l e O b j e c t . D a t e L a s t A c c e s se d & v b C r L f
End Sub
Creating TextStream
Y o u c a n u s e T e x t S t r e a m o bj e c t s t o w o r k w i t h t e x t f i l e s i n V i su a l B a si c . F o r ex a m p l e, y o u c r ea t e a
t e x t s t r e a m w i t h t h e C r e a t e T e x t F i l e m et h o d:
F i l e S ys te m O b je c t .Cr e a te T e x tF i l e (f i l e n a m e [, o ve r w r i te [ , u n i c o de ] ] )
H e r e ’ s w h a t t h e a r gu m e n t s w e pa s s t o C r e a t e T e x t F i l e m e a n :


filename-String which identifies the file to create
o v e r sr i t e - B o o l e a n v a l u e t h a t i n d i c a t es i f a n ex i s t i n g f i l e c a n b e o v e r w r i t t e n . T h e v a l u e i s
T r u e i f t h e f i l e c a n be o v e r s r i t t en ; F a l s e i f i t c a n ’ t b e o v e r w r i t t en . I f o m i t t e d, e x i s t i n g f i l e s
are not overwritten.
NetScape COMPUTER ACADEMY

148
U n i c o d e - B o o l e a n v a l u e t h a t i n d i c a t es w h et h e r t h e f i l e i s c r e a t e d a s a U n i c o d e o r a n A S C I I
f i l e . T h e v a l u e i s T r u e i s c r e a t e d a s a U n i c o d e f i l e; F a l s e i f i t ’ s c r e a t e d a s a n A S C I I f i l e. I f
o m i t t e d, a n A S C I I f i l e i s a s s u m e d.
H e r e ’ s a n e x a m p l e w h e r e w e c r e a t e a T e x t S t r e a m o bj ec t c o r r e s po n di n g t o a f i l e n a m e d f i l e. t x t
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , T e x t S t r e a m A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
S e t T e x t S t r e a m = F i l e S y s t e m O b j ec t . C r ea t eT e x t F i l e ( “ C : \ f i l e. t x t ” , T r u e)
End Sub
Opening a TextStream
T o o p e n a T e x t S t r e a m , y o u u s e t h e F i l eS y st em O b j ec t ’ s O pe n T ex t F i l e m et h o d:
F i l e S ys te m O b je c t .O pe n T e x tF i l e (f i l e n a m e [ , i om o de [ , c r e a te [, f or m a t] ]])
H e r e a r e w h a t t h e a r g u m e n t s t o O p e n T ex t F i l e m e a n :




filename-The file to open
i o m o d e - I n d i c a t e s i n pu t / o u t p u t m o d e. C a n b e o n e o f t w o c o n st a n t s, e i t h e r F o r R e a di n g o r
F o r A p p e n di n g
c r e a t e - B o o l e a n v a l u e t h a t i n di c a t e s w h et h er a n ew f i l e c a n be c r e a t e d i f t h e s pec i f i e d f i l e
do e s n ’ t e x i s t . T h e v a l u e i s T r u e i f a n ew f i l e i s c r e a t e d; F a l s e i f i t i sn ’ t c r e a t e d. T h e D ef a u l t
is False.
F o r m a t - O n e o f t h r e e v a l u e s u s e d t o i n di c a t e t h e f o r m a t o f t h e o pe n e d f i l e. I f o m i t t e d, t h e
f i l e i s o pe n e d a s A S C I I
H e r e ’ s a n e x a m p l e w h e r e w e o p e n a T e x t S t r e a m o bj ec t c o r r es po n d i n g t o a f i l e n a m e d f i l e. t x t
P r i v a t e S u b C o m m a n d2 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , T e x t S t r e a m A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
S e t T e x t S t r e a m = F i l e S y s t e m O b j ec t . O p en T e x t F i l e( “ C : \ f i l e. t x t ” )
End Sub
Writing to a TextStream
T o w r i t e t o a T e x t S t r e a m o bj e c t , y o u u s e o n e o f t h e s e m et h o d s:
Wr i te (s tr i n g )
Wr i te L i n e ( [s tr i n g] )
H e r e ’ s a n e x a m p l e w h e r e w e c r e a t e a f i l e n a m e d f i l e . t x t a n d w r i t e a st r i n g, “ h er e i s so m e t e x t ” t o
t h a t f i l e . F i r s t , w e c r e a t e a n e w T e x t S t r ea m : t h en w e w r i t e o u r l i n e o f t ex t t o t h e f i l e a n d c l o s e
that file:
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , T e x t S t r e a m A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y st em O bj ec t ” )
S e t T e x t S t r e a m = F i l e S y s t e m O bj ec t . C r e a t eT ex t F i l e( “ C : \ f i l e. t x t ” , T r u e)
T e x t S t r e a m . W r i t e L i n e ( “ H e r e i s so m e t ex t ” )
TextStream.Close
End Sub
Reading From a TextStream
T o r e a d f r o m a T e x t S t r e a m O b j e c t , y o u u se o n e o f t h es e m e t h o d s; n o t e t h a t t h e R ea d m e t h o d l et s
y o u s p e c i f y h o w m a n y c h a r a c t e r s t o r e a d:
Re a d (n u m be r c h a r a c te r s )
Re a d Al l
Re a d L i n e
E a c h o f t h e s e m e t h o d s r e t u r n s t h e t e x t r e a d. L e t ’ s s e e a n e x a m pl e. H er e w e’ l l o p en a f i l e, f i l e. t x t ,
a n d o n e l i n e f r o m i t , di s pl a y i n g t h a t l i n e i n a t ex t bo x . F i r s t w e c r e a t e T e x t S t r e a m o b j ec t f o r t h a t
f i l e : n e x t w e u s e t h e R e a d L i n e m e t h o d t o r e a d a l i n e f r o m t h e f i l e a n d d i s p l a y i t i n a t ex t b o x ,
Text1, and close the TextStream:
NetScape COMPUTER ACADEMY
149
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , T e x t S t r e a m A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
S e t T e x t S t r e a m = F i l e S y s t e m O b j e c t . O p en T e x t F i l e( “ C : \ f i l e. t x t ” )
Text1.Text=TextStream.ReadLine
TextStream.Close
End Sub
Cl os i ng a T e x tS t re a m
Y o u u s e C l o s e m e t h o d t o c l o s e a T e x t S t r e a m o bj ec t . I n t h e f o l l o w i n g ex a m p l e, w e w r i t e t o a f i l e,
f i l e . t x t , u s i n g a T e x t S t r e a m o bj e c t a n d t h en c l o s e t h a t T ex t S t r ea m u s i n g C l o s e
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D i m F i l e S y s t e m O b j e c t , T e x t S t r e a m A s O b j ec t
S e t F i l e S y s t e m O bj e c t = C r e a t e O bj ec t ( “ S c r i pt i n g. F i l eS y s t em O b j ec t ” )
S e t T e x t S t r e a m = F i l e S y s t e m O b j ec t . C r ea t eT e x t F i l e ( “ C : \ f i l e. t x t ” , T r u e)
T e x t S t r e a m . W r i t e L i n e ( “ H e r e i s so m e t ex t ” )
TextStream.Close
End Sub
NetScape COMPUTER ACADEMY
150
Chapter 28
Working with Graphics
T h e r e a r e t w o pr i n c i p a l w a y s o f dr a w i n g gr a ph i c s i n V i su a l B a si c : u s i n g gr a ph i c m et h o d s, su c h a s
t h e o n e ’ s w e ’ l l s e e h e r e a n d u s i n g g r a ph i c s c o n t r o l s l i k e l i n e a n d s h a p e c o n t r o l s. G r a ph i c m et h o d s
w o r k w e l l i n s i t u a t i o n s w h e r e u s i n g gr a ph i c a l c o n t r o l s r e qu i r e s t o o m u c h w o r k . F o r ex a m p l e,
c r e a t i n g gr i d l i n e s o n a gr a ph w o u l d r e qu i r e a n a r r a y o f l i n e c o n t r o l s bu t o n l y a s m a l l a m o u n t o f
c o d e u s i n g t h e L i n e m e t h o d. I n a d di t i o n , w h en y o u w a n t a n ef f ec t t o a p pe a r t em po r a r i l y , y o u c a n
w r i t e a c o u pl e o f l i n e s o f c o d e f o r t h i s t em po r a r y ef f ec t i n st e a d o f u s i n g a n o t h er c o n t r o l . A l s o ,
gr a ph i c s m e t h o ds o f f e r s o m e v i s u a l ef f ec t s t h a t a r e n o t a v a i l a b l e i n t h e g r a ph i c a l c o n t r o l s. F o r
e x a m p l e , y o u c a n o n l y c r e a t e a r c s o r p a i n t i n d i v i du a l pi x e l s u s i n g t h e gr a ph i c s m e t h o ds.
Visual Basic Coordinates
V i s u a l B a s i c c o o r di n a t e s y s t e m s h a v e t h e o r i g i n ( 0 , 0 ) a t u pp e r l ef t a n d a r e s pec i f i e d a s ( x , y ) ,
w h e r e x i s h o r i z o n t a l a n d y i s v e r t i c a l . w H en w e dr a w g r a ph i c s i n V i su a l B a si c , w e’ l l b e u s i n g t h i s
c o o r d i n a t e s y s t e m . F o r f o r m s t h e o r i gi n i s t h e u p p er l e f t o f f o r m ’ s c l i en t a r e a - t h e p a r t t h a t
e x c l u de s bo r d e r s , m e n u ba r s , a n d s o o n . T h e d e f a u l t u n i t o f m e a su r em e n t i n V i su a l B a s i c i s t w i p s,
w h i c h i s a p p r o x i m a t e l y 1 / 1 4 4 0 o f a n i n c h . Y o u c a n a l so c h a n g e t o o t h er m e a su r e m e n t u n i t s l i k e
millimeters, inches, and so on.
AutoRedraw and Paint
O n e o f t h e V i s u a l B a s i c ’ s m o s t po pu l a r a s pec t s i s t h a t y o u c a n m a k e a f o r m o r c o n t r o l r e dr a w i t s el f
a s n e e d e d b y s e t t i n g i t s A u t o R e d r a w pr o p er t y t o T r u e . H o w e v er , se t t i n g A u t o R ed r a w t o T r u e c a n
u s e a l o t o f s y s t e m r e s o u r c e s , n o t a bl y m em o r y , a n d y o u m i g h t n o t w a n t t o do s o i n a l l c a se s. I f
n o t , y o u c a n u s e t h e P a i n t e v e n t t o r e d r a w y o u r gr a ph i c s, bec a u s e t h i s e v en t o c c u r s ev e r y t i m e a
f o r m o r c o n t r o l l i k e a pi c t u r e bo x i s d r a w n o r r e dr a w n .
H e r e ’ s a n e x a m p l e . I n t h i s c a s e , w e dr a w a c i r c l e i n sc r i b ed i n t h e sm a l l e r di m en s i o n s o f a f o r m
w h e n t h e f o r m i s dr a w n
Private Sub Form_Paint()
F o r m 1 . C i r c l e ( S c a l e W i d t h / 2 , S c a l eH ei gh t / 2 ) , _
S w i t c h ( S c a l e W i d t h > = S c a l eH ei gh t , S c a l eH e i gh t / 2 , _
S c a l e W i d t h < S c a l e H e i g h t , S c a l eW i dt h / 2 )
End Sub
Clearing the Drawing Area
O n e o f t h e f i r s t t h i n g s t o l e a r n a bo u t dr a w i n g gr a p h i c s i s h o w t o c l e a r t h e d r a w i n g a r ea . Y o u do
that with the Cls method, which redraws the form or control in the current BackColor. Here’s an
e x a m p l e w h e r e w e c l e a r a p i c t u r e bo x , P i c t u r e1 , w h en t h e u s er c l i c k s t h a t pi c t u r e bo x :
Private Sub Picture1_Click()
Picture1.Cls
End Sub
S e t ti n g Co l ors
H e r e a r e s o m e c o m m o n l y u s e d pr o p e r t i e s y o u c a n s pec i f y c o l o r s f o r a n d w h a t t h e y m e a n :




BackColor
ForeColor
BorderColor
FillColor
-
T h e Ba c k g r o u n d c o l o r o f t h e c o n t r o l o r f o r m
The drawing color used to draw figures and text.
The Color of the Border
The Color you want the figure filled with
T o s e t c o l o r p r o p e r t i e s l i k e t h e s e i n V i su a l B a si c , y o u n e e d t o k n o w h o w t o se t c o l o r s i n g en er a l .
There are four ways to do that:




Using the RGB function
U s i n g t h e Q B C o l o r f u n c t i o n t o c h o o s e o n e o f 1 6 M i c r o so f t Q u i c k ba s i c c o l o r s
Using one of the intrinsic Visual Basic color constants
E n t e r i n g a c o l o r v a l u e di r e c t l y
T h e R G B f u n c t i o n t a k e s t h r e e c o l o r v a l u e s, 0 t o 2 5 5 , t o s pec i f y t h e r e d, gr e en , a n d bl u e v a l u e s i n
t h e c o l o r y o u w a n t l i k e t h i s : R G B ( R R R, G G G , B B B) , w h er e R R R , G G G a n d B B B a r e t h e r e d, gr e en ,
a n d b l u e c o l o r v a l u e s , r e s pe c t i v e l y . F o r e x a m p l e
RGB(255, 0, 0)
RGB(0, 255, 0)
RGB(0, 0, 255)
RGB(255, 255, 255)
RGB(0, 0, 0)
Red
Green
Blue
White
Black
NetScape COMPUTER ACADEMY
151
T h e Q B C o l o r f u n c t i o n r e t u r n s o n e o f t h es e c o l o r s w h en y o u p a ss i t t h e m a t c h i n g n u m b er s, 0 t o 1 5 :

Black-0

Blue-1

Green-2

Cyan-3

Red-4

M a ge n t a - 5

Yellow-6

White-7

Gray-8

L i gh t B l u e - 9

L i gh t G r e e n - 1 0

L i gh t C y a n - 1 1

L i gh t R e d - 1 2

L i gh t M a g e n t a - 1 3

L i gh t Y e l l o w - 1 4

L i gh t W h i t e - 1 5
Y o u c a n a l s o u s e o n e o f t h e bu i l t - i n V i su a l B a si c c o l o r c o n st a n t s, l i k e v bR e d, t o s p ec i f y a c o l o r . T h e
s t a n d a r d V i s u a l B a s i c c o l o r c o n s t a n t s a p p ea r i n t h e f o l l o w i n g T a bl e
Constant
Value
Description
V bB l a c k
V bR e d
V bG r e e n
V bY e l l o w
V bB l u e
V bM a ge n t a
V bC y a n
V bW h i t e
&H0
&HFF
&HFF00
&HFFF
&HFF0000
&HFF00FF
&HFFFF00
&HFFFFFF
Black
R ed
G r ee n
Yellow
Blue
M a ge n t a
Cyan
White
System Color constants
Constant
Value
Description
V bS c r o l l b a r s
V bD e s k T o p
V bA c t i v e T i t l e ba r
V bI n a c t i v e T i t l e B a r
V bM e n u B a r
V bW i n do w B a c k gr o u n d
V bW i n do w F r a m e
V bM e n u T e x t
V bW i n do w T e x t
V bT i t l e B a r T e x t
V bA c t i v e B o r d e r
V bI n a c t i v e B o r d e r
V bA p pl i c a t i o n W o r k s p a c e
V bH i gh L i gh t
V bH i gh l i gh t T e x t
V bB u t t o n F a c e
V bB u t t o n S h a do w
V bG r a y T e x t
V bB u t t o n T e x t
V bI n a c t i v e C a p t i o n T e x t
V b3 D H i gh L i gh t
V b3 D D K S h a do w
V b3 D l i gh t
V b3 D f a c e
V b3 D s h a do w
V bI n f o T e x t
&H80000000
&H80000001
&H80000002
&H80000003
&H80000004
&H80000005
&H80000006
&H80000007
&H80000008
&H80000009
&H8000000A
&H8000000B
&H8000000C
&H8000000D
&H8000000E
&H8000000F
&H80000010
&H80000011
&H80000012
&H80000013
&H80000014
&H80000015
&H80000016
&H8000000F
&H80000010
&H80000017
Scroll bar color
Desktop color
C o l o r o f t h e t i t l e b a r f o r t h e a c t i v e w i n do w
C o l o r o f t h e t i t l e b a r f o r t h e i n a c t i v e w i n do w
M en u b a c k gr o u n d c o l o r
W i n do w b a c k g r o u n d c o l o r
W i n do w F r a m e c o l o r
C o l o r o f T e x t o n M en u s
C o l o r o f T e x t i n W i n do w s
C o l o r o f t e x t i n c a pt i o n , si z e bo x , a n d sc r o l l a r r o w
B o r d er c o l o r o f A c t i v e w i n do w
B o r d er c o l o r o f i n a c t i v e w i n do w
B a c k gr o u n d c o l o r o f m u l t i pl e do c u m en t i n t er f a c e
B a c k gr o u n d c o l o r o f i t e m s s el ec t e d i n a c o n t r o l
T ex t C o l o r o f i t e m s s el e c t e d i n a c o n t r o l
C o l o r o f sh a di n g o n t h e f a c e o f c o m m a n d b u t t o n s
C o l o r o f sh a di n g o n t h e e dg e o f c o m m a n d bu t t o n s
G r a y e d ( d i sa b l e d) T ex t
T ex t c o l o r o n P u c h bu t t o n s
C o l o r o f t e x t i n a n i n a c t i v e c a pt i o n
H i gh l i gh t c o l o r f o r 3 D di s pl a y e l e m e n t s
D a r k e st sh a do w c o l o r f o r 3 D d i s p l a y el em en t s
S ec o n d l i g h t e st o f t h e 3 D c o l o r s a f t er v b 3 D h i gh l i gh t
Color of text face
C o l o r o f t e x t sh a do w
C o l o r o f T e x t i n t o o l t i ps
Y o u c a n a l s o s pe c i f y c o l o r s a s 4 - b y t e i n t eg er s di r ec t l y , i f y o u w a n t t o . T h e r a n g e f o r f u l l R G B
c o l o r s i s 0 t o 1 6 , 7 7 7 , 2 1 5 ( & H F F F F F F & ) . T h e h i g h by t e o f a n u m b e r i n t h i s r a n g e e qu a l s 0 . T h e
l o w e r 3 b y t e s , f r o m l e a s t t o m o s t s i gn i f i c a n t b y t e, d e t e r m i n e t h e a m o u n t o f r e d, g r ee n , a n d bl u e.
T h e r e d, g r e e n , a n d bl u e c o m po n e n t s a r e e a c h r e pr e se n t e d b y a n u m be r be t w ee n 0 a n d 2 5 5
( & H F F ) . T h i s m e a n s t h a t y o u c a n s pe c i f y a c o l o r a s a h ex a d ec i m a l n u m be r l i k e t h i s: & H B B G G R R &
Drawing Text
Y o u c a n di s pl a y t e x t i n f o r m s a n d pi c t u r e bo x es w i t h t h e P r i n t m et h o d.
[object.]Print [outputlist] [{ ; | , }]
T h e u p pe r - l e f t c o r n e r o f t h e t e x t y o u p r i n t a p p e a r s a t t h e l o c a t i o n C u r r e n t X , C u r r en t Y . C u r r en t X a n d
C u r r e n t Y a r e p r o pe r t i e s o f f o r m s o r pi c t u r e bo x e s. I f y o u w a n t t o pr i n t m u l t i p l e i t em s o n di f f e r en t
l i n e s , s e p a r a t e t h e m w i t h c o m m a s . I f y o u w a n t t o pr i n t m u l t i p l e i t e m s o n t h e sa m e l i n e, s e pa r a t e
t h e m w i t h s e m i c o l o n s . L e t ’ s s e e a n e x a m pl e. H er e, w e dr a w t e x t st a r t i n g a t t h e c en t er o f bo t h a
f o r m a n d a p i c t u r e bo x , P c i t u r e 1 . T o dr a w g r a ph i c s f r o m t h e F o r m L o a d e v en t , y o u m u st s et t h e
f o r m a n d pi c t u r e bo x ’ s A u t o R e dr a w pr o p er t y t o T r u e.
NetScape COMPUTER ACADEMY
152
Private Sub Form_Load( )
C u r r e n t X = S c a l e W i dt h / 2
C u r r e n t Y = S c a l e H e i gh t / 2
Print “Hello from ICES”
P i c t u r e 1 . C u r r e n t X = P i c t u r e 1 . S c a l eW i d t h / 2
P i c t u r e 1 . C u r r e n t Y = P i c t u r e 1 . S c a l eH ei gh t / 2
Picture1.Print “Hello from ICES”
End Sub
Y o u c a n f o r m a t t e x t w h e n y o u p r i n t i t t o f o r m s, pi c t u r e bo x e s, o r t h e pr i n t e r o b j ec t by d et er m i n i n g
i t s w i dt h a n d h e i gh t , a n d y o u do t h a t w i t h t h e T ex t W i dt h a n d T ex t H e i gh t m et h o d s.
Working with Fonts
Y o u h a v e a l o t o f f o r m a t t i n g o p t i o n s w h en w o r k i n g w i t h t ex t . I n pa r t i c u l a r , y o u c a n u s e t h e s e f o n t
pr o p e r t i e s i n f o r m s a n d pi c t u r e bo x e s .







FontBold
FontItalic
FontName
FontSize
FontStrikeThru
FontTransparent
F o n t U n de r L i n e
F o r e x a m pl e , w e s e t t h e f o n t i n a f o r m t o bo l d a n d t h e f o n t s i z e t o 1 2 i n a p i c t u r e bo x t h i s w a y . T o
dr a w g r a ph i c s f r o m F o r m L o a d e v e n t , y o u m u st s et f o r m a n d pi c t u r e bo x ’ s A u t o R e d r a w pr o p er t y t o
True.
Private Sub Form_Load( )
C u r r e n t X = S c a l e W i dt h / 2
CurrentY=ScaleWidth / 2
F o n t B o l d= T r u e
Print “Hello from Hello Visual Basic”
P i c t u r e 1 . C u r r e n t X = P i c t u r e 1 . S c a l eW i d t h / 2
P i c t u r e 1 . C u r r e n t Y = P i c t u r e 1 . S c a l eH ei gh t / 2
Picture1.FontSize =12
Picture1.Print “Hello From ICES”
End Sub
The Font Object
Y o u c a n a l s o c r e a t e a F o n t o b j e c t t h a t h o l ds a l l t h e pr o p er t i es o f a f o n t ; h er e a r e t h e f o n t o b j ec t ’ s
pr o p e r t i e s







Bold
Italic
Name
Size
S t r i k e T h r o u gh
Underline
W e i gh t
T o c r e a t e a F o n t o bj e c t , y o u d i m e n s i o n i t a s a n ew o b j ec t o f t y p e S t dF o n t . F o r ex a m p l e, h e r e ’ s h o w
w e i n s t a l l 2 4 - po i n t A r i a l a s t h e f o n t i n a t e x t bo x , u si n g F o n t o bj ec t .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Dim Font1 As New StdFont
Font1.Size=24
Font1.Name=”Arial”
Set Text1.Font=Font1
End Sub
Y o u c a n a l s o d e t e r m i n e w h i c h f o n t s a r e a v a i l a bl e f o r e i t h er sc r e en o r pr i n t er b y c h ec k i n g t h e F o n t s
pr o p e r t y o f t h e V i s u a l B a s i c P r i n t e r a n d S c r e en o b j ec t s. T h i s pr o p er t y h o l ds a n a r r a y o f t h e
a v a i l a bl e f o n t ’ s n a m e s . F o r e x a m p l e , t o s e e a l l t h e f o n t s a v a i l a bl e o n y o u r di s pl a y u s i n g V i su a l
B a s i c , y o u c a n l o o p o v e r a l l f o n t s i n t h e S c r e en o bj ec t - t h e t o t a l n o . o f f o n t s i s s t o r e d i n F o n t C o u n t
pr o p e r t y - a n d di s pl a y t h e f o n t n a m e s i n a c o m bo bo x .
Private Sub Form_Load( )
D i m i n t L o o p I n de x A s I n t e ge r
F o r i n t L o o p I n de x = 0 t o S c r e e n . F o n t C o u n t - 1
C o m bo 1 . A d dI t e m S c r e e n . F o n t s( I n t L o o p I n d ex )
Next
End Sub
NetScape COMPUTER ACADEMY
153
Drawing Lines
Y o u d r a w l i n e s i n f o r m s a n d p i c t u r e bo x e s w i t h t h e L i n e m et h o d.
O b j e c t . L i n e [ S t e p ] ( x 1 ,y 1 ) [ S t e p ] ( x 2 ,y 2 ) , [ c o l o r ] , [ B] [ F ]
Here are the arguments you pass to Line








S t e p - K e y w o r d s p e c i f y i n g t h a t t h e s t a r t i n g po i n t c o o r d i n a t e s a r e r e l a t i v e t o t h e c u r r en t
gr a ph i c s po s i t i o n gi v e n by t h e C u r r en t X a n d C u r r en t Y pr o p er t i e s
X 1 , y 1 - S i n g l e v a l u e s i n d i c a t i n g t h e c o o r di n a t e s o f t h e st a r t i n g po i n t f o r t h e l i n e o r r ec t a n gl e.
T h e S c a l e M o d e p r o pe r t y d e t e r m i n e s t h e u n i t o f m e a su r e u s e d. I f o m i t t ed, t h e l i n e b e g i n s a t
t h e po s i t i o n i n di c a t e d b y C u r r e n t X a n d C u r r en t Y .
S t e p - K e y w o r d s p e c i f y i n g t h a t t h e en d po i n t c o o r di n a t e s a r e r el a t i v e t o t h e l i n e s t a r t i n g
po i n t
X 2 , y 2 - S i n g l e v a l u e s i n d i c a t i n g t h e c o o r di n a t e s o f t h e en d p o i n t f o r t h e l i n e be i n g d r a w n .
C o l o r - L o n g i n t e g e r v a l u e i n d i c a t i n g t h e R G B c o l o r u s e d t o dr a w t h e l i n e . I f o m i t t e d, t h e
F o r e C o l o r pr o p e r t y s e t t i n g i s u s ed. Y o u c a n u s e t h e R G B f u n c t i o n o r Q B C o l o r f u n c t i o n t o
s pe c i f y t h e c o l o r .
C o l o r - L o n g i n t e g e r v a l u e i n d i c a t i n g t h e R G B c o l o r u s e d t o dr a w t h e l i n e . I f o m i t t e d, t h e
F o r e c o l o r p r o p e r t y s e t t i n g i s u s ed. Y o u c a n u s e t h e R G B f u n c t i o n o r Q B C o l o r f u n c t i o n t o
s pe c i f y t h e c o l o r .
B - I f i n c l u d e d, c a u s e s a bo x t o b e dr a w n u s i n g t h e c o o r di n a t es t o s p ec i f y o p po si t e c o r n er s o f
t h e bo x .
F - I f t h e B o pt i o n i s u s e d , t h e F o pt i o n s pec i f i e s t h a t t h e bo x i s f i l l e d w i t h t h e sa m e c o l o r
u s e d t o d r a w t h e bo x . Y o u c a n n o t u s e F w i t h o u t B . I f B i s u s ed w i t h o u t F , t h e bo x i s f i l l e d
w i t h t h e c u r r e n t F i l l C o l o r a n d F i l l S t y l e. T h e d ef a u l t v a l u e f o r F i l l S t y l e i s t r a n s p a r en t .
L e t ’ s s e e a n e x a m pl e . H e r e , w e ’ l l d r a w l i n e s c r i s sc r o s si n g a f o r m a n d a p i c t u r e bo x , P i c t u r e1 .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
L i n e ( 0 , 0 ) – S c a l e W i d t h , S c a l e H ei gh t )
L i n e ( S c a l e W i d t h , 0 ) – ( 0 , S c a l eH ei gh t )
P i c t u r e 1 . L i n e ( 0 , 0 ) - P i c t u r e 1 . S c a l eW i dt h , P i c t u r e 1 . S c a l eH e i g h t )
P i c t u r e 1 . L i n e ( P i c t u r e 1 . S c a l e W i d t h , 0 ) - ( 0 , P i c t u r e 1 . S c a l eH e i g h t )
End Sub
Drawing Boxes
Y o u c a n dr a w bo x e s i n f o r m s a n d pi c t u r e bo x es w i t h t h e L i n e m et h o d, u si n g t h e B a r g u m en t .
O bje c t. L i n e [s te p ] ( x1 ,y1 ) [s te p ] ( x2 ,y 2 ) , [c ol or ] , [ B] [F ]
L e t s s e e a n e x a m p l e t o dr a w a bo x i n a f o r m .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
L i n e ( S c a l e W i d t h / 4 , S c a l e H e i gh t / 4 ) - ( 3 * S c a l e W i d t h / 4 , 3 * _
S c a l e H e i gh t / 4 ) , , B
End Sub
Drawing Circles
Y o u u s e t h e C i r c l e m e t h o d t o dr a w c i r c l es i n f o r m s a n d p i c t u r e s:
O bje c t.c i r c l e [s te p ] ( x ,y ), r a di u s , [c ol or , [s t a r t, e n d , [a s pe c t] ]]
Here are the arguments you pass to Circle






S t e p - K e y w o r d s p e c i f y i n g t h a t t h e c en t er o f t h e c i r c l e, el l i p s e, o r a r c i s r e l a t i v e t o t h e
c u r r e n t c o o r d i n a t e s g i v e n by t h e C u r r e n t X a n d C u r r en t Y p r o pe r t i e s o f o b j ec t .
X , y - S i n gl e v a l u e s i n di c a t i n g t h e c o o r di n a t e s f o r t h e c en t er po i n t o f t h e c i r c l e, e l l i p s e, o r
a r c . T h e S c a l e M o d e pr o p e r t y o f o bj ec t d et e r m i n e s t h e u n i t s o f m ea su r e u s ed.
R a d i u s - S i n gl e v a l u e i n d i c a t i n g t h e r a d i u s o f t h e c i r c l e, el l i p se , o r a r c . T h e S c a l eM o de
pr o p e r t y o f o bj e c t d e t e r m i n e s t h e u n i t o f m ea su r e u s e d.
C o l o r - L o n g i n t e g e r v a l u e i n d i c a t i n g t h e R G B c o l o r o f t h e c i r c l e ’ s o u t l i n e. I f o m i t t e d, t h e
v a l u e o f t h e F o r e C o l o r p r o p e r t y i s u s e d. Y o u c a n u s e t h e R G B f u n c t i o n o r Q B C o l o r f u n c t i o n
to specify the color.
S t a r t , e n d - S i n gl e - pr e c i s i o n v a l u e s. W h e n a n a r c o r a p a r t i a l c i r c l e o r e l l i p s e i s d r a w n , s t a r t
a n d e n d s pe c i f y ( i n r a di a n s ) t h e b e g i n n i n g a n d en d po s i t i o n s o f t h e a r c . T h e r a n ge f o r b o t h
i s - 2 pi r a di a n s t o 2 p i r a di a n s . T h e d ef a u l t v a l u e f o r st a r t i s 0 r a di a n s; t h e de f a u l t f o r en d i s
2*pi radians.
A s p e c t - S i n g l e - pr e c i s i o n v a l u e i n d i c a t i n g t h e a s p ec t r a t i o o f t h e c i r c l e. T h e de f a u l t v a l u e i s
1 . 0 , w h i c h y i e l d s a p e r f e c t ( n o n e l l i pt i c a l ) c i r c l e o n a n y sc r e en .
A s a n e x a m pl e , w e dr a w t h e bi g g e s t c i r c l e po s si bl e i n bo t h a f o r m a n d a pi c t u r e bo x , P i c t u r e1 ,
w h e n t h e u s e r c l i c k s a C o m m a n d bu t t o n u si n g t h e c o d e b el o w a n d u s i n g S w i t c h f u n c t i o n t o
d e t e r m i n e i f t h e f o r m ’ s w i d t h o r h e i gh t i s l a r g er .
NetScape COMPUTER ACADEMY
154
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
C i r c l e ( S c a l e W i dt h / 2 , S c a l e H e i gh t / 2 ) , _
S w i t c h ( S c a l e W i d t h > = S c a l eH ei gh t , S c a l eH e i gh t / 2 , _
S c a l e W i d t h < S c a l e H e i g h t , S c a l eW i dt h / 2 )
P i c t u r e 1 . C i r c l e ( P i c t u r e 1 . S c a l e W i d t h / 2 , P i c t u r e 1 . S c a l eH e i g h t / 2 ) , _
S w i t c h ( P i c t u r e 1 . S c a l e W i dt h > = P i c t u r e1 . S c a l eH e i gh t , _
P i c t u r e 1 . S c a l e H e i gh t / 2 , P i c t u r e1 . S c a l eW i d t h < _
P i c t u r e 1 . S c a l e H e i gh t , P i c t u r e1 . S c a l eW i d t h / 2 )
End Sub
Drawing Ellipses
Y o u u s e t h e C i r c l e m e t h o d t o dr a w e l l i ps e s i n pi c t u r e bo x es a n d f o r m s, s et t i n g t h e a sp ec t a r gu m en t
to set the ellipse’s aspect ratio:
O bje c t.c i r c l e [s te p ] ( x ,y ), r a di u s , [c ol or , [s t a r t, e n d , [a s pe c t] ]]
T h e a s p e c t r a t i o i s t h e r a t i o o f t h e v e r t i c a l t o h o r i z o n t a l a x e s i n t h e e l l i p s e, a n d t h e l en g t h o f t h e
e l l i p s e ’ s m a j o r ( t h a t i s l o n g e r ) a x i s i s t h e v a l u e y o u s p ec i f y i n t h e r a di u s a r gu m en t . H er e’ s a n
e x a m p l e , w h e r e w e u s e a v e r t i c a l t o h o r i z o n t a l r a t i o o f 0 . 8 f o r t h e e l l i p s e.
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
C i r c l e ( S c a l e W i dt h / 2 , S c a l e H e i gh t / 2 ) , _
S w i t c h ( S c a l e W i d t h > = S c a l eH ei gh t , S c a l eH e i gh t / 2 , _
S c a l e W i d t h < S c a l e H e i g h t , S c a l eW i dt h / 2 ) , , , , 0 . 8
End Sub
Drawing Arcs
Y o u u s e t h e C i r c l e m e t h o d t o dr a w a r c s, u s i n g t h e st a r t , en d , a n d a sp e c t a r gu m en t s:
O bje c t. Ci r c l e [S te p] ( x, y) , r a di u s , [c ol or , e n d , [ a s pe c t ]] ]
I n V i s u a l B a s i c , a n a r c i s pa r t o f a n e l l i ps e. T o dr a w a n a r c , y o u p r o c ee d a s t h o u gh y o u w e r e go i n g
t o dr a w a n e l l i ps e , i n c l u di n g s pe c i f y i n g t h e o r i gi n , m a j o r r a di u s, c o l o r , a n d a s p ec t r a t i o . T h en y o u
s pe c i f y v a l u e s f o r t h e b e gi n n i n g a n d e n d o f t h e a r c , i n r a d i a n s.
H e r e ’ s a n e x a m p l e t o dr a w a c o n v e x a r c i n a f o r m a n d a c o n c a v e a r c i n a p i c t u r e bo x
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
C i r c l e ( S c a l a w i d t h / 2 , S c a l e H e i gh t / 2 ) , _
S w i t c h ( S c a l e W i d t h > = S c a l eH ei gh t , S c a l eH e i gh t / 2 , _
S c a l e W i d t h < S c a l e H e i g h t , S c a l eW i dt h / 2 ) , , 0 , 3 . 1 4 , 0 . 8
P i c t u r e 1 . C i r c l e ( P i c t u r e 1 . S c a l e W i d t h / 2 , P i c t u r e 1 . S c a l eH e i g h t / 2 ) , _
S w i t c h ( P i c t u r e 1 . S c a l e W i dt h > = P i c t u r e1 . S c a l eH e i gh t . _
P i c t u r e 1 . S c a l e H e i gh t / 2 , P i c t u r e1 . S c a l eW i d t h < _
P i c t u r e 1 . S c a l e H e i gh t , P i c t u r e1 . S c a l eW i d t h / 2 ) , , 3 . 1 4 , 6 . 2 8 , 0 . 8
End Sub
Drawing Freehand with the Mouse
A s t h e u s e r m o v e s t h e m o u s e , y o u c a n u s e t h e L i n e st a t em en t t o c o n n ec t t h e m o u s e l o c a t i o n s
pa s s e d t o y o u r pr o gr a m i n t h e M o u s e M o v e e v en t h a n dl er . N o t e t h a t y o u a r e n o t p a ss e d ev e r y pi x e l
t h e m o u s e t r a v e l s o v e r , s o y o u m u s t c o n n ec t t h e do t s, s o t o s p e a k , r a t h e r t h a n s et t i n g i n d i v i du a l
pi x e l s a s a l o t o f pr o g r a m m e r s t h i n k .
H e r e ’ s a n e x a m p l e w h e r e w e dr a w f r e eh a n d w i t h t h e m o u s e.
C r e a t e a bo o l e a n v a r i a b l e i n g e n e r a l dec l a r a t i o n s ec t i o n a n d s et i t s i n i t i a l v a l u e t o F a l s e
D i m bl n D r a w F l a g A s B o o l e a n
Private Sub Form_Load()
B l n D r a w F l a g= F a l s e
End Sub
W h e n t h e u s e r pr e s s e s t h e m o u s e b u t t o n , w e s et t h e c u r r en t dr a w i n g l o c a t i o n ( C u r r en t X , C u r r en t Y )
t o t h e l o c a t i o n o f t h e m o u s e a n d s e t bl D r a w F l a g t o T r u e i n t h e M o u s eD o w n ev en t h a n d l er .
P r i v a t e S u b F o r m _ M o u s e D o w n ( B u t t o n A s I n t e g er , S h i f t A s I n t eg e r , X A s S i n gl e , Y A s S i n g l e)
CurrentX=X
CurrentY=Y
B l n D r a w F l a g= T r u e
End Sub
NetScape COMPUTER ACADEMY
155
W h e n t h e u s e r m o v e s t h e m o u s e , w e c h ec k i f t h e b l n D r a w F l a g i s T r u e i n M o u s eM o v e e v en t , a n d i f
s o , d r a w a l i n e f r o m t h e c u r r e n t dr a w i n g l o c a t i o n t o t h e c u r r en t ( X , Y ) p o si t i o n .
P r i v a t e S u b F o r m _ M o u s e M o v e ( B u t t o n A s I n t eg e r , S h i f t A s I n t eg e r , X A s S i n gl e, Y A s S i n g l e)
If blnDrawFlag Then Line –(X,Y)
End Sub
W h e n t h e m o u s e bu t t o n go e s u p, w e s e t b l n D r a w F l a g t o F a l s e i n M o u s eU p e v en t h a n d l e r
P r i v a t e S u b F o r m _ M o u s e U p ( B u t t o n A s I n t e g er , S h i f t A s I n t eg e r , X A s S i n gl e, Y A s S i n gl e)
B l n D r a w F l a g= F a l s e
End Sub
Filling Figures with Color
T o f i l l f i gu r e s w i t h c o l o r , y o u c a n u s e t h e F i l l C o l o r pr o p er t y o f f o r m s a n d pi c t u r e bo x es , a l o n g w i t h
t h e F i l l S t y l e pr o p e r t y t o s e t t h e t y p e o f f i l l y o u w a n t .
L e t ’ s s e e a n e x a m pl e . H e r e w e ’ l l d r a w a c i r c l e a n d a bo x i n a f o r m i n t h e d ef a u l t dr a w i n g c o l o r a n d
f i l l t h o s e f i gu r e s w i t h s o l i d b l u e w h e n t h e u se r c l i c k s a bu t t o n , C o m m a n d 1 . F i r s t , w e s et t h e f o r m ’ s
F i l l C o l o r pr o p e r t y t o B l u e
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
FillColor=RGB(0,0,255)
F i l l S t y l e = v bF S S o l i d
L i n e ( 0 , 0 ) - ( S c a l e W i dt h / 2 , S c a l eH ei gh t / 2 ) , , B
C i r c l e ( 3 * S c a l e W i dt h / 4 , 3 * S c a l eH e i gh t / 4 ) , S c a l eH ei gh t / 4
End Sub
Filling Figures with Patterns
Y o u c a n u s e t h e f o r m a n d p i c t u r e bo x e s F i l l S t y l e pr o p er t y t o s et t h e f i l l p a t t e r n i n V i s u a l B a si c
gr a ph i c s . H e r e a r e t h e p o s s i bi l i t i e s








V bF S S o l i d - 0 ; s o l i d
V bF S T r a n s p a r e n t - 1 ( t h e d e f a u l t ) ; t r a n sp a r e n t
V bH o r i z o n t a l L i n e - 2 ; h o r i z o n t a l l i n e
V bV e r t i c a l L i n e - 3 ; v e r t i c a l l i n e
V bU pW a r dD i a go n a l - 4 ; u pw a r d D i a go n a l
V bD o w n w a r dD i a go n a l - 5 ; do w n w a r d d i a go n a l
V bC r o s s - 6 ; c r o s s
V bD i a go n a l C r o s s - 7 ; d i a g o n a l c r o s s
Setting Figure Drawing Style and Drawing Width
S e t t h e D r a w S t y l e pr o p e r t y i n f o r m s o r p i c t u r e b o x e s t o c h a n g e t h e l i n e st y l e s. H er e a r e t h e
po s s i bl e v a l u e s .







v b s o l i d - 1 ( t h e d e f a u l t ) ; s o l i d ( t h e bo r de r i s c e n t er e d o n t h e ed g e o f sh a p e)
vbDash-2;dash
v b D o t - 3 ; do t
v b D a s h D o t - 4 ; da s h - do t
v b D a s h D o t D o t - 5 ; d a s h - d o t - do t
v b I n v i s i b l e - 5 ; i n v i s i bl e
v b I n s i d e S o l i d - 6 ; i n s i d e s o l i d ( t h e o u t t er ed g e o f t h e bo r d er i s t h e o u t t e r e dg e o f f i gu r e)
y o u c a n a l s o s e t t h e dr a w i n g w i d t h w i t h D r a w W i dt h pr o p er t y
E g:
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
D r a w S t y l e = v bD a s h
L i n e ( 0 , 0 ) - ( S c a l e W i dt h / 2 , S c a l eH ei gh t / 2 ) , , B
C i r c l e ( ( 3 * S c a l e W i dt h / 4 , 3 * S c a l eH ei gh t / 4 ) , S c a l eH ei gh t / 4
End Sub
NetScape COMPUTER ACADEMY
156
Drawing Points
T o dr a w i n d i v i d u a l po i n t s , y o u u s e P s e t i n f o r m s a n d pi c t u r e bo x e s l i k e t h i s:
O bje c t. Ps e t [S te p] ( x, y) , [c ol or ]
Here are the arguments you pass to Pset:



S t e p - k e y w o r d s pe c i f y i n g t h a t t h e c o o r di n a t e s a r e r el a t i v e t o t h e c u r r en t gr a p h i c s po s i t i o n
gi v e n b y t h e C u r r e n t X a n d C u r r en t Y p r o p er t i es
X , y - S i n gl e v a l u e s i n di c a t i n g t h e h o r i z o n t a l ( x - a x i s) a n d v er t i c a l ( y - a x i s ) c o o r d i n a t e s o f t h e
po i n t t o s e t .
C o l o r - L o n g i n t e g e r v a l u e i n d i c a t i n g t h e R G B c o l o r s p ec i f i e d f o r t h e po i n t . I f o m i t t ed, t h e
c u r r e n t F o r e C o l o r pr o p e r t y s e t t i n g i s u se d. Y o u c a n u se t h e R G B f u n c t i o n o r Q B C o l o r
function to specify the color.
Y o u c a n a l s o u s e t h e P o i n t m e t h o d t o r e t r i e v e t h e c o l o r o f a po i n t a t a s p ec i f i c ( x , y ) l o c a t i o n .
Setting The Drawing Mode
Y o u d r a w w i t h p e n s i n W i n do w s . E v e r y dr a w i n g o p er a t i o n u se s t h e s e pen s. W h en y o u s et t h e
dr a w i n g w i d t h , y o u ’ r e r e a l l y s e t t i n g t h e w i d t h o f t h e p en ; w h en y o u s et t h e dr a w i n g c o l o r , y o u ’ r e
setting the color of the pen.
Y o u c a n a l s o u s e t h e D r a w M o d e pr o p e r t y t o s p e c i f y h o w t h e c u r r en t p en i n t er a c t s w i t h t h e g r a ph i c s
i t a l r e a dy f i n ds i n a f o r m o r p i c t u r e bo x . H er e a r e t h e po s si bl e s et t i n g s f o r t h e p en ’ s dr a w i n g
mode:
















vbBlackness-1, Blackness
v b N o t M e r g e P e n - 2 , N o t M e r g e P en ; i n v er s e o f se t t i n g 1 5 ( M er g e P en )
v b M a s k N o t P e n - 3 , M a s k N o t P e n ; c o m bi n a t i o n o f t h e c o l o r s c o m m o n t o t h e ba c k gr o u n d c o l o r
and the inverse of the pen
v b N o t C o py P e n - 4 , N o t C o py P e n ; i n v er s e o f s e t t i n g 1 3 ( C o p y P en )
v b M a s k P e n N o t - 5 , M a s k P e n N o t ; c o m b i n a t i o n o f t h e c o l o r s c o m m o n t o bo t h t h e p en a n d t h e
i n v e r s e o f t h e d i s pl a y
v b I n v e r t - 6 , I n v e r t ; i n v e r s e o f t h e d i sp l a y c o l o r
v bX o r P e n - 7 , X O R P e n ; c o m b i n a t i o n o f t h e c o l o r s i n t h e p en a n d i n t h e di s pl a y c o l o r , bu t n o t
i n bo t h
v b N o t M a s k P e n - 8 , N o t M a s k P e n ; i n v er s e o f s e t t i n g 9 ( M a s k P en )
v b M a s k P e n - 9 , M a s k P e n ; c o m bi n a t i o n o f t h e c o l o r s c o m m o n t o bo t h t h e p en a n d t h e d i s p l a y
v b N o t X o r P e n - 1 0 , N o t X O R P e n ; i n v er s e o f s et t i n g 7 ( X O R P en )
v b N o p - 1 1 N o p, N o o p e r a t i o n ; o u t pu t r em a i n s u n c h a n g ed ( i n e f f ec t , t h i s s et t i n g t u r n s
dr a w i n g o f f )
v b M e r ge N o t P e n - 1 2 , M e r g e N o t P en , c o m bi n a t i o n o f t h e di s pl a y c o l o r a n d t h e i n v er s e o f t h e
pen color
v b C o py P e n - 1 3 , C o p y P e n ( t h e d ef a u l t ) ; c o l o r s pe c i f i e d b y t h e F o r eC o l o r p r o p er t y
v b M e r ge P e n N o t - 1 4 , M e r g e P e n N o t ; c o m b i n a t i o n o f t h e p en c o l o r a n d t h e i n v er s e o f t h e
di s pl a y c o l o r
v b M e r ge P e n - 1 5 , M e r g e P e n ; c o m bi n a t i o n o f t h e p en c o l o r a n d t h e di s pl a y c o l o r
v bW h i t e n e s s - 1 6 , W h i t e n e s s
F o r e x a m pl e , w e c a n s e t t h e p e n t o be a n i n v er t p en w i t h t h i s c o d e a n d d r a w o v e r so m e l i n e s. T h e
pen will invert the pixels it finds:
Private Sub Form_Load()
D i m i n t L o o p I n de x A s I n t e ge r
F o r i n t L o o p I n de x = 1 t o 9
D r a w W i dt h = i n t L o o pI n d e x
L i n e ( 0 , i n t L o o pI n d e x * S c a l eH ei gh t / 1 0 ) - ( S c a l e W i d t h , _
I n t L o o p I n d e x * S c a l eH ei gh t / 1 0 )
Next
DrawMode=vbInvert
D r a w W i dt h = 1 0
L i n e ( 0 , 0 ) - ( S c a l e W i dt h , S c a l e H ei gh t )
L i n e ( 0 , S c a l e H e i g h t ) - ( S c a l e W i dh t , 0 )
End Sub
Setting Drawing Scales
F o r m s a n d P i c t u r e bo x e s h a v e a n u m b er o f sc a l e pr o p er t i e s, a n d p er h a ps t h e m o s t po pu l a r o n e i s
S c a l e M o d e , w h i c h s e t s t h e u n i t s o f m e a su r em en t i n a p i c t u r e bo x . H e r e a r e t h e po s si bl e v a l u e s f o r
S c a l e M o d e . N o t e t h a t w h e n y o u s e t t h e sc a l e m o d e, a l l m e a su r em en t s a r e i n t h o s e n ew u n i t s,
i n c l u di n g c o o r d i n a t e s p a s s e d t o y o u r pr o g r a m , l i k e m o u se do w n l o c a t i o n s.
NetScape COMPUTER ACADEMY











157
v b U s e r - 0 ; i n di c a t e s t h a t o n e o r m o r e o f t h e S c a l e H ei gh t , S c a l eW i dt h , S c a l eL ef t , a n d
S c a l e T o p pr o p e r t i e s a r e s e t t o c u st o m v a l u e s.
V bT w i p s - 1 ( t h e d e f a u l t ) ; t w i p ( 1 / 1 4 4 0 p er l o gi c a l i n c h )
V b P o i n t s - 2 ; po i n t ( 7 2 po i n t s p e r l o gi c a l i n c h )
V b P i x e l s - 3 ; pi x e l ( s m a l l e s t u n i t o f m o n i t o r o r pr i n t e r r e so l u t i o n )
V bC h a r a c t e r s - 4 ; c h a r a c t e r ( h o r i z o n t a l e qu a l s 1 2 0 t w i p s p e r u n i t ; v e r t i c a l eq u a l s 2 4 0 t w i ps
per unit)
V bI n c h e s - 5 ; i n c h
V bM i l l i m e t e r s - 6 ; m i l l i m e t e r
V bC e n t i m e t e r s - 7 ; c e n t i m e t e r
V bH i m e t r i c - 8 ; H i m e t r i c
V bC o n t a i n e r P o s i t i o n - 9 ; u n i t s u se d by t h e c o n t r o l ’ s c o n t a i n e r t o d e t er m i n e t h e c o n t r o l ’ s
po s i t i o n
V bC o n t a i n e r S i z e - 1 0 ; u n i t s u s e d by t h e c o n t r o l ’ s c o n t a i n er t o d et er m i n e t h e c o n t r o l ’ s si z e
I f y o u s e t t h e s c a l e m o d e t o v b U s e r , y o u c a n d ef i n e y o u r o w n u n i t s b y s e t t i n g t h e di m en si o n s o f
t h e pi c t u r e bo x u s i n g t h e S c a l e L e f t , S c a l eT o p, S c a l eW i d t h , a n d S c a l eH ei gh t pr o p er t i e s.
Using the Screen Object
T h e V i s u a l B a s i c S c r e e n o bj e c t o f f e r s y o u a l o t o f i n f o r m a t i o n a bo u t t h e c u r r en t di s pl a y . H e r e a r e
t h a t o b j e c t ’ s pr o p e r t i e s










T w i s P e r P i x e l X - T w i p s p e r pi x e l h o r i z o n t a l l y
T w i p s P e r P i x e l Y - T w i ps p e r pi x e l v e r t i c a l l y
H e i gh t - S c r e e n H e i gh t
Width-Screen Wisth
Fonts-Collection of names of the available fonts
F o n t C o u n t - T o t a l n u m b e r o f s c r e en f o n t s a v a i l a b l e
ActiveControl-Currently active control
ActiveForm-Currently active form
MouseIcon -Returns or sets a custom mouse icon
M o u s e P o i n t e r - R e t u r n s o r s e t s a v a l u e i n di c a t i n g t h e t y pe o f m o u se po i n t e r di s pl a y ed w h en
t h e m o u s e i s o v e r a p a r t i c u l a r pa r t o f a n o b j ec t a t r u n t i m e
R e s i z i n g G r a p h i c s W h e n t h e W i n d o w i s Re s i ze d
Y o u c a n u s e t h e R e S i z e e v e n t t o c a t c h w i n do w o r pi c t u r e bo x r e si z e s. F o r ex a m p l e, h e r e w e a d d a
N e w s u br o u t i n e , D r a w B o x t o a F o r m w h i c h d r a w s a r ec t a n g l e t o a f o r m .
Private Sub DrawBox()
L i n e ( S c a l e W i d t h / 4 , S c a l e H e i gh t / 4 ) - ( 3 * S c a l e W i d t h / 4 , 3 * S c a l eH e i g h t / 4 ) , , B
End Sub
W e c a n c a l l D r a w B o x i n t h e L o a d e v e n t t o dr a w t h e bo x t h e f i r st t i m e. S e t A u t o R e dr a w p r o p e r t y t o
T r u e t o d r a w gr a ph i c s i n t h e F o r m L o a d ev en t .
Private Sub Form_Load( )
DrawBox
End Sub
W h e n t h e u s e r r e s i z e s t h e f o r m , w e c l e a r t h e f o r m a n d r ed r a w t h e bo x i n t h e F o r m R es i z e e v e n t
Private Sub Form_Resize ( )
Cls
DrawBox
End Sub
Printing Graphics
V i s u a l B a s i c h a s t w o w a y s o f pr i n t i n g bo t h t e x t a n d g r a ph i c s


P r i n t i n g e n t i r e f o r m u s i n g P r i n t F o r m m et h o d
P r i n t i n g w i t h t h e P r i n t e r o bj e c t a n d u s i n g g r a ph i c a l m et h o d s a s w e l l a s t h e N ew P a g e a n d
EndDoc methods
The PrintForm method
T h e P r i n t F o r m m e t h o d s e n d s a n i m a g e o f a g i v e n f o r m t o t h e pr i n t er , c o m p l e t e w i t h m e n u b a r , t i t l e
ba r , , a n d s o o n . T o pr i n t i n f o r m a t i o n f r o m y o u r a p pl i c a t i o n w i t h P r i n t F o r m , y o u m u s t f i r s t d i s p l a y
t h a t i n f o r m a t i o n o n a f o r m a n d t h e n pr i n t t h a t f o r m w i t h t h e P r i n t F o r m m e t h o d l i k e t h i s
[f or m ] . Pr i n tF or m
The Printer Object
T h e P r i n t e r O b j e c t r e pr e s e n t s t h e d e f a u l t pr i n t e r a n d su p po r t s t e x t a n d g r a ph i c s m e t h o ds l i k e P r i n t ,
P s e t , L i n e , P a i n t P i c t u r e , a n d C i r c l e . Y o u u s e t h e s e m et h o d s o n t h e P r i n t e r O b j ec t a s y o u w o u l d o n a
f o r m o r pi c t u r e b o x . T h e P r i n t e r o bj e c t a l so h a s a l l t h e f o n t pr o p er t i e s w e’ v e s e en e a r l i e r .
NetScape COMPUTER ACADEMY
158
W h e n y o u f i n i s h p l a c i n g t h e i n f o r m a t i o n o n t h e P r i n t e r o b j ec t , y o u u s e t h e E n dD o c m et h o d t o s en d
t h e o u t pu t t o t h e P r i n t e r . Y o u c a n a l s o pr i n t m u l t i p l e p a ge do c u m en t s b y u si n g N ew P a ge m e t h o d o n
t h e P r i n t e r O b j e c t . W h e n a p p l i c a t i o n s c l o s e, t h e y a u t o m a t i c a l l y u s e t h e E n d D o c m e t h o d t o s en d a n y
p e n di n g i n f o r m a t i o n o n t h e P r i n t e r o bj ec t .
The Printers Collection
T h e P r i n t e r s c o l l e c t i o n i s a n o b j e c t t h a t c o n t a i n s a l l t h e pr i n t e r s t h a t a r e a v a i l a b l e, a n d e a c h
pr i n t e r i n t h e c o l l e c t i o n h a s a u n i qu e ( 0 - b a s e d) i n d ex f o r i de n t i f i c a t i o n . F o r ex a m p l e, w e s el ec t t h e
f i r s t pr i n t e r f r o m t h e P r i n t e r s c o l l e c t i o n t o b e t h e c u r r en t p r i n t er by l o a d i n g t h a t p r i n t er i n t o t h e
P r i n t e r o bj e c t .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Set Printer=Printers(0)
End Sub
Layering Graphics with the AutoRedraw and ClipControls Properties
W h e n y o u c r e a t e g r a ph i c s i n V i s u a l B a si c , be a r i n m i n d t h a t gr a p h i c a l c o n t r o l s a n d l a b e l s, n o n
gr a ph i c a l c o n t r o l s , a n d gr a ph i c s m e t h o d s a p p e a r o n di f f er en t l a y er s. T h e b eh a v i o u s o f t h e s e l a y er s
d e p e n d s o n t h r e e t h i n g s . T h e A u t o R e dr a w pr o p e r t y , t h e C l i pC o n t r o l s pr o p er t y , a n d w h e t h er
gr a ph i c s m e t h o d s a p p e a r i n s i d e o r o u t s i d e t h e P a i n t e v en t . U su a l l y t h e l a y e r s o f a f o r m o r o t h er
container are as follows.



F r o n t l a y e r - N o n g r a ph i c a l c o n t r o l s l i k e c o m m a n d bu t t o n s, c h ec k bo x e s, a n d f i l e c o n t r o l s.
M i d d l e l a y e r - G r a ph i c a l c o n t r o l s a n d l a be l s
B a c k l a y e r - D r a w i n g s p a c e f o r t h e f o r m o r c o n t a i n er . T h i s i s w h er e t h e r e su l t s o f g r a ph i c s
m e t h o ds a pp e a r
A n y t h i n g i n o n e l a y e r c o v e r s a n y t h i n g i n t h e l a y er b eh i n d i t , so gr a ph i c s y o u c r ea t e w i t h gr a ph i c a l
c o n t r o l s a pp e a r b e h i n d o t h e r c o n t r o l s o n t h e f o r m , a n d a l l gr a ph i c s y o u c r e a t e w i t h t h e gr a p h i c s
m e t h o ds a pp e a r b e l o w a l l gr a p h i c a l a n d n o n g r a p h i c a l c o n t r o l s. C o m b i n i n g s e t t i n g s f o r A u t o R e dr a w
a n d C l i pC o n t r o l s a n d p l a c i n g gr a ph i c s m e t h o ds i n si d e o r o u t s i d e t h e P a i n t e v en t a f f ec t s l a y er i n g
a n d t h e p e r f o r m a n c e o f t h e a pp l i c a t i o n .
NetScape COMPUTER ACADEMY
Chapter 29
Error Handling
Chapter 30
Windows API
159
NetScape COMPUTER ACADEMY
160
Chapter 31
Creating ActiveX controls and Documents
A c t i v e X c o n t r o l s a n d A c t i v e X do c u m e n t s a r e t w o o f t h e A c t i v eX c o m po n en t s y o u c a n bu i l d i n V I S U A L
B A S I C . T h e w h o l e A c t i v e X f i e l d s t a r t e d o r i gi n a l l y t o di f f er en t i a t e c o n t r o l s d e si gn e d f o r i n t er n et
u s a g e f r o m g e n e r a l O L E ( O b j e c t L i n k i n g a n d E m b e dd i n g) c o n t r o l s. I n t i m e, h o w e v er , a l l O L E
c o n t r o l s h a v e c o m e t o b e r e f e r r e d t o a s A c t i v eX c o n t r o l s. I n f a c t , t h e f i e l d h a s t a k en o f f so
v i go r o u s l y t h a t n o w V I S U A L B A S I C c a n b u i l d n o t j u st A c t i v eX c o n t r o l s i n V I S U A L B A S I C ,
bu t
A c t i v e X do c u m e n t s .
I n pr o gr a m m i n g t e r m s a l l A c t i v e X c o m po n en t s a r e r ea l l y O L E s er v er s , bu t t h a t do es n ’ t h e l p u s
u n d e r s t a n d w h a t ’ s go i n g o n . I t ’ s b e t t er t o b r e a k t h i n g s do w n a n d l o o k a t e t h e t h r ee t y p e s o f
A c t i v e X c o m po n e n t s



ActiveX Controls
ActiveX Documents
C o d e C o m po n e n t s ( O L E a u t o m a t i o n s er v er s)
ActiveX Controls
A c t i v e X C o n t r o l s a r e t h e c o n t r o l s y o u c a n a d d t o t h e V I S U A L B A S I C t o o l bo x u s i n g t h e C o m po n e n t s
di a l o g bo x . Y o u c a n a d d t h o s e c o n t r o l s t o a V I S U A L B A S I C pr o g r a m l i k e a n y o t h er c o n t r o l . Y o u c a n
a l s o u s e A c t i v e X c o n t r o l s o n t h e I n t e r n e t , em b e d di n g t h em i n y o u r w eb p a ge s, a s w e’ l l s e e w h en
w e w o r k o n c r e a t i n g A c t i v e X c o n t r o l s . A c t i v eX c o n t r o l s c a n s u p po r t pr o p e r t i e s, m et h o d s a n d e v en t s.
Y o u r A c t i v e X c o n t r o l c a n b e bu i l t e n t i r e l y f r o m s c r a t c h , i t c a n b e bu i l t o n a n o t h er c o n t r o l , o r i t c a n
c o n t a i n m u l t i p l e e x i s t i n g c o n t r o l s . V I S U A L B A S I C A c t i v eX c o n t r o l s a r e b a se d o n t h e V I S U A L B A S I C
UserControl object. When you create an ActiveX control, you create a control class file with the
e x t e n s i o n . c t l . V I S U A L B A S I C u s e s t h a t f i l e t o c r e a t e t h e a c t u a l c o n t r o l , w h i c h h a s t h e e x t en si o n
. O C X . A f t e r y o u r e gi s t e r t h a t c o n t r o l w i t h W i n do w s ( y o u c a n u s e w i n do w s u t i l i t i e s l i k e r e g sv r 3 2 . E X E
t o r e g i s t e r a c o n t r o l ) , t h e c o n t r o l w i l l a p p ea r i n V I S U A L B A S I C c o m po n en t s di a l o g bo x , r e a d y f o r
y o u t o a d d t o a pr o gr a m . Y o u c a n a l s o u s e t h e se c o n t r o l s i n W e b P a g es.
Creating an Active X Control
S e l e c t t h e N e w P r o j e c t m e n u i t e m i n V I S U A L B A S I C f i l e m en u t o o p en t h e N ew pr o j ec t d i a l o g bo x .
S e l e c t A c t i v e X c o n t r o l i t e m i n n e w pr o j ec t d i a l o g a n d c l i c k o n O K . T h i s c r e a t e s a n ew , e m pt y
A c t i v e X c o n t r o l . T h e de f a u l t n a m e o f t h e c o n t r o l i s P r o j ec t 1 . C h a n g e t h e n a m e u si n g P r o j ec t >
P r o p e r t i e s t o ‘ F i r s t C o n t r o l ’ . A l s o s a v e t h e pr o j e c t a s f i r st c o n t r o l . v b p. I n s t e a d o f a F R M f i l e, y o u
s a v e A c t i v e X c o n t r o l s i n C T L f i l e s . S e l ec t t h e S a v e U s er C o n t r o l 1 i t em i n t h e f i l e m e n u t o s a v e t h e
c o n t r o l a s f i r s t c o n t r o l . c t l . N o w w e h a v e c r e a t e d a n ew A c t i v eX c o n t r o l , i t ’ s t i m e t o m a k e i t do
s o m e t h i n g.
Y o u c a n d e s i gn t h e a p p e a r a n c e o f y o u r A c t i v eX c o n t r o l en t i r e l y f r o m s c r a t c h , c r ea t i n g a n en t i r e l y
n e w c o n t r o l , n e v e r s e e n b e f o r e . I n t h a t c a s e, y o u ’ r e r e s po n si bl e f o r c r ea t i n g t h e c o n t r o l ’ s
a p p e a r a n c e f r o m s c r a t c h . L a t e r , y o u c a n a d d e v en t s t o y o u r c o n t r o l , a s w e l l a s m et h o d s a n d
pr o p e r t i e s . T o d e s i gn t h e a p p e a r a n c e o f y o u r e n t i r e l y n ew c o n t r o l , y o u c a n u s e t h e V I S U A L B A S I C
gr a ph i c s m e t h o d s t h a t t h e U s e r C o n t r o l o b j ec t s u p po r t s, su c h a s C i r c l e, L i n e, P s et , P r i n t , C l s, a n d
P o i n t . Y o u c a n a l s o d i s p l a y a n i m a g e i n t h e U se r C o n t r o l o bj ec t by s et t i n g i t s P i c t u r e pr o p er t y .
F o r E x a m p l e , do u b l e c l i c k o n u s e r c o n t r o l t o o p e n t h e f o l l o w i n g c o d e w i n do w .
P r i v a t e S u b U s e r C o n t r o l _ I n i t i a l i z e( )
End Sub
T h i s f u n c t i o n i s j u s t l i k e t h e F o r m _ L o a d p r o c e du r e. S et t h e c o n t r o l ’ s A u t o R e dr a w p r o p e r t y t o T r u e
s o w e c a n dr a w gr a ph i c s f r o m U s e r C o n t r o l _ I n i t i a l i z e, a n d t h en dr a w t h e l i n e s t o c r i ssc r o ss t h e
c o n t r o l , u s i n g t h e L i n e m e t h o d a n d S c a l eW i d t h a n d S c a l eH e i gh t .
Private Sub
Line
Line
Line
UserControl_Initialize( )
( 0 , 0 ) - ( S c a l e W i dt h , S c a l eH e i gh t )
( 0 , S c a l e H e i gh t ) – ( S c a l eW i d t h , 0 )
( S c a l e W i dt h / 4 , S c a l e W i d t h / 4 ) – ( 3 * S c a l eW i d t h / 4 , _
3 * S c a l e H e i gh t / 4 ) , , B F
End Sub
L e t ’ s t e s t t h i s n e w A c t i v e X c o n t r o l . T o do t h a t , j u s t s e l ec t t h e R u n m en u ’ s S t a r t i t em . T h i s br i n g s
t h e P r o j e c t > P r o p e r t i e s d i a l o g bo x . L e a v e U s er C o n t r o l 1 i n S t a r t c o m po n en t b o x , a n d m a k e su r e t h e
U s e E x i s t i n g B r o w s e r bo x i s c l i c k e d, t h e n c l i c k O K . T h i s r e g i s t er s o u r c o n t r o l w i t h W i n do w s, c r e a t e s
a t e m po r a r y H T M L p a g e w i t h t h e c o n t r o l em b e d d e d i n i t , a n d st a r t s t h e I n t e r n et E x pl o r e r .
Y o u c a n s e e o u r n e w A c t i v e X c o n t r o l . I t i s r e g i s t er ed w i t h W i n do w s a n d h a s i t s o w n I D , so t h i s
pa g e c a n u s e H T M L < O B J E C T > t a g t o em b e d o n e o f o u r c o n t r o l s i n t h e p a g e:
<HTML>
<BODY>
< O B J E C T c l a s s i d= ” c l s i d: B 2 A 6 9 D 3 B – D 3 8 C – 1 1 D 1 – 8 8 8 1 – E 4 5 E 0 8 C 1 0 0 0 0 ” >
NetScape COMPUTER ACADEMY
161
</OBJECT>
</BODY>
</HTML>
W h e n y o u s e l e c t E n d i n t h e R u n m e n u , V I S U A L B A S I C u n r e gi s t e r s o u r c o n t r o l w i t h W i n do w s. T o
r e gi s t e r i t p e r m a n e n t l y , u s e a W i n do w s u t i l i t y l i k e r e gs v r 3 2 . E X E .
V I S U A L B A S I C A c t i v e X c o n t r o l s a r e m u c h l i k e V I S U A L B A S I C f o r m s w h e n i t c o m es t o g r a ph i c s. I f
y o u w a n t y o u r c o n t r o l t o be a u t o m a t i c a l l y r e dr a w n w h en n e e d e d, j u st s et t h e c o n t r o l ’ s A u t o R e d r a w
pr o p e r t y t o T r u e , j u s t a s y o u w o u l d f o r a V I S U A L B A S I C f o r m o r i n t r i n si c c o n t r o l . Y o u c a n a l so a d d
your code to the control’s Paint event.
Basi n g A n Ac t iv eX C on t r ol on A n Ex is ti n g V IS UAL B AS IC C o n tr o l
Lets Explain it using Example.
C r e a t e a n e w A c t i v e X C o n t r o l b y s e l e c t i n g t h e A c t i v eX c o n t r o l i t e m i n t h e N ew P r o j ec t D i a l o g. N o w
dr a w a t e x t bo x , T e x t 1 . N o w s e t t h e t e x t bo x ’ s S c r o l l B a r s pr o p er t y t o B o t h ( 3 ) , a n d s et i t s M u l t i L i n e
pr o p e r t y t o T r u e . W h e n t h e c o n t r o l i s f i r st di s pl a y e d, w e st r e t c h t h e t e x t bo x t o c o v er t h e c o n t r o l
t h i s w a y i n t h e A c t i v e X c o n t r o l I n i t i a l i z e e v e n t h a n dl e r .
Private Sub UserControl1_Init ialize( )
Text1.Left = 0
Text1.Top = 0
T e x t 1 . W i d t h = S c a l e W i dt h
T e x t 1 . H e i gh t = S c a l e H e i gh t
End Sub
N o w s e l e c t t h e S t a r t i t e m i n t h e R u n m en u , c l i c k o n O K i f t h e P r o j ec t P r o p er t i e s d i a l o g bo x a p p e a r s
t o o p e n t h e c o n t r o l i n I n t e r n e t E x p l o r er . O f c o u r s e, a s i t s t a n ds, o u r A c t i v eX C o n t r o l i s ex a c t l y l i k e
a V I S U A L B A S I C t e x t bo x , s o i t ’ s h a r d t o s e e w h y y o u ’ d m a k e a n A c t i v eX c o n t r o l o u t o f i t . H o w e v er ,
y o u c a n t a i l o r t h a t c o n t r o l t h e w a y y o u w a n t i t . F o r ex a m p l e, y o u c a n do a l o t o f p r o c es s i n g beh i n d
t h e s c e n e s o n t h e t e x t i n t h e t e x t bo x . Y o u c a n a l so c h a n ge t h e w a y t h e c o n t r o l i n t er a c t s w i t h t h e
user.
T h e c o n t r o l s y o u u s e i n a n A c t i v e X c o n t r o l a r e c a l l e d c o n s t i t u en t c o n t r o l s, a n d y o u c a n h a n dl e
e v e n t s f r o m t h o s e c o n t r o l s j u s t a s y o u w o u l d i n a st a n da r d V I S U A L B A S I C pr o g r a m . F o r e x a m pl e,
h e r e , w e ’ l l s e t u p t h e n o “ L ” t e x t bo x . C r e a t e a n ew A c t i v eX c o n t r o l b y s e l ec t i n g t h e A c t i v eX
C o n t r o l i t e m i n t h e N e w P r o j e c t D i a l o g bo x . N o w dr a w a t ex t bo x , T e x t 1 . N o w s e t t h e t ex t bo x ’ s
S c r o l l B a r s p r o pe r t y t o B o t h ( 3 ) , a n d s e t i t s M u l t i L i n e pr o p er t y t o T r u e.
A d d t h i s c o d e t o t h e I n i t i a l i z e e v e n t h a n d l er t o st r e t c h t h e t e x t bo x o v e r t h e en t i r e A c t i v eX c o n t r o l
when the control first appears.
Private Sub UserControl1_Initialize( )
Text1.Left=0
T e x t 1 . T o p= 0
Text1.Width=ScaleWidth
T e x t 1 . H e i gh t = S c a l e H e i g h t
End Sub
N o w a d d a K e y P r e s s e v e n t h a n d l e r t o t h e t e x t b o x i n t h e sa m e w a y a s i n a st a n d a r d V I S U A L B A S I C
pr o gr a m
Private Sub Text1_KeyPress ( KeyAscii As Integer )
If KeyAscii=Asc(“L”) Then
KeyAscii=0
Beep
End If
End Sub
N o w t h i s A c t i v e X C o n t r o l w i l l d i s p l a y a t e x t bo x , bu t i t w o n ’ t l et t h e u s er t y p e t h e l et t e r “ L ” . I n t h i s
w a y , w e ’ v e h a n d l e d a n e v e n t f r o m a c o n st i t u en t c o n t r o l i n o u r A c t i v eX C o n t r o l .
A d di n g C o n t r o l s t o a n A c t i v e X C o n t r o l ( A C a l c u l a t o r A c t i v e X C o n t r o l )
H e r e w e ’ l l c r e a t e a n A c t i v e X C o n t r o l t h a t i s r e a l l y a c a l c u l a t o r t h a t t h e u s er c a n u s e t o a d d
numbers
C r e a t e a N e w A c t i v e X P r o j e c t n o w , gi v i n g t h e p r o j ec t n a m e “ C a l c u l a t o r ” u si n g P r o j ec t P r o p er t i e s. In
a d d i t i o n , c h a n g e t h e n a m e o f t h e c o n t r o l t o “ C a l c u l a t o r C o n t r o l ” i n t h e pr o p er t i e s w i n do w . N o w
w h e n w e a d d t h i s c o n t r o l t o a n o t h e r p r o gr a m u s i n g c o m po n e n t s di a l o g, t h i s c o n t r o l w i l l b e l i st e d a s
NetScape COMPUTER ACADEMY
162
“ C a l c u l a t o r ” , a n d w h e n w e c r e a t e c o n t r o l s o f t h i s t y p e i n t h a t p r o gr a m , t h e f i r s t o n e w i l l b e c a l l e d
C a l c u l a t o r C o n t r o l 1 , t h e n e x t C a l c u l a t o r C o n t r o l 2 a n d so o n .
A d d t h e s e c o n t r o l s i n v e r t i c a l l i n e i n t h e A c t i v eX c o n t r o l : a T ex t B o x , T ex t 1 ; a l a be l w i t h c a p t i o n
“ + ” ; a n o t h e r T e x t B o x , T e x t 2 ; a c o m m a n d b u t t o n , C o m m a n d 1 , w i t h c a pt i o n “ = ” ; a n d a t h i r d
TextBox, Text3.
N o w do u b l e c l i c k t h e c o m m a n d bu t t o n t o o p en i t s c l i c k ev en t h a n d l er a n d a d d t h e f o l l o w i n g c o d e
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
Text3.Text=Str(Val (Text1.Text) + Val (Text2.Text) )
End Sub
Tes t i ng a n Ac t iv e X C on t r ol
Y o u c a n t e s t , a n d e v e n d e b u g A c t i v e X c o n t r o l s i n t h e I n t er n e t E x p l o r e r . J u st se l ec t t h e s t a r t i t e m i n
t h e V I S U A L B A S I C R u n m e n u t o s e e t h e A c t i v eX c o n t r o l y o u ’ r e d es i gn i n g a t w o r k .
L e t ’ s s e e a n e x a m pl e , h e r e , w e ’ l l r u n t h e A c t i v eX c o n t r o l w e d e v e l o pe d i n t h e pr e v i o u s t o pi c , t h e
c a l c u l a t o r c o n t r o l . T o o p e n t h i s c o n t r o l i n t h e I n t er n e t E x pl o r e r , s el ec t t h e P r o j ec t m en u ’ s
C a l c u l a t o r P r o p e r t i e s i t e m , o p e n i n g t h e P r o j ec t P r o p er t i e s d i a l o g bo x . C l i c k t h e d e bu g gi n g t a b n o w .
L e a v e t h e e n t r y C a l c u l a t o r C o n t r o l i n t h e S t a r t C o m po n en t bo x , a n d m a k e su r e t h e U s e E x i st i n g
B r o w s e r bo x i s c l i c k e d, t h e n c l i c k o n O K . T o r u n t h e c o n t r o l , j u st s e l ec t t h e R u n m en u ’ s st a r t i t e m
n o w . T h i s r e gi s t e r s o u r c o n t r o l w i t h W i n do w s, c r e a t e s a t em po r a r y H T M L pa g e w i t h t h e c o n t r o l
e m b e dd e d i n i t , a n d s t a r t s t h e I n t e r n e t E x p l o r er . N o w y o u c a n a c c es s t h e A c t i v eX C o n t r o l .
Cr ea t i ng a VIS U AL B AS I C P r o j ec t Gr o u p t o T es t a n Ac ti v eX C on t r ol







C r e a t e a n e w V I S U A L B A S I C s t a n d a r d E X E p r o j ec t , P r o j ec t 1 .
S e l e c t t h e A dd P r o j e c t i t e m i n t h e F i l e m en u
C l i c k t h e E x i s t i n g t a b i n t h e A d d P r o j ec t d i a l o g bo x , s el ec t t h e n a m e o f t h e A c t i v eX
Calculator project, and click OK.
T h i s a d d s t h e C a l c u l a t o r A c t i v e X P r o j ec t t o t h e c u r r en t pr o j ec t a n d c r ea t e s a pr o gr a m g r o u p.
S e l e c t t h e s e l e c t P r o j e c t G r o u p a s i t em i n t h e F i l e m en u , a c c e pt i n g a l l de f a u l t f i l e n a m e s,
i n c l u di n g t h e g r o u p f i l e i t s e l f , g r o u p1 . v bg
C l o s e t h e c a l c u l a t o r p r o j e c t ’ s w i n do w ; t h a t m a k e s t h e c a l c u l a t o r A c t i v eX c o n t r o l a v a i l a bl e t o
u s i n t h e o t h e r pr o j e c t , a n d i t w i l l a p pe a r i n t h e t o o l bo x .
A d d a n e w c a l c u l a t o r c o n t r o l t o F o r m 1 o f P r o j ec t 1 .
S e l e c t t h e R u n m e n u ’ s S t a r t i t e m t o st a r t P r o j ec t 1 .
F o l l o w i n g t h e s e s t e ps c r e a t e s t h e r u n n i n g p r o gr a m . N o w w e’ r e t e st i n g A c t i v eX c o n t r o l s i n V I S U A L
BASIC.
R eg is t er i ng a n Ac t iv eX C on t r ol
T o i n s t a l l a n A c t i v e X C o n t r o l i n W i n d o w s, y o u m u s t r e gi st e r i t w i t h W i n do w s, a n d y o u c a n do t h a t
e i t h e r w i t h t h e s e t u p pr o gr a m o r w i t h t h e W i n d o w r eg s v r 3 2 . ex e u t i l i t y . L e t s s e e a n e x a m p l e. H er e
w e ’ l l s e e h o w t o r e gi s t e r a n A c t i v e X C o n t r o l n a m e d, s a y , a c t i v e x . o c x w i t h w i n do w s. F i r s t , u s e t h e
F i l e m e n u ’ s M a k e a c t i v e x . o c x m e n u i t e m t o c r ea t e a c t i v ex . o c x . N ex t , w e ’ l l u se r e g s v r 3 2 , e x e, w h i c h
i s u s u a l l y f o u n d i n C : \ W i n do w s \ S y s t e m di r ec t o r y , t o r e g i s t er t h a t c o n t r o l w i t h w i n do w s. H er e’ s h o w
to register an ActiveX Control.
C : \ W I N D O W S \ S Y S T E M > r e g s v r 3 2 C : \ V BB B \ A c t i ve X .O C X
A f t e r t h e A c t i v e X c o n t r o l i s r e gi s t e r e d, i t w i l l a p pe a r i n t h e V I S U A L B A S I C C o m po n e n t s D i a l o g B o x
a n d y o u c a n a d d i t t o t h e V I S U A L B A S I C t o o l bo x .
Us in g a Cu s to m A c ti ve X C o n tr o l i n a VI S UAL BAS I C P r o gra m
N o w t h a t w e ’ v e r e g i s t e r e d o u r V I S U A L B A S I C c o n t r o l w i t h W i n do w s. Y o u a d d A c t i v eX c o n t r o l s t h a t
y o u bu i l d t o V I S U A L B A S I C pr o j e c t s j u st a s y o u a d d a n y o t h e r A c t i v eX C o n t r o l s, su c h a s t h e o n e s
that come with VISUAL BASIC.
Lets use an Example.
S t a r t a N e w S t a n da r d E X E pr o j e c t a n d o p en t h e V I S U A L B A S I C C o m po n en t s d i a l o g u s i n g P r o j ec t >
C o m po n e n t s . C l i c k t h e C o n t r o l s t a b a n d c l i c k t h e en t r y l a b el e d C a l c u l a t o r i n t h e C o m po n en t s di a l o g
bo x t o a d d o u r c a l c u l a t o r , a n d c l o s e t h a t di a l o g bo x t o a d d t h e c a l c u l a t o r t o t h e V I S U A L B A S I C
t o o l bo x . N o w dr a w a n e w c a l c u l a t o r A c t i v eX C o n t r o l i n t h e p r o gr a m ’ s m a i n f o r m , c r ea t i n g t h e n ew
c o n t r o l , C a l c u l a t o r C o n t r o l 1 a n d r u n t h e p r o gr a m .
Ad di n g a P r o p er ty t o an Ac ti v eX C on t ro l
W h e n w e a dd o u r n e w c u s t o m c a l c u l a t o r A c t i v eX c o n t r o l t o a V I S U A L B A S I C pr o gr a m , a s w e di d i n
t h e p r e v i o u s t o pi c , y o u c a n s e e t h a t t h e c o n t r o l a l r e a d y h a s qu i t e a n u m b er o f c o n t r o l s bu i l t i n t o i t .
W e c a n a l s o a d d o u r o w n pr o p e r t i e s t o a n A c t i v e X C o n t r o l .
F o r e x a m p l e , h e r e w e ’ l l a d d t w o p r o p e r t i e s t o t h e c a l c u l a t o r A c t i v e X C o n t r o l , O p er a n d1 a n d
O p e r a n d2 , w h i c h w i l l h o l d t h e t e x t i n t h e t o p t w o t ex t bo x es i n t h e C a l c u l a t o r , O p er a n d1 a n d
O p e r a n d2 , w h i c h w e a d d w h e n t h e u s er c l i c k s t h e = bu t t o n . A f t er w e a d d t h o s e p r o p e r t i e s, y o u c a n
a c c e s s t h e m i n pr o gr a m s t h a t m a k e u s e o f o u r A c t i v eX C o n t r o l j u st a s y o u w o u l d a n y o t h er A c t i v eX
C o n t r o l ’ s pr o p e r t i e s . H e r e ’ s a n e x a m pl e w h er e w e s et o p er a n d 1 i n t h e c a l c u l a t o r a f t er y o u a d d a
NetScape COMPUTER ACADEMY
163
c a l c u l a t o r c o n t r o l , C a l c u l a t o r C o n t r o l 1 , t o a s t a n d a r d V I S U A L B A S I C p r o gr a m ; a s y o u c a n s ee , t h i s i s
j u s t l i k e s e t t i n g t h e t e x t i n a t e x t bo x : .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
C a l c u l a t o r C o n t r o l 1 . O p e r a n d1 = 1 0 0
End Sub
T o a d d t h e O p e r a n d1 a n d O p e r a n d2 pr o p er t i e s t o t h e C a l c u l a t o r A c t i v eX P r o j ec t , o p en t h a t P r o j ec t
i n V I S U A L B A S I C , o p e n t h e c o d e w i n d o w s, a n d s el ec t t h e A d d P r o c e du r e bo x . P u t t h e n a m e o f t h e
f i r s t p r o p e r t y , O p e r a n d 1 , i n t h e N a m e bo x , a n d s el ec t t h e O p t i o n bu t t o n l a b el e d P r o p er t y , t h en
c l i c k o n O K . D o i n g s o c r e a t e s t w o pr o c e du r e s, a L et a n d G et pr o c e du r e f o r t h e pr o p e r t y . W h en
O p e r a n d1 i s s e t i n c o de o r b y V I S U A L B A S I C , t h e O p er a n d1 L e t pr o c e d u r e i s c a l l e d; w h en o t h er
c o d e o r V I S U A L B A S I C w a n t s t o r e t r i ev e t h e c u r r en t v a l u e o f O pe r a n d1 , t h e O o p er a n d1 G e t
pr o c e du r e i s c a l l e d. T h a t m e a n s t h a t w e r et u r n t h e t ex t i n t h e t w o t e x t bo x e s c o r r e spo n d i n g t o t h e
c a l c u l a t o r ’ s o p e r a n ds i n t h e G e t p r o c e du r es .
P u bl i c P r o p e r t y G e t O p e r a n d1 ( ) A s V a r i a n t
O p e r a n d1 = T e x t 1 . T e x t
End Property
P u bl i c P r o p e r t y G e t O p e r a n d2 ( ) A s V a r i a n t
O p e r a n d2 = T e x t 2 . T e x t
End Property
A n d w e s e t t h e t e x t i n t h e o pe r a n d t e x t bo x e s f r o m t h e v a l u e s pa s s ed t o u s i n t h e L et P r o c ed u r e s
P u bl i c P r o p e r t y L e t O p e r a n d1 ( B y V a l v N ew V a l u e A s V a r i a n t )
Text1.Text=vNewValue
End Property
P u bl i c P r o p e r t y L e t O p e r a n d2 ( B y V a l v N ew V a l u e A s V a r i a n t )
Text2.Text=vNewValue
End Property
Now, when you create a control of this type in anothe r VISUAL BASIC program, you’ll see that the
n e w c o n t r o l h a s t w o n e w p r o p e r t i e s : O pe r a n d 1 a n d O p er a n d2 . Y o u c a n s et t h o s e pr o p er t i e s i n t h e
pr o p e r t i e s w i n do w a t d e s i gn t i m e .
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
C a l c u l a t o r C o n t r o l 1 . O p e r a n d1 = 1 0 0
End Sub
H o w e v e r , t h e r e i s a pr o bl e m . W h e n y o u s e t t h e O p er a n d1 a n d O p er a n d 2 pr o p er t i e s a t d e si gn t i m e
i n a pr o gr a m t h a t h a s a c a l c u l a t o r c o n t r o l e m b ed d e d i n i t a n d t h en r u n t h e pr o gr a m , n o t h i n g
a p p e a r s i n t h e o p e r a n d t e x t bo x e s . I t t u r n s o u t t h a t w e h a v e t o m a k e t h e pr o p er t i e s p e r s i st en t i f
w e w a n t t o l e t t h e u s e r s e t t h e m a t d e si gn t i m e.
Ma ki ng Ac ti v eX C on t ro l P r o pe r ti es P e rsis t en t (P r op e r ty Ba g O b je c t)
T h e r e i s a w a y o f s t o r i n g pr o p e r t y s et t i n g s i n A c t i v eX c o n t r o l s t h a t u s e s t h e P r o pe r t y B a g O bj ec t .
F o r e x a m p l e , i f y o u w a n t t h e pr o p e r t y s e t t i n gs t h e u s er m a k e s i n y o u r c o n t r o l a t d e si gn t i m e t o
a p p l y w h e n t h e pr o gr a m r u n s , y o u m u st m a k e t h e pr o p er t i e s p er si s t e n t . A p e r s i st en t pr o p er t y i s
o n e w h o s e v a l u e i s s t o r e d a n d r e s t o r e d a s n e e d e d.
L e t ’ s s e e a n e x a m pl e . H e r e , w e ’ l l m a k e t h e O p er a n d1 a n d O p er a n d2 pr o p er t i e s o f t h e c a l c u l a t o r
A c t i v e X c o n t r o l w e ’ v e d e v e l o p e d i n t h e pr e v i o u s f ew t o p i c s p er s i s t en t . T o do t h a t , w e f i r st c a l l t h e
V I S U A L B A S I C P r o p e r t y C h a n g e d pr o c e du r e w h en O p er a n d1 o r O p er a n d2 i s c h a n g e d i n i t s L e t
pr o c e du r e . Y o u p a s s t h e n a m e o f t h e pr o p er t y t h a t ’ s be en c h a n g e d t o P r o p er t y C h a n g e d l i k e t h i s
P u bl i c P r o p e r t y L e t O p e r a n d1 ( B y V a l v N ew V a l u e A s V a r i a n t )
Text1.Text=vNewValue
P r o p e r t y C h a n g e d “ O p e r a n d1 ”
End Property
P u bl i c P r o p e r t y L e t O p e r a n d2 ( B y V a l v N ew V a l u e A s V a r i a n t )
Text2.Text=vNewValue
P r o p e r t y C h a n g e d “ O p e r a n d2 ”
End Property
W h e n y o u c a l l P r o p e r t y C h a n g e d, t h e c o n t r o l c r e a t e s a W r i t e P r o p er t i es e v en t , a n d y o u c a n w r i t e t h e
n e w s e t t i n gs o f pr o p e r t i e s t o t h e P r o p e r t y B a g o bj ec t , w h i c h s t o r e s t h e m o n di s k . H e r e ’ s h o w y o u
u s e W r i t e P r o pe r t y .
U s e r C o n t r o l . W r i t e P r o p e r t y ( P r o pe r t y n a m e, V a l u e [ , d ef a u l t ] )
F o r E x a m pl e , t o w r i t e t h e c u r r e n t s e t t i n g s o f t h e c a l c u l a t o r ’ s o p er a n ds , w e a d d t h i s c o d e t o t h e
W r i t e P r o p e r t i e s e v e n t h a n dl e r .
NetScape COMPUTER ACADEMY
164
P r i v a t e S u b U s e r C o n t r o l 1 _ W r i t e P r o pe r t i e s ( P r o p B a g A s P r o p er t y B a g )
P r o pB a g. W r i t e P r o p e r t y “ O p e r a n d1 ” , T e x t 1 . T e x t
P r o pB a g. W r i t e P r o p e r t y “ O p e r a n d2 ” , T e x t 2 . T e x t
End Sub
W h e n t h e c o n t r o l n e e d s t o r e a d i t s s t o r ed pr o p er t i e s, i t c r e a t e s a R e a d P r o p er t i e s ev en t , a n d i n t h a t
e v e n t ’ s h a n d l e r , w e c a n u s e R e a dP r o pe r t y .
U s e r C o n t r o l . R e a dP r o pe r t y ( pr o p e r t y n a m e [ , d ef a u l t ] )
H e r e ’ s h o w w e u s e R e a d P r o p e r t y t o r e a d s t o r e d pr o p er t i e s.
P r i v a t e S u b U s e r C o n t r o l _ R e a d P r o p e r t i e s ( P r o pB a g A s P r o p er t y B a g )
T e x t 1 . T e x t = P r o pB a g. R e a dP r o p er t y ( “ O p er a n d1 ” )
T e x t 2 . T e x t = P r o pB a g. R e a dP r o p er t y ( “ O p er a n d2 ” )
End Sub
N o w t h e O pe r a n d 1 a n d O p e r a n d2 pr o p er t i e s a r e pe r si st en t .
B e s i d e s t h e W r i t e P r o p e r t i e s a n d R e a d P r o p er t i e s e v en t s, u s er c o n t r o l s a l so h a v e I n i t i a l i z e ev e n t s
t h a t o c c u r w h e n t h e c o n t r o l i s o p e n e d a t d e si g n t i m e a n d T er m i n a t e e v en t s t h a t o c c u r w h en y o u
s w i t c h t o r u n t i m e f r o m d e s i gn t i m e . H er e’ s t h e o r d er o f e v en t s t h a t o c c u r w h e n y o u sw i t c h f r o m
d e s i gn t i m e t o r u n t i m e .



WriteProperties
Terminate
ReadProperties
A n d h e r e ’ s t h e o r d e r o f e v e n t s t h a t o c c u r w h en y o u sw i t c h f r o m r u n t i m e t o d es i gn t i m e.


Initialize
ReadProperties
Ad di n g a M e t h od t o an Ac t iv e X C o n tr ol
Y o u a dd a m e t h o d t o a n A c t i v e X c o n t r o l i n m u c h t h e s a m e w a y y o u a d d a pr o p er t y , w i t h t h e T o o l
m e n u ’ s A d d P r o c e du r e d i a l o g bo x .
L e t ’ s s e e a n e x a m p l e . I n t h i s c a s e , w e’ l l a dd a n ew m e t h o d t o t h e c a l c u l a t o r A c t i v eX c o n t r o l t h a t
w e ’ v e d e v e l o pe d i n t h e pr e v i o u s f e w t o p i c s: t h e C a l c u l a t e m e t h o d. W h en t h e c o n t r o l ’ s C a l c u l a t e
m e t h o d i s c a l l e d, w e c a n a d d t h e v a l u e s i n t h e t o p t w o t e x t bo x e s i n t h e c a l c u l a t o r a n d di s pl a y t h e
r e s u l t i n t h e bo t t o m t e x t bo x .
O p e n t h e c a l c u l a t o r A c t i v e X p r o j e c t i n V I S U A L B A S I C a n d o p en t h e c o d e w i n do w a s w e l l . N e x t ,
s e l e c t t h e A d d P r o c e du r e i t e m i n T o o l s m e n u , o p en t h e a d d pr o c e du r e d i a l o g. G i v e t h i s n e w m e t h o d
the name Calculate.
S e l e c t t h e e n t r y l a b e l e d S u b t o m a k e o u r n ew m e t h o d a S u b pr o c e du r e, a n d m a k e s u r e t h e e n t r y
l a b e l e d P u bl i c i n t h e S c o p e bo x i s s e l ec t e d. T h en c l i c k o n O K t o c l o s e t h e A dd P r o c ed u r e d i a l og
bo x . I f y o u h a v e a r gu m e n t s y o u w a n t pa s s e d t o t h i s m et h o d, j u s t a d d t h em t o t h e a r gu m en t l i st
b e t w e e n t h e p a r a n t h e s e s a s y o u w o u l d f o r a n y su br o u t i n e. I n t h i s c a se , w e w a n t t o c a l c u l a t e t h e
s u m o f t h e t w o o p e r a n d s n o w i n T e x t 1 a n d T ex t 2 i n t h i s m et h o d, st o r i n g t h e su m i n T ex t 3 , a n d w e
do t h a t w i t h t h i s c o d e
P u bl i c S u b C a l c u l a t e ( )
T e x t 3 . T e x t = S t r ( V a l ( T e x t 1 . T ex t ) + V a l ( T ex t 2 . T e x t ) )
End Sub
N o w c r e a t e t h e c a l c u l a t o r c o n t r o l a n d em b e d i t i n a n o t h e r p r o gr a m a s, sa y , C a l c u l a t o r C o n t r o l 1 .
W h e n y o u do , y o u c a n u s e t h e c o n t r o l ’ s C a l c u l a t e m et h o d l i k e t h i s
CalculateControl1.Calculate
F o r E x a m pl e , A d d a N e w bu t t o n w i t h t h e C a p t i o n C a l c u l a t e t o t h e P r o j ec t a n d a d d t h e f o l l o w i n g
c o d e t o c o m m a n d bu t t o n ’ s C l i c k e v e n t
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
CalculatorControl1.Calculate
End Sub
W h e n t h e U s e r c l i c k s t h e C a l c u l a t e b u t t o n , w e ex ec u t e t h e C a l c u l a t e C o n t r o l ’ s C a l c u l a t e m e t h o d.
N o t e : - A n o t h e r w a y t o s e t u p m e t h o d s i n a n A c t i v eX C o n t r o l i s t o u se t h e A c t i v eX C o n t r o l I n t er f a c e
wizard in the Add-Ins menu.
Ad di n g a n Ev e n t to an Ac t iv e X C o n tr ol
A c t i v e X C o n t r o l s c a n s u p po r t e v e n t s , o f c o u r s e, a n d t h e c u s t o m A c t i v e X c o n t r o l s y o u d e si gn w i t h
V I S U A L B A S I C a r e n o e x c e pt i o n . Y o u a d d e v en t s m u c h l i k e y o u a d d pr o p er t i e s a n d m e t h o ds , w i t h
NetScape COMPUTER ACADEMY
165
A d d P r o c e du r e i t e m i n t h e T o o l s m e n u . A f t er y o u c r ea t e a n ew e v en t , i t ’ s u p t o y o u t o r a i se t h a t
e v e n t w i t h t h e R a i s e E v e n t m e t h o d.
L e t ’ s s e e a n e x a m pl e . H e r e , w e ’ l l a d d a n e v e n t n a m e d C a l c u l a t o r C l i c k t o t h e c a l c u l a t o r A c t i v eX
c o n t r o l w e ’ v e d e v e l o pe d i n t h e pr e v i o u s f ew t o pi c s. W h en t h e u s er c l i c k s t h e C a l c u l a t o r c o n t r o l ,
this event, CalculatorClick, will occur.
T o a d d t h i s e v e n t t o t h e C a l c u l a t o r A c t i v eX C o n t r o l , o p en t h e c a l c u l a t o r A c t i v eX pr o j ec t i n V I S U A L
B A S I C , o p e n t h e c o d e w i n do w , s e l e c t A dd P r o c e du r e i n T o o l s m en u , t y p e t h e n a m e o f t h e e v en t
“ C a l c u l a t o r C l i c k ” i n t h e n a m e bo x , s e l ec t t h e o p t i o n bu t t o n l a b e l e d E v en t t o i n d i c a t e t h a t w e w a n t
t o c r e a t e a n e w e v e n t , a n d c l i c k O K . T h i s c r e a t e s t h e n ew e v en t b y d ec l a r i n g i t i n t h e A c t i v eX
control’s General section.
I f y o u w a n t t o a d d a r gu m e n t s t o t h i s e v e n t ’ s h a n dl e r pr o c e du r e s, j u st l i st t h em i n t h e p a r a n t h e s es
a s y o u w o u l d f o r a n y pr o c e du r e .
Y o u c a n m a k e t h i s e v e n t a c t i v e u s i n g R a i se E v en t m et h o d. I n t h i s c a s e, t h a t ’ s p a r t i c u l a r l y ea sy w e ’ l l j u s t u s e t h e u s e r c o n t r o l ’ s C l i c k ev en t . A d d a C l i c k e v en t h a n dl e r t o t h e c a l c u l a t o r A c t i v e X
control now.
Private Sub UserControl_Click ( )
RaiseEvent CalculatorClick
End Sub
N o t e : Y o u c a n p a s s a r g u m e n t s t o t h e ev en t s j u st a s y o u w o u l d p a ss a r g u m en t s t o a n y pr o c e du r e
R a i s e E v e n t e v e n t n a m e ( [ a r gu m en t l i s t ] )
N o w w h e n y o u e m b e d t h e c a l c u l a t o r c o n t r o l i n a V I S U A L B A S I C p r o gr a m , y o u ’ l l f i n d t h a t i t h a s a
CalculatorClick that you can add text to
Private Sub CalculatorControl1_CalculatorClick ( )
CalculatorControl1.Calculate
End Sub
N o t e : A n o t h e r w a y t o s e t u p e v e n t s i n A c t i v eX c o n t r o l i s t o u s e t h e A c t i v eX c o n t r o l i n t e r f a c e
wizard in the Add-Ins menu.
Ad di n g D es ig n T i me P ro p er t y P a ge s
Y o u c a n a d d pr o p e r t y p a g e s t o y o u r c o n t r o l w i t h V I S U A L B A S I C pr o p er t y pa g e w i z a r d i n t h e A d d - I n s
m e n u . I f t h a t w i z a r d do e s n o t a pp e a r i n y o u r A d d - I n s m en u , s el ec t t h e A d d - I n m a n a ge r i t e m i n t h e
A d d A d d - I n s m e n u a n d a d d t h e P r o pe r t y P a g e w i z a r d. A f t er y o u ’ v e a d d e d p r o pe r t i es t o a n A c t i v eX
C o n t r o l , y o u c a n u s e t h e pr o p e r t y pa g e w i z a r d t o a d d pr o p er t y pa g e s f o r t h o s e pr o p er t i e s.
L e t ’ s s e e a n e x a m pl e . H e r e , w e ’ l l a d d a s et o f p r o p er t y p a ge s f o r o u r A c t i v eX c a l c u l a t o r c o n t r o l t h a t
w e ’ v e d e v e l o p e d. S t a r t t h e P r o p e r t y P a g e w i z a r d by s el ec t i n g t h a t i t em i n t h e A d d - I n s m e n u n o w ; a
w e l c o m e s c r e e n w i l l a p p e a r . C l i c k t h e N e x t bu t t o n u n t i l y o u g e t t o t h e S el ec t T h e P r o p er t y P a g e s
S c r e e n . H e r e ’ s w h e r e y o u s e t u p t h e pr o p er t y p a g e s w i t h t h e A d d bu t t o n a n d n a m e t h em w i t h t h e
R e n a m e b u t t o n . I n t h i s c a s e , t h e c a l c u l a t o r c o n t r o l o n l y h a s t w o pr o p er t i e s, O p er a n d1 a n d
O p e r a n d2 , a n d w e ’ l l s e t u p a s e p a r a t e p r o pe r t y pa g e f o r e a c h . C l i c k n ex t t o go t o t h e n e x t sc r e en ,
A d d P r o p e r t i e s f r o m t h e l i s t o f a l l t h e a v a i l a b l e pr o p er t i e s o n t h e l ef t t o t h e p r o p e r t y pa g e s y o u ’ v e
s e t u p. J u s t c l i c k t h e t a b m a t c h i n g t h e p r o pe r t y p a g e y o u w a n t t o a d d a pr o p e r t y t o , s el ec t t h e
pr o p e r t y i n t h e l i s t bo x a t l e f t , a n d c l i c k t h e r i g h t po i n t i n g a r r o w bu t t o n t o a d d t h a t pr o p e r t y t o t h e
pr o p e r t y p a g e . I n t h i s w a y y o u c a n o r ga n i z e w h i c h pr o p er t y a p p e a r s o n w h i c h p a g e.
F i n a l l y , c l i c k N e x t t o go t o t h e P r o p e r t y P a g e w i z a r d s sc r e en l a b el e d F i n i s h e d a n d c l i c k t h e F i n i sh
B u t t o n . I n t h i s c a s e , t h i s c r e a t e s t w o n ew p r o p er t y p a g e do c u m en t s, P r o p er t y P a g e1 . p a g a n d
P r o p e r t y P a g e 2 . p a g, f o r y o u r c o n t r o l , a n d a d d s t h e m t o y o u r pr o j ec t . S a v e t h o s e f i l e s a n d r eb u i l d
your control.
N o w e m b e d o u r A c t i v e X c o n t r o l i n a n o t h er pr o gr a m a n d o p en i t s pr o p er t y p a g es a t d es i gn t i m e.
ActiveX Documents
A c t i v e X D o c u m e n t s a r e n e w t o m a n y p r o gr a m m e r s, bu t t h e i de a i s s i m p l e. I n st e a d o f r e st r i c t i n g
y o u r s e l f t o a s i n g l e c o n t r o l i n a W e b pa g e, n o w y o u c a n c r e a t e t h e w h o l e p a ge. A c t i v eX do c u m e n t s
c a n i n c l u de a s m a n y c o n t r o l s a s a n y o t h e r V I S U A L B A S I C pr o gr a m , a n d a s w e’ l l se e w h en w e st a r t
c r e a t i n g A c t i v e X do c u m e n t s , t h e r e s u l t i s j u st l i k e r u n n i n g a V I S U A L B A S I C pr o gr a m i n y o u r W e b
br o w s e r o r o t h e r a p p l i c a t i o n .
V I S U A L B A S I C A c t i v e X D o c u m e n t s a r e b a s ed o n t h e V I S U A L B A S I C U s er D o c u m en t o b j ec t . W h en y o u
c r e a t e a n A c t i v e X do c u m e n t , y o u s a v e i t w i t h t h e ex t en s i o n . D O B . V I S U A L B A S I C u s es t h a t D O B f i l e
t o c r e a t e t h e E X E o r D L L f i l e t h a t h o l d s t h e a c t u a l c o d e f o r t h e A c t i v eX do c u m en t . I n a d di t i o n ,
V I S U A L B A S I C pr o du c e s a s p e c i f i c a t i o n f i l e, w i t h t h e e x t en si o n . V B D , t h a t d e sc r i b e s t h e A c t i v eX
do c u m e n t , a n d i t ’ s t h a t f i l e t h a t y o u a c t u a l l y o p en i n t h e h o st a p pl i c a t i o n , su c h a s t h e M i c r o S o f t
I n t e r n e t E x pl o r e r . W i t h A c t i v e X do c u m e n t s, y o u c a n l et u s er s s a v e da t a u si n g P r o p er t y B a g pr o p e r t y
that data is stored in the VBD file.
Cr ea t i ng a n Ac t iv e X Do cu m en t
NetScape COMPUTER ACADEMY
166
T o c r e a t i n g a n e w A c t i v e X do c u m e n t , o p en t h e V I S U A L B A S I C N ew P r o j ec t D i a l o g , s el ec t t h e
A c t i v e X D o c u m e n t E X E e n t r y , a n d c l i c k o n O K . T h i s c r e a t e s a n ew A c t i v eX do c u m en t i n V I S U A L
BASIC.
T o g e t o u r s t a r t w i t h A c t i v e X do c u m e n t s, j u s t d o u bl e - c l i c k t h e do c u m en t a n d a dd t h i s c o d e t o t h e
I n i t i a l i z e pr o c e du r e t h a t o p e n s t o d r a w a s e t o f c r i ss - c r o s si n g l i n e s a n d a bl a c k b o x i n t h e c en t e r o f
t h e do c u m e n t .
Private Sub
Line
Line
Line
End Sub
UserDocument_Initialize ( )
( 0 , 0 ) – ( S c a l e W i d t h , S c a l eH e i gh t )
( 0 , S c a l e H e i gh t ) – ( S c a l eW i d t h , 0 )
( S c a l e W i dt h / 4 , S c a l e H e i gh t / 4 ) – ( 3 * S c a l eW i d t h / 4 , _
3 * S c a l e H e i gh t / 4 ) , , B F
T h i s i s t h e pr o c e du r e t h a t ’ s r u n w h e n t h e A c t i v e X D o c u m en t i s f i r st o p en e d. B ec a u s e w e ’ r e d r a w i n g
f r o m t h e I n i t i a l i z e e v e n t h a n dl e r , s e t t h e do c u m en t ’ s A u t o R e dr a w p r o p e r t y t o T r u e.
L e t s s e e o u r n e w A c t i v e X D o c u m e n t a t w o r k i n a W e b B r o w s er . S e l ec t t h e P r o j ec t 1 P r o pe r t i es i t em
i n t h e P r o j e c t m e n u , a n d c l i c k t h e D e bu g gi n g t a b i n t h e P r o j ec t P r o p e r t i e s d i a l o g bo x t h a t o p en .
M a k e s u r e t h a t t h e o pt i o n bu t t o n l a b e l e d S t a r t C o m po n e n t i s s el ec t e d a n d t h e bo x l a b e l ed U s e
E x i s t i n g B r o w s e r i s c h e c k e d. T h e n c l o s e t h e d i a l o g bo x by c l i c k i n g O K . R u n t h e do c u m e n t w i t h t h e
start item in the Run menu.
S t a r t i n g t h e do c u m e n t l o a ds t h e do c u m en t s s pe c i f i c a t i o n , a V B D f i l e, i n t o t h e br o w s e r , w h i c h r u n s
t h e do c u m e n t ’ s E X E f i l e o r a dd s t h e do c u m en t D L L f i l e t o i t s o w n p r o c es s.
Ac ti ve X D oc u me n t D L L s Vs. EX Es
Y o u c a n c r e a t e bo t h A c t i v e X do c u m en t E X E s a n d D L L s. H e r e’ s t h e di f f e r en c e , i f a n A c t i v eX
D o c u m e n t i s w r i t t e n a s a n e x e c u t a b l e f i l e ( E X E f i l e ) , i t i s a n o u t - o f pr o c e ss s e r v er a n d r u n s i n i t s
o w n p r o c e s s ; i f i t h a s b e e n i m pl e m e n t e d a s a dy n a m i c l i n k l i br a r y ( D L L ) , i t i s a n i n - p r o c es s s e r v er
a n d r u n s i n t h e s a m e p r o c e s s a s t h e c l i e n t a p pl i c a t i o n .
A l t h o u g h A c t i v e X D o c u m e n t s a r e u su a l l y bu i l t a s E X E pr o j ec t s, t h e ben e f i t o f D L L s i s t h a t
a p p l i c a t i o n s t h a t u s e i n - pr o c e s s s e r v er s u s u a l l y r u n f a s t e r t h a n t h o s e t h a t u s e o u t - o f - p r o c e ss
s e r v e r s b e c a u s e t h e a p pl i c a t i o n do e sn ’ t h a v e t o c r o s s pr o c e ss bo u n d a r i e s t o u s e a n o b j ec t ’ s
pr o p e r t i e s , m e t h o d s , a n d e v e n t s . I n a dd i t i o n , t h e p er f o r m a n c e o f a n i n - pr o c e s s c o m po n e n t , o r D L L
f i l e s u r p a s s e s t h a t o f t h e s a m e c o m po n en t c o m pi l ed a s a n E X E . A l so , m u l t i pl e pr o g r a m s a c c e s si n g
t h e s a m e E X E c a n o v e r w r i t e gl o b a l d a t a , bu t t h a t do e sn ’ t h a p p en i f t h e y ea c h h a v e t h e i r o w n i n pr o c e s s s e r v e r .
In -P r oc ess Vs. Ou t - Of -P ro ce ss Co m p on e n ts
I f a n A c t i v e X C o m po n e n t h a s b e e n i m p l e m en t e d a s pa r t o f a n ex ec u t a b l e f i l e ( E X E f i l e) , i t i s a n
o u t - o f - pr o c e s s s e r v e r a n d r u n s i n i t s o w n p r o c e ss. I f i t h a s b e en i m p l em en t e d a s a d y n a m i c l i n k
l i br a r y ( D L L f i l e ) , i t i s a n i n - pr o c e s s s er v er a n d r u n s i n t h e sa m e pr o c e s s a s t h e c l i en t a pp l i c a t i o n .
I f y o u r A c t i v e X c o m po n e n t i s a n o u t - o f - pr o c e s s s er v er , i t i s a n E X E f i l e, a n d c a n r u n st a n d a l o n e.
A p pl i c a t i o n s t h a t u s e i n - pr o c e s s s e r v er s u su a l l y r u n f a s t e r t h e n t h o s e t h a t u s e o u t - o f - pr o c e ss
s e r v e r s b e c a u s e t h e a p pl i c a t i o n do e sn ’ t h a v e t o c r o s s pr o c e ss bo u n d a r i e s t o u s e a n o b j ec t ’ s
pr o p e r t i e s , m e t h o d s , a n d e v e n t s .
T h e r e a r e a f e w r e a s o n s w h y y o u m a y w a n t t o c r e a t e A c t i v eX do c u m en t a s a n i n - p r o c es s c o m po n e n t
( D L L f i l e ) . T h e pe r f o r m a n c e o f a n i n - pr o c e s s c o m po n en t su r p a s s e s t h a t o f t h e sa m e c o m po n en t
c o m p i l e d a s a n E X E . I n a d di t i o n , m u l t i pl e p r o g r a m s a c c e s si n g t h e sa m e E X E c a n o v er w r i t e gl o ba l
da t a ; t h a t do e s n ’ t h a p p e n i f t h e y e a c h h a v e t h e i r o w n i n - pr o c e s s s er v er .
W i t h a l l t h e d i f f e r e n t t y p e s o f A c t i v e X c o m po n e n t s t o c h o o s e f r o m , h o w do y o u d ec i d e w h i c h t y p e
o f c o m po n e n t y o u w a n t t o c r e a t e ? T a k e a l o o k a t t r i b u t e t h i s l i st :





T o bu i l d a n i n v i s i b l e c o m po n e n t t h a t p r o v i d es r o u t i n e s i n c o d e t h a t y o u c a n c a l l , bu i l d a
c o d e c o m po n e n t ( A c t i v e X E X E o r a n A c t i v eX D L L )
T o bu i l d a c o m po n e n t t h a t c a n r u n i n t h e sa m e p r o c e s s w i t h y o u r a p p l i c a t i o n , bu i l d a n
ActiveX DLL.
T o bu i l d a c o m po n e n t t h a t c a n s er v e m u l t i p l e a pp l i c a t i o n s a n d c a n r u n o n a r em o t e
c o m pu t e r , b u i l d a n A c t i v e X E X E .
T o bu i l d a v i s i b l e c o m po n e n t t h a t c a n b e dr o p p e d i n t o a n a pp l i c a t i o n a t t r i bu t e d e si gn t i m e,
bu i l d a n A c t i v e X E X E
T o b u i l d a v i s i b l e c o m p o n e n t t h a t c a n t a k e o v e r a n a pp l i c a t i o n w i n do w a t t r i bu t e r u n t i m e,
bu i l d a n A c t i v e X D o c u m e n t
Ad di n g c on t r ols t o a n Ac t iv eX Do cu m e n t
U s i n g A c t i v e X do c u m e n t s , y o u c a n di s pl a y en t i r e f o r m s i n W e b b r o w s e r s. T o se e t h i s a t w o r k , w e’ l l
c r e a t e a g a m e e x a m p l e . T h i s g a m e w i l l l et u s er c l i c k bu t t o n s t o d i s p l a y a l t e r n a t e X ’ s a n d O ’ s.
W o r k i n g w i t h m u l t i pl e c o n t r o l s i n t h i s w a y w i l l d em o n st r a t e h o w t o d i s pl a y en t i r e pr o gr a m s a s W e b
Pages.
NetScape COMPUTER ACADEMY
167
C r e a t e a n e w A c t i v e X D o c u m e n t ( E X E o r D L L ) , a n d a dd n i n e c o m m a n d bu t t o n s t o i t a r r a n g e d i n a
3 X 3 gr i d i n c l a s s i c t i c - t a c - t o e f a s h i o n . G i v e e a c h bu t t o n s a m e n a m e C o m m a n d C l e a r e a c h bu t t o n s
C a pt i o n pr o p e r t y , W h e n V I S U A L B A S I C a sk s t o C r e a t e C o n t r o l A r r a y , C l i c k Y E S .
T o a l t e r n a t e X ’ s a n d O ’ s a s t h e u s e r c l i c k s bu t t o n s, w e’ l l n e ed a B o o l e a n f l a g, w h i c h w e’ l l c a l l
bl n X F l a g. I f t h i s f l a g i s T r u e ,
t h e n ex t c a pt i o n t o s et w i l l b e
“ X ” ; o t h er w i s e, “ O ” . A d d t h e
d e c l a r a t i o n o f bl n X F l a g t o t h e G e n e r a l S ec t i o n .
D i m bl n X F l a g A s B o o l e a n
W e a l s o i n i t i a l i z e b l n X F l a g t o T r u e w h en t h e do c u m en t f i r st l o a d s b y a d d i n g t h i s c o d e t o t h e
Initialize event.
Private Sub UserDocument_Initialize ( )
B l n X F l a g= T r u e
End Sub
N o w w h e n t h e u s e r c l i c k s a bu t t o n , w e a l t er n a t e be t w ee n s et t i n g t h e c l i c k e d b u t t o n s c a pt i o n s t o
“X” and “O” this way.
P u bl i c C o m m a n d_ C l i c k ( I n d e x A s I n t e g er )
If blnXFlag Then
C o m m a n d ( I n de x ) . C a pt i o n = “ X ”
Else
C o m m a n d ( I n de x ) . C a pt i o n = “ O ”
End If
bl n X F l a g = N o t bl n X F l a g
End Sub
A t t h e e n d o f t h e c o d e , w e t o g gl e t h e st a t e o f bl n X F l a g f o r t h e n ex t t i m e t h e u s er c l i c k s a bu t t o n .
L e t s s e e o u r n e w A c t i v e X D o c u m e n t ga m e a t w o r k . S el ec t P r o j ec t 1 > P r o p er t i e s f r o m P r o j ec t m en u ,
c l i c k t h e D e bu g gi n g t a b i n t h e P r o j e c t P r o p e r t i e s di a l o g bo x t h a t o p en s. M a k e s u r e t h a t t h e o p t i o n
bu t t o n l a b e l e d S t a r t C o m po n e n t i s s e l ec t e d a n d t h e bo x l a b el e d U s e E x i st i n g B r o w s er i s c h ec k e d.
T h e n c l o s e t h e di a l o g bo x b y c l i c k i n g O K . R u n t h e g a m e w i t h t h e S t a r t i t em i n t h e R u n m en u .
A s y o u c a n s e e , t h e e n t i r e p r o gr a m a p p ea r s i n I n t e r n et E x p l o r er . T h e u se r c a n a l t er n a t e bu t t o n
c a p t i o n s j u s t by c l i c k i n g t h e bu t t o n s .
W e ’ l l s a v e t h e do c u m e n t a s a c t i v e x t i c t a c t o e. d o b, a n d t h e pr o j ec t a s a c t i v e x t i c t a c t o e. v b p. T h e
d e f a u l t n a m e f o r t h e d o c u m e n t i s U s er D o c u m e n t 1 , a s y o u c a n se e i n t h e V I S U A L B A S I C P r o pe r t i e s
w i n do w ; i f y o u w a n t t o u s e a di f f e r e n t n a m e f o r t h e do c u m en t , s et i t i n t h e P r o pe r t i e s w i n d o w .
W e ’ l l c h a n g e t h e do c u m e n t n a m e t o a c t i v e x t i c t a c t o e do c . W h en w e c r e a t e t h e V B D s p ec i f i c a t i o n f i l e
f o r t h i s do c u m e n t , t h e n , t h a t f i l e w i l l be a c t i v ex t i c t a c t o e do c . v b d, a n d t h a t ’ s t h e f i l e t o o p en i n y o u r
Web browser.
Ha n dl in g C on s ti t ue n t Co n t ro l E v en ts in a n Ac t iv eX Do cu m e n t
A f t e r y o u a dd c o n t r o l s t o a n A c t i v e X D o c u m e n t , h o w do y o u h a n d l e t h e e v en t s t h o se c o n t r o l s
c r e a t e ? T h a t ’ s t h e b e a u t y o f i t a l l - y o u h a n d l e s u c h ev en t s j u s t a s y o u w o u l d i n a S t a n d a r d V I S U A L
B A S I C E X E pr o g r a m , s o d e s i gn i n g a n A c t i v eX D o c u m en t i s r e a l l y j u s t l i k e d e si gn i n g a st a n d a r d f o r m
in VISUAL BASIC.
Tes t i ng a n Ac t iv e X Do cu m en t
T o t e s t a n A c t i v e X D o c u m e n t a n d e v e n D e bu g i t w h i l e i n d e si gn pr o c es s, j u s t f o l l o w t h e s e s t ep s.






S e l e c t t h e P r o j e c t n a m e P r o p e r t i e s i t em f r o m P r o j ec t M e n u
C l i c k t h e D e bu gg i n g t a b i n t h e P r o j ec t > P r o pe r t i e s D i a l o g
M a k e s u r e t h a t o p t i o n b u t t o n l a b el e d S t a r t C o m po n en t i s s el ec t e d
T o u s e y o u r e x i s t i n g br o w s e r , m a k e su r e t h e bo x l a b el e d ‘ U s e E x i st i n g B r o w s er ’ i s c h ec k e d.
C l o s e t h e d i a l o g bo x b y c l i c k i n g o n O K
S t a r t t h e do c u m e n t w i t h t h e s t a r t i t em i n t h e R u n m en u .
W h e n y o u f o l l o w t h e s e s t e p s , V I S U A L B A S I C c r e a t e s a V B D f i l e f o r y o u r do c u m e n t a n d o p en s t h a t
file in your Web Browser.
Cr ea t i ng Ac ti v eX D o cu m en ts t ha t Ru n O u tsi d e V IS UAL BAS I C
A c t i v e X D o c u m e n t s n e e d w i t h e r a n E X E o r D L L f i l e a n d a V B D f i l e. W h en y o u c r ea t e a n A c t i v eX
Document, you save it with the extension .DOB. VISUAL BASIC uses DOB file to create the EXE or
D L L f i l e t h a t h o l d s t h e a c t u a l c o d e f o r t h e A c t i v eX D o c u m e n t . T o C r ea t e t h e E X E o r D L L f i l e, j u st
s e l e c t M a k e P r o j e c t n a m e . E X E f r o m F i l e M en u .
I n a d di t i o n V I S U A L B A S I C p r o du c e s t h e s p ec i f i c a t i o n f i l e, w i t h t h e ex t e n si o n . v b d, t h a t d e sc r i b e s
t h e A c t i v e X D o c u m e n t , a n d i t ’ s t h a t f i l e t h a t y o u a c t u a l l y o p en i n t h e h o st a p pl i c a t i o n , su c h a s t h e
M i c r o s o f t I n t e r n e t E x pl o r e r . T o o p e n a n A c t i v eX D o c u m en t i n I n t e r n et E x p l o r er , y o u j u st o p en t h e
V B D f i l e d i r ec t l y .
NetScape COMPUTER ACADEMY
168
Dis t ri b u t ed C o mp u t i ng : Ac t iv eX Do cu m en t s an d In t e gra t e d B ro ws er s
I f y o u i n t e g r a t e a W e b br o w s e r i n t o a pr o g r a m , y o u c a n h a v e t h a t br o w s er do w n l o a d A c t i v eX
do c u m e n t s i n a s e a m l e s s w a y t h a t m a k e s t h o s e do c u m e n t s l o o k l i k e p a r t o f t h e p r o g r a m i t s el f . I n
t h i s w a y , u s e r s c a n do w n l o a d A c t i v e X do c u m en t s f i l l ed w i t h c u r r en t d a t a i n t o a pr o gr a m i n a w a y
that seems transparent to them.
L e t s s e e a n e x a m pl e , h e r e , w e ’ l l a d d a W e b br o w s er t o a pr o gr a m a n d u s e i t t o o p en t h e t i c t a c t o e
A c t i v e X do c u m e n t . T o c r e a t e a p r o g r a m w i t h a bu i l t - i n W e b br o w s er , u se t h e V I S U A L B A S I C
a p p l i c a t i o n w i z a r d. W h e n t h e a p pl i c a t i o n w i z a r d a s k s y o u a bo u t i n t er n et c o n n ec t i v i t y , c l i c k t h e
o pt i o n bu t t o n l a b e l e d Y e s , a n d e n t e r t h e U R L o f y o u r do c u m en t ’ s V B D f i l e w h i c h c a n b e o n t h e
i n t e r n e t i n t h e s t a r t u p U R L bo x ; h e r e , w e’ l l u s e t h e di s k l o c a t i o n o f y o u r V B D f i l e, w h i c h i s
C : \ V B B B \ a c t i v e x t i c t a c t o e do c \ a c t i v e x t i c t a c t o edo c . v b d
T h e n c l i c k F i n i s h B u t t o n t o c r e a t e t h e pr o g r a m .
A t d e s i gn t i m e , w e c a n c u s t o m i z e t h e p r o g r a m e v en m o r e b y c h a n gi n g t h e c a pt i o n pr o p e r t y pf t h e
m e n u i t e m t h a t o p e n s t h e g a m e f r o m “ W e b br o w s er ” t o “ T i c T a c T o e ” , a n d e d i t i n g t h e br o w s er
f o r m , f r m B r o w s e r , by r e m o v i n g t h e c o m bo bo x t h a t sh o w s t h e U R L a n d a l l t h e bu t t o n s. W e c a n a l so
s t r e t c h t h e W e b br o w s e r c o n t r o l br w W e bB r o w se r so i t c o v er s t h e w h o l e f r m B r o w s e r f o r m .
C u s t o m i z i n g t h e br o w s e r f o r m t h i s w a y pr e v e n t s i t f r o m a p p e a r i n g a s a W e b b r o w se r a t a l l .
I n s t e a d, i t w i l l l o o k l i k e a pa r t o f y o u r p r o gr a m ; t h e f a c t t h a t i t c o m e s f r o m t h e I n t er n e t i s e n t i r el y
transparent to the user.
R u n n i n g t h i s pr o gr a m a n d s e l e c t i n g t h e T i c T a c T o e m en u i t em o pe n s t h a t A c t i v eX D o c u m en t i n t h e
pr o gr a m . T h e A c t i v e X D o c u m e n t l o o k s j u st l i k e a n y o t h e r p a r t o f t h e pr o gr a m , w h i c h i s t h e i d ea
b e h i n d di s t r i bu t e d c o m p u t i n g.
Ma ki ng Ac ti v eX D oc um e n t P r o p er t ie s P e rsis t e n t ( P r o pe r ty B ag O b j ec t )
J u s t a s w i t h A c t i v e X C o n t r o l s , y o u c a n m a k e t h e d a t a i n A c t i v eX D o c u m en t s pe r si st e n t , w h i c h
m e a n s t h e da t a i s s t o r e d b y w h e n y o u c l o s e t h e d o c u m en t a n d r e st o r e d i n t h e d i s p l a y w h en y o u
o p e n t h e do c u m e n t . T o m a k e t h e d a t a i n a n A c t i v eX D o c u m en t pe r si st en t , y o u u s e t h e
P r o p e r t y C h a n g e d m e t h o d l i k e A c t i v e X c o n t r o l s , a n d u s e t h e R e a dP r o p er t y a n d W r i t e P r o p e r t y
m e t h o ds .
L e t s s e e a n e x a m p l e t o m a k e t h i s c l e a r er . H er e, w e’ l l st o r e t h e da t a i n t h e t i c - t a c - t o e A c t i v eX
do c u m e n t g a m e w e ’ v e d e v e l o pe d i n t h e pr e v i o u s f ew t o pi c s. F i r st , w e n o t i f y t h e do c u m en t t h a t t h e
ga m e p r o p e r t i e s h a v e c h a n ge d b y c a l l i n g P r o p er t y C h a n g ed w h en t h e u s er c l i c k s a bu t t o n .
P r i v a t e S u b C o m m a n d_ C l i c k ( I n d e x A s I n t eg e r )
If blnXFlag Then
C o m m a n d ( I n de x ) . C a pt i o n = “ X ”
Else
C o m m a n d ( I n de x ) . C a pt i o n = “ O ”
End If
bl n X F l a g= N o t bl n X F l a g
PropertyChanged
End Sub
N e x t , w e a d d c o d e t o t h e W r i t e P r o p e r t i e s ev en t h a n dl er t o w r i t e t h e c a p t i o n s o f t h e b u t t o n s t o t h e
P r o p e r t y B a g o bj e c t u s i n g t h a t o bj e c t ’ s W r i t e P r o p er t y m et h o d.
P r i v a t e S u b U s e r D o c u m e n t _ W r i t e P r o p e r t i e s ( P r o pB a g A s P r o p e r t y B a g )
D i m i n t L o o p I n de x A s I n t e ge r
F o r i n t L o o p I n de x = 0 t o 8
P r o pB a g. W r i t e P r o p e r t y “ C o m m a n d ( “ & S t r ( i n t L o o pI n d ex ) & “ ) “ , _
C o m m a n d( i n t L o o p I n d e x ) . C a p t i o n
Next
End Sub
I n a d di t i o n , w e r e a d t h e pr o p e r t y s et t i n g s b a c k i n w h en n e e d e d i n t h e R e a dP r o pe r t i es e v en t
h a n dl e r .
P r i v a t e S u b U s e r D o c u m e n t _ R e a d P r o p e r t i e s ( P r o pB a g A s P r o p e r t y B a g )
D i m i n t L o o p I n de x A s I n t e ge r
F o r i n t L o o p I n de x = 0 t o 8
C o m m a n d ( i n t L o o pI n d e x ) . C a pt i o n = P r o p B a g. R e a d P r o p er t y _
( “ C o m m a n d ( “ & S t r ( i n t L o o pI n d ex ) & “ ) ”
Next
End Sub
W i t h t h i s n e w c o d e , t h e u s e r c a n m a k e c h a n g e s t o t h e A c t i v eX D o c u m en t w h en i t ’ s o p en i n t h e W e b
br o w s e r a n d s a v e t h o s e c h a n g e s i n t h e do c u m en t .
NetScape COMPUTER ACADEMY
169
Code Components
C o d e C o m po n e n t s w e r e f o r m e r l y c a l l e d O L E a u t o m a t i o n s er v e r s. T h es e o bj ec t s l e t s y o u u s e t h ei r
c o d e i n o t h e r p r o g r a m s . F o r e x a m pl e , y o u m i gh t h a v e a c a l c u l a t i o n r o u t i n e t h a t y o u ex po s e i n a
c o d e c o m po n e n t ; do i n g s o m a k e s t h a t r o u t i n e a v a i l a b l e t o o t h er pr o gr a m s. C o d e c o m po n en t s c a n
s u p po r t pr o p e r t i e s a n d m e t h o ds .
Creating Code Components
A C o d e C o m p o n e n t - f o r m e r l y c a l l e d O L E a u t o m a t i o n s er v e r s - a s a l i br a r y o f o bj ec t s, r e a d y t o b e
u s e d b y o t h e r a pp l i c a t i o n s c a l l e d c l i e n t a p p l i c a t i o n s. F o r e x a m pl e, y o u m i gh t h a v e a t e r r i f i c r o u t i n e
t o s o r t r e c o r d s t h a t y o u w a n t t o u s e i n a do z en d i f f er en t pr o g r a m s. Y o u c a n p u t t h a t r o u t i n e i n a
c o d e c o m po n e n t , r e gi s t e r i t w i t h W i n do w s, a n d t h en y o u ’ r e f r e e t o u s e t h e r o u t i n e i n t h a t c o de
c o m po n e n t i n o t h e r p r o g r a m s - j u s t a s w i t h a n A c t i v eX c o n t r o l , t h e o t h er pr o gr a m s c a n c a l l t h e c o d e
c o m po n e n t s m e t h o d s a n d p r o pe r t i e s .
A C o d e c o m po n e n t i s l i k e a n A c t i v e X c o n t r o l o r do c u m en t t h a t do es n ’ t c r e a t e a v i s u a l d i sp l a y i n a
h o s t a p pl i c a t i o n . C o d e c o m po n e n t s p r o v i de a c c e s s t o m et h o d s a n d pr o p e r t i e s t h r o u gh c o d e, n o t a
di r e c t g r a ph i c a l u s e r i n t e r f a c e .
I n f a c t , c o d e c o m po n e n t s a r e t h e t h i r d p a r t o f t h e s t a n d a r d A c t i v eX o b j ec t s et t h a t V I S U A L B A S I C
s u p po r t s : A c t i v e X c o n t r o l s , A c t i v e X do c u m e n t s, a n d c o de c o m po n en t s. Y o u bu i l d c o d e c o m po n en t s
a s A c t i v e X E X E s o r A c t i v e X D L L s , m u c h a s y o u d o w i t h A c t i v eX c o n t r o l s o r do c u m en t s.
Code Components: Classes and Objects
W h e n y o u c r e a t e a c o de c o m po n e n t , y o u a d d c o d e i n c l a s s m o du l e( s) , a n d w h en y o u r e g i s t er t h e
c o d e c o m po n e n t w i t h W i n do w s , y o u m a k e t h e c l a s s( e s) a v a i l a bl e t o c l i en t a p p l i c a t i o n s. T h o se
a p p l i c a t i o n s , i n t u r n , c a n a d d a r e f e r e n c e t o y o u r c o d e c o m po n en t a n d c r e a t e a n o bj ec t o f t h e c l a s s
t h e y w a n t t o u s e w i t h t h e N e w , C r e a t e O b j ec t , o r o t h e r V I S U A L B A S I C i n s t r u c t i o n . W h e n t h e c l i en t
a p p l i c a t i o n h a s a n o bj e c t c o r r e s po n d i n g t o o n e o f y o u r c l a s s es, i t c a n u s e t h a t c l a s s’ s p r o pe r t i e s
and methods.
T h a t i s h o w i t w o r k s - i t ’ s a l l a bo u t r e u s i n g y o u r c o d e. Y o u g et a n o b j ec t c o r r es po n d i n g t o a c l a s s i n
a c o d e c o m po n e n t l i k e t h i s , w h e r e w e ’ r e c r e a t i n g a n o b j ec t , o b j C a l en d a r , o f t h e c l a s s C a l en d a r C l a ss
f r o m t h e h y po t h e t i c a l c o d e c o m po n e n t n a m e d P l a n n er C o d e C o m po n en t .
D i m o bj C a l e n d a r A s O b j e c t
S e t o bj C a l e n da r = C r e a t e O b j e c t ( “ P l a n n e r C o d eC o m po n en t . C a l en da r C l a s s” )
T h e n y o u c a n u s e t h a t o bj e c t ’ s pr o p e r t i e s a n d m et h o d s t o gi v e y o u a c c e s s t o t h e c o d e i n t h e c l a s s,
like this
D i m o bj C a l e n d a r A s O b j e c t
S e t o bj C a l e n da r = C r e a t e O b j e c t ( “ P l a n n e r C o d eC o m po n en t . C a l en da r C l a s s” )
ObjCalendar.Days=365
I n t W o r k D a y s = o b j C a l e n d a r . C a l c u l a t eW o r k D a y s
‘ u s e a pr o p er t y
‘ use a method
I f y o u h a v e c r e a t e d y o u r c o de c o m po n en t a s A c t i v eX E X E , t h a t c o d e c o m po n en t i s a n o u t - o f pr o c e s s s e r v e r a n d r u n s s e p a r a t e l y f r o m t h e c l i e n t a p pl i c a t i o n ; i f y o u h a v e c r e a t e d y o u r c o d e
c o m po n e n t a s A c t i v e X D L L , t h a t c o d e c o m po n en t i s a n i n - p r o c es s s er v er , w h i c h m e a n s i t ’ l l r u n a s
pa r t o f t h e c l i e n t a p pl i c a t i o n ’ s pr o c e s s .
T h e r e ’ s e v e n a w a y t o u s e c o d e c o m po n en t s w i t h o u t c r ea t i n g a n o bj ec t . T o m a k e i t ea s y t o c r e a t e
c o d e c o m po n e n t s t h a t c a n b e u s e d w i t h d e sk t o p t o o l s l i k e t h e M i c r o so f t O f f i c e S u i t e, V I S U A L B A S I C
a l l o w s y o u t o l a b e l o b j e c t s i n a c o de c o m po n e n t a s g l o b a l , w h i c h m e a n s t h e y a r e p a r t o f a g l o ba l
o bj e c t . I n p r a c t i c e , t h i s m e a n s t h a t y o u do n ’ t h a v e t o c r ea t e a n o bj ec t t o u s e t h e m et h o d s a n d
pr o p e r t i e s o f t h i s c o d e c o m po n e n t - y o u j u s t a d d a r ef er en c e t o t h e c o d e c o m po n en t i n t h e c l i en t
a p p l i c a t i o n , a n d y o u c a n u s e t h e c o m po n en t ’ s pr o p er t i e s a n d m et h o d s a s t h o u g h t h ey w er e pa r t o f
t h e c l i e n t a p pl i c a t i o n .
A c l i e n t a pp l i c a t i o n a n d a n i n - pr o c e s s c o m po n e n t sh a r e t h e sa m e m em o r y s p a c e, so c a l l s t o t h e
m e t h o ds o f a n i n - pr o c e s s c o d e c o m po n en t c a n u s e t h e c l i en t ’ s s t a c k t o p a ss a r gu m en t s. T h a t ’ s n o t
po s s i bl e f o r a n o u t - o f - pr o c e s s c o m po n e n t ; t h er e, m et h o d a r gu m en t s m u st be m o v e d a c r o s s t h e
m e m o r y bo u n d a r y be t w e e n t h e t w o pr o c e s s es, w h i c h i s c a l l e d m a r sh a l i n g .
Code Components and Threads
W h e n y o u s t a r t w o r k i n g w i t h a n o t h e r a p pl i c a t i o n , a s c o d e c o m po n en t s do , y o u sh a r e t h r e a d s o f
e x e c u t i o n w i t h t h a t a p pl i c a t i o n i n a j o i n t pr o c e s s . A s a d ef a u l t , t h e M i c r o so f t C o m po n en t O b j ec t
M o d e l ( C O M ) de a l s w i t h t h i s s i t u a t i o n b y s e r i a l i z i n g t h r e a d o pe r a t i o n s. T h a t i s, t h e o p er a t i o n s a r e
qu e u e d a n d pr o c e s s e d, o n e a t t r i bu t e t i m e, u n t i l t h e y a l l h a v e b e en c o m pl e t e d.
T h a t pr o c e s s i s s a f e , a n d y o u do n ’ t h a v e t o t h i n k a bo u t i t ex c e pt f o r p er f o r m a n c e i ss u e s. I n a
m u l t i t h r e a d i n g o p e r a t i n g e n v i r o n m e n t , s er i a l i z a t i o n pr o t ec t s s i n gl e - t h r e a d ed o bj ec t s f r o m
NetScape COMPUTER ACADEMY
170
o v e r l a p pi n g c l i e n t o p e r a t i o n s . H o w e v e r , s er i a l i z i n g si n gl e - t h r ea d e d c o m p o n en t s a l so m e a n s t h a t
o p e r a t i o n s c a n b e b l o c k e d, a n d c a n s t a y bl o c k ed f o r so m e t i m e, w h i c h c a n b e f r u st r a t i n g.
V I S U A L B A S I C h a s t w o w a y s t o a v o i d bl o c k ed c a l l s. M u l t i t h r e a di n g a n d S i n gl e U se o bj ec t s .
Multithreading Code components
Y o u m a k e i n - pr o c e s s a n d o u t - o f - p r o c e s s c o d e c o m po n en t s m u l t i t h r e a d e d by c h a n gi n g t h e i r
t h r e a d i n g m o de l . V I S U A L B A S I C u s e s i t s a p a r t m en t - m o d el t h r e a d i n g t o en su r e t h r ea d sa f e t y w h en
y o u ’ r e w o r k i n g w i t h m u l t i p l e t h r e a ds . I n a p a r t m e n t - m o d e l t h r e a di n g, ea c h t h r ea d i s l i k e a n
a p a r t m e n t - a l l o bj e c t s c r e a t e d o n t h e t h r e a d w o r k i n a n a p a r t m en t , a n d t h e y a r e n o t ‘ a w a r e’ o f t h e
o bj e c t s i n o t h e r a pa r t m e n t s . T h i s t h r e a di n g m o d el a l so el i m i n a t es c o n f l i c t s w h en a c c e s si n g gl o b a l
da t a f r o m m u l t i pl e t h r e a d s b y g i v i n g e a c h a pa r t m en t i t s o w n c o py o f t h a t gl o b a l da t a . Y o u c a n u s e
a p a r t m e n t - m o d e l t h r e a di n g w i t h o u t h a v i n g t o el i m i n a t e v i su a l el em en t s s u c h a s f o r m s a n d c o n t r o l s,
b e c a u s e a l l s u c h V I S U A L B A S I C o b j e c t s a r e t h r ea d - s a f e.
Y o u c a n s p e c i f y t h e a p a r t m e n t t h r e a d i n g m o de l i n st e a d o f s i n gl e t h r ea d e d m o d el f o r i n - p r o c e s s
c o d e c o m po n e n t s t o m a k e t h e m m u l t i t h r ea d e d. T o m a k e o u t - o f - pr o c e s s c o d e c o m po n en t s
m u l t i t h r e a d e d, y o u h a v e t w o o pt i o n s : t h r e a d po o l i n g a n d t h e t h r e a d - p er - o bj ec t m o d e l . W i t h t h r e a d
po o l i n g, y o u c a n s p e c i f y h o w m a n y t h r e a ds y o u w a n t a v a i l a bl e f o r y o u r c o d e c o m po n en t s, a n d
t h o s e t h r e a d s a r e u s e d i n a r o u n d - r o bi n w a y t h a t i s , t h e f i r s t o b j ec t i s c r e a t e d o n t h e f i r s t t h r e a d
i n t h e po o l a n d t h r e a d a l l o c a t i o n k e e ps go i n g t h r e a d b y t h r e a d, s t a r t i n g o v er w i t h t h e f i r st t h r ea d
w h e n t h e o t h e r s i n t h e p o o l a r e u s e d. I f y o u s p e c i f y t h e t h r e a d - p er - o bj e c t m o d e l , e a c h n e w o b j e c t
i s c r e a t e d w i t h i t s o w n t h r e a d.
SingleUse Code components
Y o u c a n a l s o h a n dl e s e r i a l i z a t i o n c o n f l i c t s b y c r e a t i n g S i n gl e U s e c o d e c o m po n en t s, i n w h i c h e v er y
n e w o bj e c t o f y o u r c o d e c o m po n e n t c l a s s c r e a t e s a n ew i n s t a n c e o f t h e c o m po n en t . Y o u do t h i s by
s e t t i n g t h e c l a s s ’ s I n s t a n c i n g pr o p e r t y . T h e I n st a n c i n g pr o p er t y i n d i c a t e s h o w y o u w a n t y o u r c l a s s
t o i n t e r a c t w i t h c l i e n t a p pl i c a t i o n s , i f a t a l l . H er e a r e t h e po s s i b l e v a l u e s o f t h a t p r o pe r t y :






P r i v a t e O t h e r a p p l i c a t i o n s a r e n ’ t a l l o w e d a c c e s s t o t y p e l i b r a r y i n f o r m a t i o n a bo u t t h e c l a s s
a n d c a n n o t c r e a t e i n s t a n c e s o f i t . P r i v a t e o bj ec t s a r e o n l y f o r u s e w i t h i n y o u r c o m po n en t .
P u bl i c N o t C r e a t a bl e
o t h e r a p pl i c a t i o n s c a n u s e o b j ec t s o f t h i s c l a s s o n l y i f y o u r
c o m po n e n t c r e a t e s t h e o bj e c t s f i r st . O t h er a pp l i c a t i o n s c a n n o t u se t h e C r e a t eO bj ec t
f u n c t i o n o r t h e N e w o pe r a t o r t o c r e a t e o bj ec t s f r o m t h e c l a ss.
MultiUse
o t h e r a p pl i c a t i o n s a r e a l l o w e d t o c r e a t e o bj ec t s f r o m t h e c l a s s. O n e i n st a n c e
o f y o u r c o m po n e n t c a n p r o v i d e a n y n u m b er o f o b j ec t s c r e a t e d i n t h i s f a s h i o n . A n o u t - o f pr o c e s s c o m p o n e n t c a n s u p pl y m u l t i p l e o b j ec t s t o m u l t i p l e c l i en t s; a n i n - pr o c e s s c o m p o n en t
c a n s u p p l y m u l t i pl e o bj e c t s t o t h e c l i en t a n d t o a n y o t h er c o m po n en t s i n i t s pr o c e s s.
G l o ba l M u l t i U s e
s i m i l a r t o M u l t i U se, w i t h o n e a d di t i o n : pr o p er t i e s a n d m e t h o ds o f t h e
c l a s s c a n b e i n v o k e d a s i f t h e y w er e si m p l y g l o b a l f u n c t i o n s. I t ’ s n o t n ec e ss a r y t o e x p l i c i t l y
c r e a t e a n i n s t a n c e o f t h e c l a s s f i r st , b ec a u s e o n e w i l l a u t o m a t i c a l l y b e c r e a t e d.
S i n gl e U s e
o t h e r a p pl i c a t i o n s a r e a l l o w e d t o c r e a t e o bj ec t s f r o m t h e c l a s s, bu t e v er y
o bj e c t o f t h i s c l a s s t h a t a c l i e n t c r ea t es st a r t s a n ew i n s t a n c e o f y o u r c o m po n en t . N o t
a l l o w e d i n A c t i v e X D L L p r o j e c t s.
G l o ba l S i n g l e U s e
s i m i l a r t o S i n g l e U s e, e x c e pt t h a t pr o p er t i e s a n d m e t h o ds o f t h e c l a s s
c a n b e i n v o k e d a s i f t h e y w e r e s i m pl y g l o ba l f u n c t i o n s. N o t a l l o w e d i n A c t i v eX D L L pr o j ec t s.
O v e r a l l , t h e n , t h e r e a s o n y o u u s e c o d e c o m po n e n t s i s t o m a k e i t e a sy t o r eu s e y o u r c o d e i n o t h e r
applications.
NetScape COMPUTER ACADEMY
171
Chapter 32
Integrating the Internet into VISUAL BASIC
Creating A Web Browser
I f y o u h a v e M i c r o s o f t I n t e r n e t E x p l o r e r i n st a l l ed , y o u c a n bu i l d W e b br o w s er s u si n g V I S U A L B A S I C .
M i c r o s o f t h a s p a c k a g e d t h e I n t e r n e t E x p l o r er i n a c o n t r o l , t h e W e bB r o w s er c o n t r o l , a n d w e ’ l l b e
a b l e t o u s e t h a t c o n t r o l t o c r e a t e a W e b B r o w s er t h a t su p po r t s su c h br o w s er f u n c t i o n a l i t y a s B a c k ,
F o r w a r d, H o m e , S t o p, a n d R e f r e s h b u t t o n s. W e’ l l a l so l e t t h e u s er s p ec i f y w h a t U R L t o n a v i g a t e t o
w i t h a c o m bo bo x - a s w e l l a s k e e p i n g t r a c k o f r e c en t l y v i s i t e d U R L s i n t h a t c o m bo bo x . B u i l d i n g a
W e b B r o w s e r c a n b e a w o r t h w h i l e p r o j ec t i n i t s e l f , bu t a n o t h e r po pu l a r u s e o f t h e W e b B r o w s er
c o n t r o l i s t o a d d a W e bB r o w s e r t o y o u r e x i st i n g pr o gr a m f o r a d d ed po w e r . I n f a c t , y o u c a n u s e t h e
W e bB r o w s e r c o n t r o l t o o p e n A c t i v e X do c u m en t s i n a w a y t h a t m a k es t h e m l o o k l i k e a se a m l e ss p a r t
o f t h e pr o g r a m - e v e n t h o u gh t h a t do c u m e n t m a y h a v e c o m e f r o m t h e I n t e r n e t .







C r e a t e a n e w s t a n d a r d E x e pr o j ec t
S e l e c t P r o j e c t > C o m po n e n t s , C l i c k C o n t r o l s t a b
S e l e c t M i c r o s o f t I n t e r n e t C o n t r o l s a n d M i c r o s o f t W i n do w s C o m m o n C o n t r o l s, a n d C l i c k O K .
A d d a W e bB r o w s e r C o n t r o l a n d a T o o l ba r t o t h e f o r m , s t r et c h i n g t h e W eb B r o w s er c o n t r o l t o
f i l l t h e s p a c e u n de r t o o l ba r .
A d d F i v e B u t t o n s t o t h e t o o l b a r b y r i gh t c l i c k a n d c h o o se pr o p er t i e s
G i v e t h e bu t t o n s t h e s a m e c a p t i o n s a n d k e y p r o p er t i es B a c k , N e x t , H o m e, S t o p, a n d R ef r e sh
A d d a C o m bo B o x t o t h e E n d o f T o o l ba r b y c h o o si n g i t f r o m t h e t o o l bo x a n d dr a w i t o n
toolbar.
N o w , t h a t y o u s e t u p t h e c o n t r o l s n e ed i n W e b B r o w s er . T o n a v i ga t e y o u u s e t h e
W e bB r o w s e r ’ s N a v i g a t e m e t h o d. F o r E x a m pl e, w h en o u r w e b b r o w se r f i r st l o a d s, w e c a n n a v i g a t e t o
a w e b pa g e a s b e l o w
Private Sub Form_Load( )
W e bB r o w s e r 1 . N a v i g a t e “ w w w . h o t m a i l . c o m ”
End Sub
A d d t h e pr e s e n t U R L t o t h e c o m bo b o x u si n g A d d m et h o d
Private Sub Form_Load( )
W e bB r o w s e r 1 . N a v i g a t e “ w w w . h o t m a i l . c o m ”
C o m bo 1 . T e x t = ” w w w . h o t m a i l . c o m ”
C o m bo 1 . A d dI t e m C o m bo 1 . T e x t
End Sub
U s e r s c a n s e l e c t t h e U R L s f r o m t h e c o m bo bo x ’ s dr o p do w n l i s t . W r i t e t h e c o d e i n C l i c k e v e n t o f
C o m bo B o x
Private Combo1_Click( )
W e bB r o w s e r 1 . N a v i g a t e C o m bo 1 . T ex t
End Sub
I n a d di t i o n , u s e r s c a n t y p e a n e w U R L i n t o t h e c o m bo bo x a n d p r es s en t er . S o w r i t e t h e f o l l o w i n g
c o d e i n K e y P r e s s e v e n t o f C o m bo B o x
P r i v a t e C o m b o 1 _ K e y P r e s s ( K e y A sc i i A s I n t e g er )
If KeyAscii=13 then
C o m bo 1 _ C l i c k
End If
End Sub
F i n a l l y , w h e n t h e D o w n l o a di n g pr o c e s s i s c o m p l et e, t h e W e bB r o w s e r c o n t r o l f i r e s a
D o w n L o a dC o m p l e t e e v e n t , a n d w e c a n di s pl a y t h e p r es en t U R L i n t h e br o w s er ’ s t i t l e b a r , j u s t a s
a n y c o m m e r c i a l b r o w s e r m i gh t . T o do c u m en t t h a t , w e g et t h e b r o w s e r ’ s p r e s en t U R L f r o m i t s
L o c a t i o n N a m e p r o pe r t y . A l s o w e c a n a d d t h a t U R L t o t h e t o p o f t h e c o m b o bo x ' ’ l i st .
P r i v a t e S u b W e b B r o w s e r 1 _ D o w n L o a d C o m pl et e( )
M e . C a pt i o n = W e b B r o w s e r 1 . L o c a t i o n N a m e
C o m bo 1 . A d dI t e m W e b B r o w s er 1 . L o c a t i o n U R L , 0
End Sub
NetScape COMPUTER ACADEMY
172
A d d i n g B a c k a n d F o r w a r d B u t t o n s t o a W e b Br o w s e r
T o e n a b l e B a c k a n d F o r w a r d b u t t o n s , u s e t h e br o w s er ’ s G o B a c k a n d G o F o r w a r d m e t h o ds.
Private Sub Toolbar1_ButtonClick( ByVal Button As Button)
Select Case Button.Key
Case “Back”
W e bB r o w s e r 1 . G o B a c k
C a s e “ F o r w a r d”
W e bB r o w s e r 1 . G o F o r w a r d
End Select
End Sub
A d d i n g R e f r e s h , H o m e , a n d S t o p b u t t o n s t o a W e b Br o w s e r
W e c a n i m pl e m e n t t h e b u t t o n s R e f r e s h , H o m e a n d s t o p u s i n g W e b br o w s er ’ s R ef r e sh , G o H o m e, a n d
Stop methods.
Private Sub Toolbar1_ButtonClick( ByVal Button As Button)
Select Case Button.Key
Case “Back”
W e bB r o w s e r 1 . G o B a c k
C a s e “ F o r w a r d”
W e bB r o w s e r 1 . G o F o r w a r d
Case “Refresh”
W e bB r o w s e r 1 . R ef r e sh
Case “Home”
W e bB r o w s e r 1 . G o H o m e
Case “Stop”
W e bB r o w s e r 1 . S t o p
M e . C a pt i o n = W eb B r o w s er 1 . L o c a t i o n N a m e
End Select
End Sub
Creating Dynamic HTML (DHTML) page
D H T M L i s t h e n e w , w e b pa g e s t a n da r d. T h e M i c r o so f t s t a n d a r d f o r D H T M L m a k e s a l l t h e t a g s i n a
W e b p a ge a c t i v e e l e m e n t s i n t h e s e n s e t h a t t h ey h a v e pr o p er t i e s y o u c a n c h a n ge a t r u n t i m e, a s
w e l l a s e v e n t s l i k e C l i c k . T h e D i r e c t A n i m a t i o n a n d D i r ec t S h o w I n t er n et E x p l o r er p a c k a g es a r e pa r t
of Microsoft DHTML as well.
V I S U A L B A S I C c a n w r i t e D H T M L - i n f a c t , y o u c a n u s e V I S U A L B A S I C a s a n H T M L e d i t o r , a d di n g t ex t ,
i m a g e s , h y p e r l i n k s , a n d t a bl e s . Y o u c a n a d d A c t i v eX c o n t r o l s di r ec t l y t o y o u r w e b p a g es w h en
d e s i gn i n g t h e m i n t h e D H T M L d e s i g n e r .
Creating DHTML pages
T o c r e a t e a D H T M L p a g e , C h o o s e F i l e N ew P r o j ec t , S e l ec t D y n a m i c H T M L A p pl i c a t i o n i t em i n t h e
di a l o g a n d c l i c k O K . T h i s o pe n s D H T M L p a g e d es i gn er .
Y o u a d d t h e e l e m e n t s y o u w a n t i n y o u r p a g e t o t h e r i g h t w i n do w i n t h e P a g e D e si gn e r , a n d i t g i v e s
y o u a n i de a o f h o w t h e pa g e w i l l l o o k i n t h e b r o w s er . T h e w i n do w o n t h e l ef t i n t h e P a g e D es i gn er
s h o w s t h e l o g i c a l s t r u c t u r e o f t h e p a ge b y i n di c a t i n g w h i c h H T M L e l em e n t s a r e c o n t a i n ed i n o t h er
H T M L e l e m e n t s . U s i n g t h e P a g e D e s i g n e r , t h en , y o u c a n g e t a n i d e a o f bo t h h o w y o u r p a ge w i l l
look and how it’s organized in HTML.
N o t e t h a t w h e n y o u c a n u s e V I S U A L B A S I C i n t h e D H T M L p a g e s d e si gn e d w i t h V I S U A L B A S I C . I t i s
po s s i bl e b e c a u s e w h a t y o u ’ r e r e a l l y c r ea t i n g i s a n A c t i v eX D L L p r o j ec t t h a t w i l l b e l o a de d i n t o t h e
I n t e r n e t E x pl o r e r w h e n y o u o pe n t h e W e b P a g e. T h e D L L r u n s i n t h e I n t er n e t E x pl o r er ’ s pr o c e ss.
T o m a k e t h e n e e d e d D L L f i l e , j u s t s e l e c t t h e M a k e P r o j ec t n a m e. D L L i t e m i n F i l e m en u .
Y o u m a y b e w a n t t o c r e a t e a n H T M L W e b P a ge, w i t h o u t a n y D L L f i l e s a t a l l , a n d y o u c a n do t h a t
t o o . U s u a l l y , t h e H T M L pa g e i s s t o r e d i n V I S U A L B A S I C pr o j ec t . T o st o r e i t i n a s e pa r a t e H T M f i l e,
c l i c k t h e D H T M L P a ge D e s i gn e r P r o p e r t i e s i c o n a t t h e u p p er l ef t i n D H T M L P a g e D e s i g n e r , s e l ec t
t h e S a v e H T M L i n a n e x t e r n a l f i l e o pt i o n , a n d g i v e a n H T M f i l en a m e t o s a v e y o u r w e b p a g e a s. T o
t e s t t h e w e b pa g e , s e l e c t t h e D H T M L pr o j ec t P r o p er t i es i t em i n t h e p r o j e c t m en u , c l i c k i n g t h e
D e bu g gi n g t a b i n t h e P r o p e r t i e s p a ge s t h a t o p e n . m a k e su r e t h e S t a r t C o m po n en t o p t i o n bu t t o n i s
c l i c k e d a n d t h e s t a r t c o m po n e n t i s s e t t o D H T M L p a g e1 , t h en c l i c k O K . N o w se l ec t t h e S t a r t i t em i n
the Run menu to open the Web Page.
Adding Text to DHTML pages
T o a d d t e x t i n p a ge s , j u s t c l i c k i n t h e r i gh t w i n d o w i n t h e D H T M L p a ge d e si gn er w h er e y o u w a n t
t e x t a n d t y p e t h e t e x t y o u w a n t . A d di n g t h e t ex t w e’ v e pl a c e d i n o u r W e b P a g e a d ds t h i s H T M L t o
t h e W e b p a g e i t s e l f - n o t e t h e P a g e D e si gn er u s e s t h e < P > p a r a gr a p h H T M L t a g f o r e a c h p a r a g r a ph
of text.
Y o u c a n f o r m a t t h e t e x t by s e l e c t i n g t h e t e x t f o n t , s i z e, a n d st y l e w i t h c o n t r o l s a t t h e t o p o f t h e
pa g e de s i gn e r . Y o u c a n a l s o s p e c i f y i t s a l i gn m en t - r i gh t , c en t e r , o r l ef t - w i t h bu t t o n s i n t h e pa g e
d e s i gn e r t o o l ba r .
NetScape COMPUTER ACADEMY
173
Adding Images to DHTML Pages
T o a d d a n i m a g e t o a D H T M L p a g e i n t h e V I S U A L B A S I C D H T M L P a g e D e si gn er , y o u c l i c k t h e i m a g e
t o o l . D o i n g s o a d d s a n e m p t y i m a g e t o t h e p a ge; m o v e t h a t i m a g e t o t h e po s i t i o n y o u w a n t a n d
s i z e i t a pp r o pr i a t e l y .
T o a d d a n i m a g e t o t h i s D H T M L c o n t r o l , s et i t s s r c pr o p er t y . I n t h i s c a se , w e s et t h e s r c pr o p er t y
t o a n i m a g e o n t h e di s k f o r e x a m pl e f i l e: / / / c : / w i n do w s/ c l o u d. bm p, a l so y o u c a n u s e a U R L h er e.
Adding HTML controls to DHTML pages
U s i n g V I S U A L B A S I C D H T M L P a g e d e s i gn er , y o u c a n a d d t h e st a n da r d H T M L c o n t r o l s t o a W e b p a g e
: b u t t o n s , S u b m i t bu t t o n s , R e s e t B u t t o n s, t ex t f i el d s, t ex t a r e a s, pa s sw o r d f i e l d s, o p t i o n bu t t o n s ,
c h e c k bo x e s , s e l e c t c o n t r o l s , f i l e u pl o a d c o n t r o l s, h i d d en f i e l ds, a n d l i s t s. A d di n g t h e s e c o n t r o l s t o
y o u r w e b p a g e i s j u s t l i k e a d di n g t h e m t o a s t a n da r d V I S U A L B A S I C p r o j ec t . Y o u j u st u s e t h e
c o n t r o l ’ s t o o l i n t h e P a g e D e s i gn e r ’ s t o o l bo x i n t h e sa m e w a y y o u ’ d u s e a t o o l i n t h e V I S U A L B A S I C
t o o l bo x .
Adding ActiveX Controls to DHTML Pages
Y o u c a n a dd A c t i v e X c o n t r o l s t o D H T M L p a g e s j u st a s y o u c a n t o st a n da r d V I S U A L B A S I C pr o j ec t s j u s t u s e t h e P r o j e c t > C o m po n e n t s m e n u i t e m t o o pe n t h e C o m po n en t s D i a l o g a n d se l ec t t h e
A c t i v e X c o n t r o l y o u w a n t t o a dd. T h e n j u st a d d t h a t c o n t r o l t o t h e W eb p a g e a s y o u w o u l d i n a n y
s t a n d a r d V I S U A L B A S I C pr o j e c t .
Adding Tables to DHTML Pages
O n e po pu l a r H T M L e l e m e n t i s t h e t a b l e. T a b l e s c a n p r es en t d a t a i n t a bu l a r f o r m , bu t m a n y H T M L
pr o gr a m m e r s u s e t h e m f o r m u c h m o r e . T h e y u s e t a bl e s t o f o r m a t t h e el e m en t s i n a W e b P a g e,
pl a c i n g t h o s e e l e m e n t s a t l o c a t i o n s t h e y w a n t by i n s er t i n g t h e m i n t o a t a bl e. F o r e x a m pl e y o u c a n
a d d s i d e ba r s a n d f o r m a t i m a g e p l a c e m en t w i t h h i d d en t a bl e s. A l t h o u gh t h e D y n a m i c H T M L p o s i t i o n
a t t r i bu t e h e l ps y o u pl a c e H T M L e l e m e n t s w h er e y o u w a n t t h em , t h a t a t t r i bu t e i s n o t y e t s u p po r t e d
by a l l b r o w s e r s . T o a d d a t a b l e t o a D H T M L p a g e , y o u u s e t h e T a bl e O p er a t i o n d r o p - do w n bo x . T o
i n s e r t a t a b l e , u s e t h e I n s e r t T a bl e E n t r y i n t h a t dr o p - do w n bo x . W h en y o u do c u m en t , t h e P a g e
D e s i gn e r a dd s a 2 X 2 t a bl e t o t h e p a ge. T o a dd a r o w , se l ec t t h e I n s er t R o w en t r y i n t h e T a b l e
O p e r a t i o n dr o p - do w n bo x ; t o a d d a c o l u m n , se l e c t t h e I n se r t C o l u m n E n t r y .
Adding Hyperlinks to DHTML pages
T o a d d h y pe r l i n k t o a D H T M L p a g e , y o u u s e t h e H y p er l i n k t o o l i n t h e D H T M L p a g e d e si gn e r s
t o o l bo x . W h e n y o u do u bl e c l i c k t h e h y p er l i n k t o o l , a h y p er l i n k o bj ec t i s a d de d t o t h e W e b P a g e
w i t h t h e c a p t i o n H y p e r l i n k 1 . M o v e t h a t h y pe r l i n k t o t h e l o c a t i o n y o u w a n t i n t h e W eb p a g e, c h a n g e
i t s c a pt i o n t o t h e t e x t y o u w a n t s i m p l y b y c h a n g i n g t h e t ex t i n t h e h y p e r l i n k o b j ec t di r ec t l y . T o s et
t h e t a r g e t U R L , r i gh t c l i c k t h e h y p e r l i n k a n d s el ec t t h e P r o p er t i e s i t e m i n t h e m en u t h a t o pe n s.
N e x t , pl a c e t h e t a r g e t U R L i n t h e bo x l a b el e d l i n k .
T h a t ’ s i t - t o r u n t h e W e b P a g e , s e l e c t t h e D H T M L pr o j ec t p r o p e r t i e s i t em i n t h e P r o j ec t m e n u , c l i c k
t h e d e bu gg i n g t a b i n t h e P r o pe r t i e s p a g e s t h a t o p en . M a k e s u r e t h a t S t a r t C o m po n en t o pt i o n
bu t t o n i s c l i c k e d a n d t h e s t a r t c o m po n e n t i s se t t o D H T M L P a g e1 , t h e n c l i c k O K . N o w s el ec t t h e
s t a r t i t e m i n t h e R u n m e n u t o o p e n t h e W e b p a g e.
Working With Email
V I S U A L B A S I C i n c l u d e s s u p po r t f o r w o r k i n g w i t h em a i l a s w el l . T h a t s u p p o r t i s b a s e d o n t h e
M i c r o s o f t E x c h a n g e u t i l i t y t h a t ’ s i n s t a l l e d w i t h W i n do w s. W e’ l l u s e t h e A c t i v eX M A P I c o n t r o l s
( M e s s a g i n g A p p l i c a t i o n s P r o gr a m m i n g I n t er f a c e) t o c o n n ec t V I S U A L B A S I C t o M i c r o so f t E x c h a n g e t o
h a n dl e E m a i l . T o c o n n e c t t o t h e e m a i l s y s t em , y o u c r e a t e a n ew M A P I s e s si o n u s i n g t h e
M A P I S e s s i o n c o n t r o l . W h e n t h e s e s s i o n i s c r e a t e d, y o u u s e t h e M A P I M e s s a g e s c o n t r o l t o w o r k w i t h
i n d i v i du a l m e s s a g e s . N o t e t h a t t h e s e c o n t r o l s a r e i n t er f a c es t o t h e M i c r o s o f t E x c h a n g e p a c k a g e,
w h i c h m e a n s t h a t w e ’ l l b e u s i n g t h a t p a c k a g e t o s en d a n d r ec ei v e e m a i l .
Using MAPI controls to support Email
I f y o u w a n t t o r u n a pr o gr a m t h a t u s e s t h e M A P I c o n t r o l s, m a k e su r e t h a t y o u h a v e t h e 3 2 - b i t M A P I
D L L s i n s t a l l e d pr o p e r l y o r y o u m a y n o t be a bl e t o pe r f o r m s i m pl e M A P I f u n c t i o n s su c h a s S i gn O n .
F o r e x a m pl e , o n W i n do w s 9 5 , y o u m u s t i n st a l l M a i l du r i n g t h e o p er a t i n g sy s t em s e t u p o r i n st a l l i t
s e p a r a t e l y f r o m t h e c o n t r o l p a n e l t o c o r r ec t l y u s e M A P I f u n c t i o n s o r M A P I c u st o m c o n t r o l s f r o m
V I S U A L B A S I C . T h e V I S U A L B A S I C e m a i l su ppo r t i s b a s e d o n t h e M i c r o so f t E x c h a n g e u t i l i t y t h a t ’ s
i n s t a l l e d w i t h W i n do w s . I f y o u w a n t t o u s e t h e M A P I c o n t r o l s, m a k e su r e y o u r d es k t o p i n bo x i s
c o n f i gu r e d t o s e n d a n d r e c e i v e e m a i l .
T h e r e a r e t w o M A P I c o n t r o l s , t h e M A P I s e ss i o n c o n t r o l a n d t h e M A P I M e s s a g es c o n t r o l . T o a d d t h e s e
c o n t r o l s t o a pr o gr a m , f o l l o w t h e s e s t ep s.



S e l e c t t h e P r o j e c t > C o m po n e n t s m e n u i t e m .
C l i c k t h e c o n t r o l s t a b i n t h e C o m po n en t s di a l o g b o x t h a t o pe n s
S e l e c t t h e e n t r y l a b e l e d M i c r o s o f t M A P I c o n t r o l s, a n d C l i c k o n O K t o c l o s e t h e c o m po n en t s
di a l o g bo x .
NetScape COMPUTER ACADEMY

174
S t e p 3 a d d s bo t h t h e M A P I S e s s i o n c o n t r o l a n d t h e M A P I M e s sa g e s c o n t r o l t o t h e V I S U A L
B A S I C t o o l bo x . Y o u ’ l l n e e d t o a d d o n e o f e a c h o f t h o s e c o n t r o l s t o y o u r p r o g r a m t o u se
email.
Y o u u s e t h e M A P I S e s s i o n c o n t r o l t o o p en a n ew M A P I s e ss i o n , w h i c h i s t h e f i r st st e p t o s en d i n g o r
r e c e i v i n g e m a i l , a n d t h e M A P I M e s s a g e s c o n t r o l l et s y o u c o m po s e, s en d, a n d e x a m i n e do w n l o a d e d
messages.
T h e M A P I M e s s a g e s c o n t r o l i s t h e p r i m a r y c o n t r o l y o u u s e i n y o u r c o d e. T o w o r k w i t h t h e
M A P I M e s s a g e s c o n t r o l , y o u k e e p t r a c k o f t w o bu f f er s, t h e r e a d b u f f er a n d t h e c o m po s e bu f f er .
T h e r e a d bu f f e r i s m a de u p o f a s e t o f m e s s a g e s r e a d f r o m a u se r ’ s I n bo x . T h e M sg I n d ex pr o p er t y
i s u s e d t o a d dr e s s i n di v i du a l m e s s a g e s w i t h i n t h i s s e t , s t a r t i n g w i t h a v a l u e o f 0 f o r t h e f i r s t
m e s s a g e a n d i n c r e m e n t i n g by o n e f o r e a c h m e ss a g e. Y o u g e t t h e a c t u a l e - m a i l ’ s t e x t f r o m t h e
c o n t r o l ’ s M s gN o t e T e x t p r o p e r t y .
M e s s a g e s c a n b e c r e a t e d o r e di t e d i n t h e c o m po s e b u f f er . T h e c o m po s e b u f f e r i s a u t o m a t i c a l l y s e t
a s t h e a c t i v e bu f f e r w h e n t h e M s gI n d e x pr o p er t y i s se t t o – 1 .
T h e M A P I M e s s a g e s c o n t r o l ’ s m e s s a ge s et i s bu i l t w i t h t h e F e t c h m et h o d. T h i s s et i n c l u d e s a l l
m e s s a g e s o f t y pe s p e c i f i e d b y t h e F e t c h M sgT y p e pr o p er t y a n d i s so r t e d a s i n di c a t e d b y t h e
F e t c h S o r t e d pr o p e r t y . M e s s a g e s i n t h e r e a d bu f f er c a n ’ t b e a l t er e d b y t h e u se r bu t c a n b e c o p i ed
t o t h e c o m po s e bu f f e r f o r a l t e r a t i o n u s i n g t h e C o py m e t h o d.
MAPIMessages control email methods
Function
Method
G e t E m a i l f r o m I n bo x
S e n d E m a i l w i t h C o m po s e B o x
Send email
Save a message
Copy a message for reply
C o m po s e E m a i l
Reply to a message
Reply to all messages
Forward a Message
Delete a Message
S h o w A d dr e s s bo o k
Show message details
R e s o l v e r e c i pi e n t n a m e
D e l e t e r e c i pi e n t
Delete attachment
Fetch
S en d
S en d
Save
Copy
C o m po s e
R ep l y
R ep l y A l l
Forward
D el e t e
Show
Show
R e so l v eN a m e
D el e t e
D el e t e
MAPIMessages control properties
Property
Description
Action
A d dr e s s C a pt i o n
A d dr e s s E di t F i e l dC o u n t
A d dr e s s L a b e l
A d dr e s s M o di f i a b l e
AttachmentCount
AttachmentIndex
AttachmentName
AttachmentPathN ame
AttachmentPosition
AttachmentType
FetchSorted
M s gC o n v e r s a t i o n I D
M s gC o u n t
M s gD a t e R e c e i v e d
M s gI D
M s gI n d e x
M s gN o t e T e x t
M s gO r i gA d dr e s s
M s gO r i gD i s p l a y N a m e
M s gR e a d
M s gR e c e i p t R e q u e s t e d
M s gS e n t
M s gS u bj e c t
M s gT y p e
O b s o l e t e , p er f o r m s a c t i o n s n o w pe r f o r m e d b y m e t h o d s.
S e t s c a p t i o n o f t h e a d dr e ss bo o k
s e t s w h i c h a dd r es s bo o k ed i t c o n t r o l s t o d i s p l a y
S e t s a p p e a r a n c e o f “ T o ” ed i t c o n t r o l i n a d dr e s s bo o k
S e t s w h e t h e r a d dr e s s bo o k c a n b e m o di f i ed b y U s er .
G e t s t o t a l n u m be r o f a t t a c h m en t s t o c u r r en t s et t i n g s
S e t s c u r r en t l y i n de x ed a t t a c h m en t
S e t s n a m e o f t h e c u r r en t l y i n d ex e d a t t a c h m en t
S e t s f u l l p a t h n a m e o f t h e c u r r en t l y i n d ex e d a t t a c h m en t
S e t s po s i t i o n o f i n d e x ed a t t a c h m e n t i n t h e m es s a g e bo x
S e t s t y p e o f c u r r en t l y i n d ex e d a t t a c h m en t
S e t s m e s sa g e o r d er w h e n c r e a t i n g m es s a ge s et
S e t s t h e c o n v er s a t i o n t h r e a d i d en t i f i c a t i o n v a l u e
G e t s t h e t o t a l n o . o f m e s sa g e s i n m e s sa g e se t
G e t s d a t e o n w h i c h c u r r en t i n de x ed m e s s a ge w a s r ec ei v e d
G e t s s t r i n g i d en t i f i er o f c u r r en t m e s sa g e
S e t s I n d e x n u m b er o f c u r r en t m e s sa g e
T e x t o f c u r r en t m e ss a g e
G e t s e m a i l a d dr e s s o f o r i g i n a t o r o f c u r r en t m e s s a g e
G e t s o r i gi n a t o r ’ s n a m e f o r c u r r en t m e s s a g e
T r u e o r F a l s e d e p en di n g o n w h et h er m e s s a ge h a s b e en r e a d
I n d i c a t e s i f r et u r n r ec ei pt i s r e qu e st e d f o r m e s s a g e
I n d i c a t e s i f m e ss a g e h a s be en s en t t o m a i l s er v e r .
M e s s a g e ’ s S u bj ec t
S e t s t y p e o f c u r r en t m es s a g e
NetScape COMPUTER ACADEMY
175
Sending Email From VISUAL BASIC
L e t ’ s u s e a n e x a m pl e . C r e a t e a n e w s t a n da r d E X E pr o j ec t , a n d a d d t h e M A P I S e s si o n a n d
M A P I M e s s a g e s c o n t r o l s M A P I S e s s i o n 1 a n d M A P I M e s sa g e s1 . N ex t a d d t w o bu t t o n s C o m m a n d1 a n d
C o m m a n d2 , w i t h c a p t i o n “ S e n d m a i l ” a n d “ R ea d m a i l ” . A d d a t ex t bo x , T ex t 1 , t o t h e f o r m , s et t i n g
i t s M u l t i L i n e pr o p e r t y t o T r u e a n d i t s S c r o l l B a r s pr o p er t y t o B o t h ( 3 ) .
W h e n u s e r c l i c k s “ s e n d m a i l ” bu t t o n , l e t t h em d o c u m en t s o u s i n g t h e M A P I M e s s a g e s c o n t r o l ’ s
C o m po s e a n d S e n d m e t h o d s . O u r f i r s t t a s k , h o w e v e r , i s t o st a r t a n ew M A P I s e ss i o n , a n d w e do
t h a t w i t h t h e M A P I S e s s i o n c o n t r o l ’ s S i gn O n m e t h o d, a f t er i n di c a t i n g t h a t w e do n ’ t w a n t t o
do w n l o a d e m a i l b y s e t t i n g i t s D o w n L o a dM a i l p r o p er t y t o F a l se.
A f t e r s i gn i n g o n t o t h e M i c r o s o f t E x c h a n g e e m a i l s y st em , w e s e t t h e M A P I M e s sa g e s c o n t r o l ’ s
S e s s i o n I D t o t h e M A P I S e s s i o n c o n t r o l ’ s S e s si o n I D pr o p er t y t o i n i t i a l i z e M A P I M e s s a g e s1 .
T o C o m po s e a n e w e m a i l m e s s a g e , w e h a v e t o s e t t h e M A P I M e ss a g es 1 c o n t r o l ’ s M s gI n d ex pr o p er t y
– 1 a n d c a l l i t s C o m po s e m e t h o d.
U s e r s c a n e n t e r t h e e m a i l t e x t a n d a dd r es s t h e y w a n t t o u s e i n t h a t di a l o g a n d c l i c k S en d bu t t o n t o
send the mail.
W h e n t h e u s e r i s do n e c o m po s i n g t h e e m a i l , w e s en d i t w i t h t h e M A P I M e s sa g e s1 c o n t r o l ’ s S en d
m e t h o d a n d s i gn o f f t h e M A P I s e s s i o n u si n g t h e M A P I S e s si o n 1 c o n t r o l ’ s S i g n O f f m e t h o d.
P r i v a t e S u b C o m m a n d1 _ C l i c k ( )
MAPISession1.DownLoadmail=False
MAPISession1.SignOn
M A P I M e s s a g e s 1 . S e s s i o n I D = M A P I S e s s i o n 1 . S e s si o n I D
M A P I M e s s a g e s 1 . M s gI n d e x = - 1
M A P I M e s s a g e s 1 . C o m po s e
MAPIMessages1.Send True
MAPISession1.SignOff
End Sub
That’s it we’ve sent out mail.
Reading Email in VISUAL BASIC
T o r e a d m a i l y o u s e t t h e M A P I S e s s i o n c o n t r o l ’ s D o w n L o a d M a i l pr o p er t y t o T r u e. L et ’ s u se a n
e x a m p l e , w e ’ l l do w n l o a d a n y w a i t i n g em a i l i n t o t h e u s er ’ s I n bo x a n d t h e n di s pl a y t h e f i r s t m e ss a g e
i n a t e x t bo x . W e ’ l l u s e t h e pr o gr a m w e s t a r t e d i n t h e pr e v i o u s s es s i o n a n d a d d c o de t o t h e “ r e a d
m a i l ” bu t t o n . F i r s t , w e s e t t h e M A P I S e s s i o n c o n t r o l ’ s D o w n L o a dM a i l pr o p er t y t o T r u e, t h en w e u s e
t h a t c o n t r o l ’ s S i gn O n m e t h o d t o s t a r t t h e M A P I s e ss i o n a n d do w n l o a d a n y w a i t i n g em a i l i n t o t h e
I n bo x .
W e u s e M A P I M e s s a ge s c o n t r o l ’ s F e t c h m et h o d t o c r e a t e a m e s s a g e s et . T o do c u m en t t h a t , w e f i r s t
s e t t h e M A P I M e s s a g e s c o n t r o l ’ s S e s s i o n I D pr o p e r t y t o t h e M A P I S e s si o n c o n t r o l ’ s S e s si o n I D pr o p e r t y
and then use Fetch.
N e x t , w e d i s p l a y t h e t e x t o f t h e f i r s t e m a i l m e s s a g e n o w i n t h e I n bo x b y se t t i n g t h e M A P I M e s sa g e s
c o n t r o l ’ s M s gI n d e x t o 0 a n d u s i n g t h e M sg N o t eT ex t p r o p e r t y . F i n a l l y w e si gn o f f t h e M A P I s e s si o n .
P r i v a t e S u b C o m m a n d2 _ C l i c k ( )
MAPISession1.DownLo adMail=True
MAPISession1.SignOn
M A P I M e s s a g e s 1 . S e s s i o n I D = M A P I S e s s i o n 1 . S e s si o n I D
MAPIMessages1.Fetch
M A P I M e s s a g e s 1 . M s gI n d e x = 0
T e x t 1 . T e x t = M A P I M e s s a g e s1 . M s gN o t e T e x t
MAPISession1.SignOff
End Sub
Using FTP
F T P ( F i l e T r a n s f e r P r o t o c o l ) i s a v e r y po pu l a r I n t e r n et pr o t o c o l f o r a s i t s n a m e i m p l i e s, t r a n sf er r i n g
f i l e s . V I S U A L B A S I C h a s go o d s u p po r t f o r F T P w o r k , a n d t h a t su ppo r t i s c o n t a i n e d i n t h e V I S U A L
B A S I C I n t e r n e t t r a n s f e r c o n t r o l . T h a t c o n t r o l h a s t w o a pp r o a c h e s t o w o r k i n g w i t h F T P . Y o u c a n u s e
t h e O p e n U R L m e t h o d t o e a s i l y do w n l o a d a f i l e f r o m a n F T P si t e. I n a d di t i o n , y o u c a n ex ec u t e
s t a n d a r d F T P c o m m a n d s w i t h t h e c o n t r o l ’ s E x ec u t e m e t h o d. U si n g E x ec u t e, y o u c a n m a k e u s e o f
t h e s t a n d a r d F T P c o m m a n d s l i k e C D , G E T , C L O S E , Q U I T , S E N D a n d so o n .
NetScape COMPUTER ACADEMY
176
Using HTTP
H T T P ( H y p e r T e x t T r a n s f e r P r o t o c o l ) i s t h e pr o t o c o l o n w h i c h t h e W o r l d W i d e W eb i s b a se d. A s
m o s t p r o g r a m m e r s k n o w , t h i s i s t h e p r o t o c o l u se d f o r W e b p a ge s o n I n t e r n e t . W h en y o u do w n l o a d
a f i l e u s i n g t h e I n t e r n e t t r a n s f e r c o n t r o l ’ s O p en U R L m e t h o d, y o u g et a c c e s s t o t h e f i l e’ s H T M L
di r e c t l y , w h i c h i s i m po r t a n t i f y o u w a n t t o i n t e r r u pt t h a t H T M L i n a w a y di f f er en t f r o m h o w t h e
I n t e r n e t E x pl o r e r w o u l d. Y o u c a n a l s o u se t h a t c o n t r o l ’ s E x ec u t e m e t h o d t o e x ec u t e H T T P
c o m m a n d s di r e c t l y . B e s i d e s u s i n g I n t e r n e t t r a n s f er c o n t r o l ’ s O pe n U R L m et h o d, y o u c a n a l so u s e
the Execute method to execute such common HTTP commands like GET, POST and PUT.
Using the Internet Transfer Control for FTP and HTTP operations
Y o u u s e t h e M i c r o s o f t I n t e r n e t T r a n s f er C o n t r o l t o h a n dl e F T P a n d H T T P o p er a t i o n i n V I S U A L
B A S I C . U s i n g t h e H T T P p r o t o c o l , y o u c a n c o n n ec t t o w o r l d w i de w e b s er v er s t o r e t r ei v e H T M L
do c u m e n t s . W i t h F T P pr o t o c o l , y o u c a n l o g o n t o F T P se r v e r s t o do w n l o a d a n d u pl o a d f i l e s.
T h e U s e N a m e a n d P a s s w o r d pr o p e r t i e s t h a t a l l o w y o u t o l o g o n t o pr i v a t e se r v e r s t h a t r e qu i r e
a u t h e n t i c a t i o n . O t h e r w i s e , y o u c a n c o n n ec t t o pu bl i c F T P s er v er s a n d do w n l o a d f i l e s. T h e c o m m o n
F T P c o m m a n d s , s u c h a s C D a n d G E T , a r e su p po r t e d t h r o u gh E x ec u t e m e t h o d. Y o u c a n k e e p t r a c k o f
t h e I n t e r n e t t r a n s f e r c o n t r o l ’ s o p e r a t i o n s w i t h t h e S t i l l E x ec u t i n g pr o p er t y . I f t h i s p r o p e r t y i s t r u e,
t h e c o n t r o l i s w o r k i n g o n a t r a n s f e r a n d w i l l n o t r e s po n d t o o t h er s a c t i o n s.
T h e i n t e r n e t t r a n s f e r c o n t r o l p e r f o r m s a s y n c h r o n o u s I n t er n et t r a n sf er s, so b e s i d e s t h e
S t i l l E x e c u t i n g p r o p e r t y , M i c r o s o f t h a s g i v e n t h e c o n t r o l a S t a t e C h a n g e d e v en t . I n t h i s e v en t ’ s
h a n dl e r pr o c e du r e , y o u a r e k e pt u p - t o - da t e o n w h a t ’ s go i n g o n w i t h I n t er n e t t r a n sf er pr o t o c o l .
P r i v a t e S u b o bj e c t _ S t a t e C h a n g e d( B y V a l S t a t e A s I n t e ge r )
End Sub
T h e S t a t e a r gu m e n t c a n t a k e t h e s e v a l u e s













i c N o n e - 0 ; n o s t a t e t o r e po r t
i c H o s t R e s o l v i n gH o s t - 1 ; t h e c o n t r o l i s l o o k i n g u p t h e I P a d d r e s s o f t h e s p ec i f i e d h o s t
c o m pu t e r .
i c H o s t R e s o l v e d - 2 ; t h e c o n t r o l su c c e s sf u l l y f o u n d t h e I P a d d r e s s o f t h e s p ec i f i e d h o s t
c o m pu t e r .
i c C o n n e c t i n g - 3 ; t h e c o n t r o l i s c o n n ec t i n g t o t h e h o st c o m p u t er
i c C o n n e c t e d - 4 ; t h e c o n t r o l s u c c e s sf u l l y c o n n ec t e d t o t h e h o st c o m pu t er
i c R e qu e s t i n g - 5 ; t h e c o n t r o l i s se n d i n g a r e qu e st t o t h e h o s t c o m pu t e r
i c R e qu e s t S e n t - 6 ; t h e c o n t r o l s u c c e s sf u l l y s en t t h e r e qu es t
i c R e c e i v i n gR e s po n s e - 7 ; t h e c o n t r o l i s r ec e i v i n g a r es po n s e f r o m t h e h o s t c o m pu t er
i c R e s po n s e R e c e i v e d - 8 ; t h e c o n t r o l su c c es sf u l l y r ec ei v ed a r e spo n s e f r o m t h e h o st c o m pu t er
i c D i s c o n n e c t i n g - 9 ; t h e c o n t r o l i s d i sc o n n ec t i n g f r o m t h e h o st c o m pu t e r
i c D i s c o n n e c t e d - 1 0 ; t h e c o n t r o l su c c e s sf u l l y d i sc o n n ec t e d f r o m t h e h o st c o m pu t er
i c E r r o r - 1 1 ; a n e r r o r o c c u r r e d i n c o m m u n i c a t i n g w i t h t h e h o st c o m p u t er
i c R e s po n s e C o m p l e t e d - 1 2 ; t h e r e qu e st h a s c o m p l et e d a n d a l l d a t a h a s b e en r ec ei v ed
n o t e t h a t w h e n a r e qu e s t i s f i n i s h e d, t h e S t a t e a r gu m e n t i n t h e S t a t eC h a n g e d e v en t w i l l b e s e t t o
i c R e s po n s e C o m p l e t e d, a n d i t ’ s s a f e t o ex ec u t e a n o t h er c o m m a n d w i t h t h e I n t e r n et t r a n sf e r
pr o t o c o l .
T o a d d a n I n t e r n e t t r a n s f e r c o n t r o l t o a pr o g r a m , f o l l o w t h e s e s t ep s :
1.
2.
3.
4.
s e l e c t P r o j e c t > C o m po n e n t s
C l i c k t h e c o n t r o l s t a b i n c o m po n en t s d i a l o g bo x
S e l e c t t h e e n t r y l a b e l e d M i c r o s o f t I n t er n e t T r a n s f er P r o t o c o l
C l i c k o n O K t o c l o s e t h e C o m po n en t s di a l o g t o a d d t h e M i c r o so f t I n t er n et T r a n sf e r
Control tool to the Toolbox
5.
D o u b l e c l i c k M i c r o s o f t I n t e r n e t T r a n sf er C o n t r o l t o o l t o t h e t o o l bo x a n d a d d t h a t
c o n t r o l t o y o u r f o r m . T h i s c o n t r o l i s i n v i s i bl e a t r u n t i m e, so i t s s i z e a n d l o c a t i o n a r e
i m po r t a n t .
6.
A d d t h e c o de y o u w a n t t o u s e w i t h t h e c o n t r o l t o y o u r pr o gr a m
not
W h e n y o u s t a r t a n F T P o r H T T P o p e r a t i o n w i t h I n t e r n et t r a n sf e r c o n t r o l , t h e c o n t r o l w i l l c o n n ec t t o
t h e I n t e r n e t i f t h e c o m p u t e r i s n o t a l r e a d y c o n n ec t e d.
Download