search for books and compare prices
Tables of Contents for 1001 Visual Basic Programmer's Tips
Chapter/Section Title
Page #
Page Count
An Introduction to Programming
1
1
How Visual Basic Stores Source Files
2
1
Creating an Executable Program
3
1
Getting Started with the New Project Dialog Box
4
1
Using the New Application Wizard
5
1
Understanding Interface Types
6
1
Using the VB Application Wizard to Create a Project Framework
7
1
Selecting an Interface Type in VB Application Wizard
8
1
Understanding Radio Buttons
9
1
Selecting Menus in Application Wizard
10
1
Using the Application Wizard to Create a Toolbar
11
1
Using the Application Wizard to Add Resource Files
12
1
Using the Wizard to Add An Internet Connection
13
1
Understanding Controls
14
1
Including Standard Forms
15
1
Connecting to Databases Using the Wizard
16
1
Finishing the Creation of Your New Wizard---Generated Project
17
1
Reading The VB Application Wizard's Summary Report
18
1
Saving Your New Wizard-Generated Project
19
1
Creating Fully Executable Files Without Entering Any Code
20
1
Understanding the Editing Window
21
1
Understanding The Toolbox
22
1
Understanding The Properties Window
23
1
Understanding The Project Explorer
24
1
Understanding The Form Layout Window
25
1
Understanding The Editing Display Window
26
1
Understanding Icons On the Toolbar
27
1
Introducing the Visual Basic Menu Bar
28
1
Using the File Menu
29
1
Using the Edit Menu
30
1
Using the View Menu
31
1
Using the Project Menu
32
1
Using the Format Menu
33
1
Using the Debug Menu
34
1
Using the Run Menu
35
1
Using the Tools Menu
36
1
Using the Add-Ins Menu
37
1
Creating Forms
38
1
Naming Forms
39
1
Creating Code
40
1
Understanding the End Statement
41
1
Running Your Visual Basic Program
42
1
Changing Form Captions
43
1
Using the Me Object
44
1
Creating an Executable from Your Code
45
1
Understanding Syntax Errors
46
1
Structuring a Visual Basic Program
47
1
Writing Your Second Program
48
1
Changing the Autosave Option
49
1
Defining Just-In-Time Compilation
50
1
Saving Project Files
51
1
Understanding Procedures
52
1
Adding Statements to Your Program
53
1
Displaying Output On a New Line
54
1
Using the Visual Basic Constants
55
1
Visual Basic Does Not Consider Case
56
1
Understanding Logic Errors (Bugs)
57
1
Trapping Errors in Your Programs
58
1
Breaking on All Errors
59
1
Understanding the Program Development Process
60
1
Commenting Your Programs
61
1
Improving Your Program Readability
62
1
Using Comments to Exclude Program Statements
63
1
Beginning to Understand Scope
64
1
Understanding the Way Windows Messages are Handled
65
1
Maintaining Rigid Control of the Interface
66
1
Understanding Variables
67
1
Using The Dim Statement
68
1
Declaring Module- and Form-Level Variables
69
1
Declaring Procedure Variables
70
1
Reconciling Variable Name Conflicts
71
1
Using the Public Keyword with Variables
72
1
Assigning a Value to a Variable
73
1
Understanding Variable Types
74
1
Declaring Multiple Variables of the Same Type
75
1
Commenting Your Variables at Declaration
76
1
Using Meaningful Variable Names
77
1
Understanding Visual Basic's Keywords
78
1
Understanding the Option Explicit Statement
79
1
Understanding the Option Base Statement
80
1
Understanding Variables of Type Integer
81
1
Understanding Variables of Type Long
82
1
Understanding Variables of Type String
83
1
Understanding Variables of Type Fixed--Length String
84
1
Understanding Variables of Type Single
85
1
Understanding Variables of Type Boolean
86
1
Understanding Variables of Type Byte
87
1
Understanding Variables of Type Currency
88
1
Understanding Variables of Type Date
89
1
Understanding Variables of Type Double
90
1
Understanding Variables of Type Object
91
1
Understanding Variables of Type Variant
92
1
Understanding Control Types
93
1
Why Visual Basic Does Not Use Pointers
94
1
Assigning Values to Floating--Point Variables
95
1
Assigning Values to Variables of Type Integer and Long
96
1
Assigning Values to Variables of Type String
97
1
Assigning Values to Variables of Type Fixed--Length String
98
1
Assigning Values to Variables of Types Single and Double
99
1
Assigning Values to Variables of Type Boolean
100
1
Assigning Values to Variables of Type Byte
101
1
Assigning Values to Variables of Type Currency
102
1
Understanding Variables of Type Object
103
1
Assigning Values to Variables of Type Date
104
1
Understanding Overflow
105
1
Understanding Precision
106
1
Assigning Quotes and Other Characters
107
1
Using the Chr Function
108
1
Using Debug.Print to Output Information
109
1
Using the Str Function to Convert a Number to a String
110
1
Using the Format Function to Convert a Number to a String
111
1
Using the Format Function to Convert a Date to a String
112
1
Basic Math Operations in Visual Basic
113
1
Understanding Modulo Arithmetic
114
1
Understanding Operator Precedence
115
1
Forcing the Order of Operator Evaluation
116
1
Adding and Substracting Values
117
1
Understanding a Bitwise Or Operation
118
1
Understanding the Xor Operator
119
1
Understanding a Bitwise And Operation
120
1
Understanding a Bitwise Eqv Operation
121
1
Understanding a Bitwise Imp Operation
122
1
Introducing Conditional Processing
123
1
Introducing Iterative Processing
124
1
Understanding How Visual Basic Represents True and False
125
1
Testing a Condition With If--Then
126
1
Understanding the Use of Parentheses in Conditional Processing
127
1
Understanding Simple and Compound Statements
128
1
Testing for Equality
129
1
Performing Relational Tests
130
1
Performing a Logical And to Test Two Conditions
131
1
Performing a Logical Or to Test Two Conditions
132
1
Performing a Logical Not Operation
133
1
Performing a Logical Xor Operation
134
1
Performing a Logical Eqv Operation
135
1
Performing a Logical Imp Operation
136
1
Assigning the Result of a Condition
137
1
Declaring Variables Within Compound Statements
138
1
Using Indentation to Improve Readability
139
1
Testing Floating--Point Values
140
1
Looping Forever
141
1
Defining Constants
142
1
Beware of If--If--Else
143
1
Performing Statements a Specific Number of Times
144
1
Parts of the For Statement Are Optional
145
1
Decrementing Values in a For--Next Statement
146
1
Controlling the For--Next Loop Increment
147
1
For--Next Loops Are not Just for Integer Variables
148
1
Understanding a Null Loop
149
1
Understanding a Do Events Loop
150
1
Dangers of an Infinite Loop
151
1
Using Nested For--Next Loops
152
1
Changing the Control Variable's Value
153
1
Using Next within a Conditional Statement
154
1
Ending a Loop Using the Exit For Statement
155
1
Repeating One or More Statements Using a Do Loop
156
1
Understanding the Parts of a Do Loop
157
1
Using While--Wend For Loops
158
1
Always Performing One or More Statements Using the Do Loop
159
1
Repeating One or More Statements Using a Do Until Loop
160
1
Ending a Loop Using Exit Do
161
1
Branching with Goto
162
1
Testing Multiple Conditions
163
1
Understanding the Case Else Statement
164
1
Visualizing a Visual Basic String
165
1
How Visual Basic Stores a String
166
1
How Visual Basic Stores Variable--Length Strings
167
1
Understanding Zero--Terminated Strings
168
1
How A Differs From a
169
1
Using the Option Compare Text Switch
170
1
Determining the Length of a String
171
1
Copying One String Variable's
172
1
Appending One String Variable's Contents to Another String Variable
173
1
Appending n Characters to a String Variable
174
1
Handling Oversized Strings
175
1
Ignoring Case When Determining Whether Strings Are Equal
176
1
Obtaining the First Occurrence of a Character Within a String Variable
177
1
Finding the Last Occurrence of a Character in a String
178
1
Counting the Number of Character Occurrences in a String Variable
179
1
Reversing a String Variable's Contents
180
1
Comparing Two Character Strings
181
1
Comparing the First n Characters of Two Strings
182
1
Converting a String Representation of a Number
183
1
Locating a Substring Within a String
184
1
Returning n Characters from a Point Within the String
185
1
Counting the Number of Substring Occurrences
186
1
Using the TextBox Control
187
1
Using the Rich TextBox Control
188
1
Using the Find Method of the Rich TextBox Control
189
1
Understanding Methods
190
1
Understanding Focus
191
1
Obtaining the Rightmost Occurrence of a Substring
192
1
Removing a Substring From Within a String
193
1
Replacing One Substring with Another
194
1
Removing Text Within a Rich TexBox Control
195
1
Replacing Text Within a Rich TextBox Control with Other Text
196
1
Determining Whether a Character is Alphanumeric
197
1
Determining Whether a Character Is a Digit
198
1
Determining Whether a Character Is Upper-or Lowercase
199
1
Determining Whether a String is a Date
200
1
Converting a Character to Uppercase or Lowercase
201
1
Working with ASCII Characters
202
1
Formatting String Variables
203
1
Using Select Case with Strings
204
1
Using a new-line Variable
205
1
Returning Values Using Functions
206
1
Specifying Parameter Types
207
1
Understanding Local Variables
208
1
Understanding Function Overhead
209
1
Reducing Overhead by Declaring Parameter Types
210
1
Where Visual Basic Places Local Variables
211
1
Declaring Global Variables
212
1
Using Public Instead of Global
213
1
Why You Should Avoid Global Variables Within Your Programs
214
1
Resolving Global and Local Variable Name Conflicts
215
1
Better Defining a Variable's Scope
216
1
Defining Procedures
217
1
Defining Functions
218
1
Understanding Call by Value
219
1
Why Call by Value Prevents Parameter Value Change
220
1
Understanding Call By Reference
221
1
Changing a Parameter's Value
222
1
Changing Only Specific Parameters
223
1
Call by Reference Still Uses the Stack
224
1
Function Variables that Remember
225
1
Procedures that Remember
226
1
How Visual Basic Initializes Static Variables
227
1
Creating Errors with the Static Keyword
228
1
Understanding Global versus Local Procedures
229
1
Reusing Procedures
230
1
Understanding Formal and Actual Parameters
231
1
Understanding Scope
232
1
Using Variant Parameters to Receive Unknown Values
233
1
Using Variant Functions to Return Unknown Values
234
1
Using Var Type with Variant Parameters
235
1
Using the Type Name Member Function
236
1
Using Var Type or Type Name With Returned Values
237
1
Updating Global Variables within Functions
238
1
Using Functions which Change Variables within Arithmetic Expressions
239
1
Creating Private Procedures on a Form
240
1
Calling Procedures from within Procedures
241
1
Understanding Recursion
241
2
Understanding the Recursive Factorial Function
243
1
One More Recursive Example
244
1
Display Values to Better Understand Recursion
245
1
Direct and Indirect Recursion
246
1
To Use or Not to Use Recursion
247
1
Working With Dates
248
1
Why Recursive Procedures Are Slow
249
1
How to Remove Recursion
250
1
Passing Constants as Parameters
251
1
A Subroutine is a Procedure that Returns No Values
252
1
A Subroutine is a Procedure that Returns Multiple Values
253
1
Using Procedures Without Parameters
254
1
Understanding Visual Basic's Categories of Scope
255
1
Understanding Name Space and Identifiers
256
1
Understanding Identifier Visibility
257
1
Understanding Duration
258
1
Functions That Support a Variable Number of Parameters
259
1
Supporting a Variable Number of Parameters
260
1
Creating a Function That Supports Multiple Parameters of Multiple Types
261
1
Using the Optional Keyword
262
1
Understanding the IsMissing Member Function
263
1
Using Buffered Input
264
1
Using Input Box to Receive Input
265
1
Using the TextBox Control to Perform Buffered Input
266
1
Reading a Character Using Direct I/O
267
1
Clearing All Fields on The Screen
268
1
Updating a Form's Display
269
1
Positioning Your Cursor Using SetFocus
270
1
Positioning Your Cursor Using Tab Index
271
1
Displaying Output in Color
272
1
Controlling Screen Colors
273
1
Assigning a Background Color
274
1
Creating a Reusable Math Module
275
1
Using the Abs Function
276
1
Using the Cosine/Secant
277
1
Using the Sine/Cosecant
278
1
Using the Arctangent
279
1
Rounding a Floating-Point Value Up
280
1
Working With an Exponential
281
1
Calculating the Natural Log
282
1
Calculating the Result of log10x
283
1
Determining Maximum and Minimum Values
284
1
Breaking a Floating-Point Value into Integer and Fractional Components
285
1
Calculating the Result of xn
286
1
Generating a Random Number
287
1
Mapping Random Values to a Specific Range
288
1
Seeding the Random Number Generator
289
1
Calculating a Value's Square Root
290
1
Using the Tangent of an Angle
291
1
Performing a Net Present Value Calculation
292
1
Performing a Rate Calculation
293
1
Creating a Customized Math Error Handler
294
1
Understanding Arrays
295
1
Declaring an Array
296
1
Visualizing an Array
297
1
Understanding an Array's Storage Requirements
298
1
Initializing an Array
299
1
Accessing Array Elements
300
1
Looping Through Array Elements
301
1
Use Constants to Define Arrays
302
1
Passing an Array to a Function
303
1
Revisiting Arrays and Functions
304
1
Passing Arrays to Procedures
305
1
Determining How Many Elements an Array Can Hold
306
1
Allocating Arrays Dynamically
307
1
Creating Arrays From Delimited Strings
308
1
Understanding Multidimensional Arrays
309
1
Understanding Rows and Columns
310
1
Accessing Elements in a Two-Dimensional Array
311
1
Initializing Elements in a Two-Dimensional Array
312
1
Determining the Amount of Memory a Multidimensional Array Consumes
313
1
Looping Through a Two-Dimensional Array
314
1
Traversing a Three-Dimensional Array
315
1
Passing a Two-Dimensional Array to a Function
316
1
Understanding How Visual Basic Stores Multidimensional Arrays
317
1
Arrays of Structures of Arrays
318
1
Searching an Array for a Specific Value
319
1
Understanding a Binary Search
320
1
Using a Binary Search
321
1
Sorting an Array
322
1
Understanding the Bubble Sort
323
1
Putting a Bubble Sort to Use
324
1
Understanding the Selection Sort
325
1
Putting a Selection Sort to Use
326
1
Understanding the Shell Sort
327
1
Putting a Shell Sort to Use
328
1
Understanding the Quick Sort
329
1
Putting a Quick Sort to Use
330
1
Problems with Previous Sorting Solutions
331
1
Sorting an Array of Character Strings
332
1
Sorting Arrays with Quick_Sort
333
1
Searching an Array with Seq_One_Find
334
1
Using the TypeName Member Function
335
1
Searching a Sorted Array with Bin_Search
336
1
Determining the Number of Array Elements
337
1
Looping Through an Array of Character Strings
338
1
Setting Optional Ranges for Arrays
339
1
Understanding Structures
340
1
A Structure is a Template for Variable Declarations
341
1
A Structure Tag is the Structure's Name
342
1
Declaring a Structure Variable
343
1
Using the Public---Private Keywords With Structures
344
1
Understanding Structure Members
345
1
Visualizing a Structure
346
1
Putting a Structure to Use
347
1
Passing a Structure to a Function
348
1
Changing a Structure Within a Function
349
1
Structure Definitions Have Scope
350
1
Initializing a Structure
351
1
Performing Structure Input/Output
352
1
Using a Nested Structure
353
1
Structures That Contain Arrays
354
1
Creating an Array of Structures
355
1
Using Files, Directories, and Disks---The Easy Way and the Hard Way
356
1
Using the DriveListBox Control
357
1
Using the DriveListBox Control to Change the Drive
358
1
The DirectoryListBox Control
359
1
Changing the Default Directory
360
1
Using the FileListBox Control
361
1
Showing Only Some Files in the List
362
1
Understanding the Common Dialog Control
363
1
Using Patterns with the CommonDialog Control
364
1
Setting the Default Path for the CommonDialog Control
365
1
Returning the Selected File and Path
366
1
Saving a Text File
367
1
Canceling the Open or Save As Processes Using Cancel
368
1
Understanding the Windows API
369
1
Using the API Viewer
370
1
Using the GetCurrentDirectory API Function
371
1
Writing a Wrapper Function
372
1
Using the SetCurrentDirectory API Function
373
1
Using the GetDiskFreeSpace API Function
374
1
Using the GetVolumeInformation API Function
375
1
Using the GetDriveType API Function
376
1
Trapping for a Drive Not Ready
377
1
Renaming Files From Within Your Programs
378
1
Deleting Files from Within a Program
379
1
Deleting Directories from Within a Program
380
1
Setting a File's Access Mode
381
1
Determining a File's Size
382
1
Using the Open Statement
383
1
Using the Close Statement
384
1
Using Sequential File Access to Read From a File
385
1
Using the EOF Function When Reading Files
386
1
Using Sequential File Access to Write To a File
387
1
Using LOF and Loc to Read Binary Files
388
1
Using Input and Input # to Read From Files
389
1
Using Write # To Output to a Sequential File
390
1
Revisiting Structures and File I/O
391
1
Using Put to Write Data to a Random-Access File
392
1
Using Get to Retrieve Records from a Random-Access File
393
1
Using the Seek Statement to Move Through Random-Access Files
394
1
Creating Temporary Files
395
1
Getting the Windows Path
396
1
Getting the System Path
397
1
Minimize File I/O Operations
398
1
Using the ChDrive and ChDir Statements
399
1
Creating a Directory
400
1
Removing a Directory
401
1
Removing a Directory Tree Using Recursion
402
1
Parsing a PathName
403
1
Obtaining a File's Date and Time Stamp
404
1
Using Dir to Locate Directories and Files
405
1
Sorting the Returned Values for Dir Into Files and Directories
406
1
Using Dir to Locate Files
407
1
Copying Files from Within Your Programs
408
1
Moving Files From Within Your Programs
409
1
Searching for Files
410
1
Using the FindFirstFile Function
411
1
Finding the Remaining Occurrences with FindNextFile
412
1
Searching the Entire Directory Tree
413
1
Creating a User Interface With The Files Returned from a Find Operation
414
1
Using the Findxxx Functions to Locate Directories
415
1
Using the Find Functions to Recursively List All Directories in a Tree
416
1
Removing a Directory Tree Revisited: Using Recursion
417
1
Obtaining the Current System Date
418
1
Obtaining the Current System Time
419
1
Returning a Date Value Representing the Current Date and Time
420
1
Delaying a Specific Number of Milliseconds
421
1
Delaying an Approximate Number of Milliseconds
422
1
Limitations of Sleep and DoEvents
423
1
Determining Your Program's Processing Time
424
1
Comparing Two Times Revisited
425
1
Using DoEvents to Delay A Specific Number of Seconds
426
1
Converting a Date to a String and Back
427
1
Verifying a String as a Date
428
1
Setting the System Date and Time
429
1
Setting the Date and Time Using Integer Values
430
1
Adding Time to a Date
431
1
Segmenting a Date into its Component Parts
432
1
Understanding the Single Document Interface
433
1
Understanding SDI Forms
434
1
Understanding the Show Method
435
1
Understanding the Load Statement
436
1
Understanding Unload and Hide
437
1
Basics of Good Form Design
438
1
Naming Forms
439
1
Varying Form Layouts
440
1
Understanding Control Arrays
441
1
Creating Control Arrays
442
1
Naming Control Arrays
443
1
Understanding Form Arrays
444
1
Understanding the Creation of an MDI Interface
445
1
Creating a Form Array
446
1
Using a Boolean Array to Manage the Form Array
447
1
Using a Control Array to Create Objects at Run Time
448
1
Removing Objects from a Control Array at Run Time
449
1
Understanding Menus
450
1
Using the Menu Editor
451
1
Creating a Menu
452
1
Adding Functionality to the Menu
453
1
Using the Enabled Property with Menus
454
1
Using the Checked Property with Menus
455
1
Creating a Windowlist
456
1
Understanding Accelerator Keys
457
1
Using the Tile and Cascade Commands
458
1
Understanding Menu Arrays
459
1
Creating a Menu Array
460
1
Understanding the Difference Between Menus and Pop-up Menus
461
1
Creating a Pop-up Menu
462
1
Adding Code to the Pop-Up Menu Options
463
1
Implementing the Pop-up Menu
464
1
Creating Intelligent Contextual Menus
465
1
Using the Boldcommand Property
466
1
Menus on Child Forms Transpose to the Parent Form
467
1
Using Negotiation with Menus
468
1
Displaying Multiple Modal Forms
469
1
Displaying Modeless Forms After Displaying a Modal Form
470
1
Scope of Procedures Within a Form
471
1
Exposing Values to Outside Entities
472
1
Using Public Events With Outside Entities
473
1
Understanding the ActiveForm Property
474
1
Understanding the Load, Initialize and Activate From Events
475
1
Understanding the Resize Event
476
1
Understanding the Query Unload and the Unload Events
477
1
Understanding the Deactivate and LostFocus Form Events
478
1
Understanding the Terminate Event
479
1
The Refresh Method
480
1
Controlling the Height and Width of Forms
481
1
Understanding Containers
482
1
Understanding Frames
483
1
Using Containers to Manage the Form
484
1
Using the GetSystemMetrics API Function
485
1
Using GetSystemMetrics Together With Resize
486
1
Using the Hide Method with SDI Forms
487
1
Understanding the MouseMove Event
488
1
The MousePointer Property
489
1
Using the MouseIcon Property
490
1
Using the Icon Property with Forms
491
1
Using the Toolbar Control
492
1
Understanding Objects and Collections
493
1
Using the Buttons Collection and the Button Object
494
1
Creating a Toolbar With Text Buttons
495
1
Understanding the ImageList Control
496
1
Using the ImageList and Toolbar Controls Together
497
1
Using Toolbars in MDI Programs
498
1
Toolbars on Both Parent and Child Forms
499
1
Placing Toolbars only on the Parent Form
500
1
Toolbars and ActiveForm
501
1
Using Toolbars and Menus in Conjunction
502
1
Maintaining a Constant Image Size
503
1
Designing Custom Icons
504
1
Distributing Icons With Programs
505
1
Understanding the StatusBar Control
506
1
Understanding the Panel Object, Panels Collection
507
1
Creating a StatusBar Control
508
1
Writing an UpdateStatusBar Subroutine
509
1
Sectioning the Status Bar
510
1
Using MouseMove With the Status Bar
511
1
Using Multiple StatusBars
512
1
Revisiting Public versus Private Functions
513
1
Passing Object Variables to Procedures
514
1
Passing Control Arrays Into Procedures
515
1
Introducing Public Controls
516
1
Sensing Keypresses with the KeyPress Event
517
1
Using KeyPress with a TextBox to Receive a User Password
518
1
Understanding the KeyDown and KeyUp Events
519
1
Setting a Form's WindowState Property
520
1
Controlling the Caption of a Form
521
1
Creating an IsDirty Property
522
1
Reviewing Forms
523
1
Advanced Controls
524
1
Revisiting the CommonDialog Control
525
1
Using the CommonDialog Control to Print
526
1
Printing Text to the Default Printer
527
1
Understanding the Printer object, Printers collection
528
1
Using the For Each-Next Construction
529
1
Understanding the EndDoc Method
530
1
Using the CommonDialog Control to Set Fonts
531
1
Setting Fonts in a Rich TextBox with the CommonDialog
532
1
Using the Change Event with Edit Fields
533
1
Understanding Libraries and Reusable Object Code
534
1
Understanding ActiveX DLLs
535
1
Creating and Using Project Groups
536
1
Displaying Predefined Error Messages
537
1
Understanding Portability
538
1
Branching and Returning Within a Procedure
539
1
Using Structure Variables Instead of Constants
540
1
Visual Basic's Predefined Constants
541
1
Using Enumerated Types
542
1
Putting an Enumerated Type to Use
543
1
Understanding an Enumerated Value
544
1
Assigning a Specific Value to an Enumerated Type
545
1
Understanding Child Processes
546
1
Using the Shell Function
547
1
Using a Temporary File to Pass Data to the Child Process
548
1
Using AppActivate to Activate the Child Process
549
1
Using Shell to Run Programs Sequentially
550
1
Using Break for Debugging
551
1
Adding Watches
552
1
The Watch Window
553
1
Stepping Into Your Program Code
554
1
Stepping Over a Procedure's Code
555
1
Stepping Out
556
1
Restarting the Program
557
1
Setting Breakpoints Within the Program
558
1
Understanding Labels
559
1
Using Labels for Error-Trapping Routines
560
1
Using Labels for Go To Loops
561
1
Understanding Critical Errors
562
1
Using the Timer Event to Autosave Information
563
1
Understanding the Timer Control
564
1
Understanding Invariant Code
565
1
Understanding Code Compaction
566
1
Understanding Loop Compaction
567
1
Using Common Subexpression Elimination
568
1
Grasping Visual Basic's Basic Types
569
1
Understanding Derived Types
570
1
Rules for Using Initializers
571
1
Contrasting Declarations and Definitions
572
1
Declaring Variables Where You Need Them
573
1
Revisiting the Optional Keyword
574
1
Revisiting the ParamArray Keyword
575
1
Using Default Values with Optional Parameters
576
1
Using Default Types
577
1
Understanding Lazy (or Short-Circuit) Evaluation
578
1
Creating an Instance of an Object with the New Operator
579
1
Using Functions as Members Within Structures
580
1
Different Structures with the Same Member Names
581
1
Understanding Objects
582
1
Understanding Object-Oriented Programming
583
1
Understanding Why Visual Basic is not Truly Object-Oriented
584
1
Understanding Visual Basic Classes
585
1
Conceptualizing Classes
586
1
Creating Classes Using the Class Builder Utility
587
1
Understanding the Public Label
588
1
Understanding Information Hiding
589
1
Using the Private Keyword Within a Class
590
1
Using Public and Private Data
591
1
Public Methods Are Often Called Interface Functions
592
1
Defining Class Functions
593
1
Using the Property Let and Property Get Methods
594
1
Understanding Object Instances
595
1
Creating Object Instances
596
1
Understanding Class Scope
597
1
Creating an Array of Class Variables
598
1
Using With-End With
599
1
Understanding Encapsulation
600
1
Revisiting Libraries
601
1
Ordering Public and Private Members
602
1
Understanding Default Scope with Class Modules
603
1
Understanding the Static Store
604
1
Understanding ActiveX
605
1
Understanding the Difference Between ActiveX and OLE 2.0
606
1
Using the WithEvents Property in a Dimension Statement
607
1
Using the ActiveX Controls Provided with Visual Basic
608
1
Using the Change Event
609
1
Understanding the ComboBox Control
610
1
Using the Change and Click Events with the ComboBox
611
1
Using ComboBoxes to Change Information on a Form
612
1
Deciding Between Combo and ListBoxes
613
1
Understanding the MaskEdBox Control
614
1
Using the MaskEdBox Control to Validate Data
615
1
Revisiting Reusable Objects
616
1
Placing Procedures
617
1
Using a Control Event to Trigger Other Events
618
1
Using LostFocus Together with ListIndex to Start Dependent Forms
619
1
Understanding Forms as Classes
620
1
Understanding an Entirely Dialog Box-Based Application
621
1
Changing the Startup Location of a Program
622
1
Understanding Initialization Routines
623
1
Placing Global Variables and Procedures in Multiple Locations
624
1
Using Functions to Return a User-Defined Class or Structure
625
1
Understanding the Picture Box Control
626
1
Using a PictureBox Control
627
1
Understanding the Image Control
628
1
Displaying Pictures on a Form
629
1
Using the Shape Control
630
1
Using the Line Control
631
1
Using Checkboxes to Obtain Boolean Values
632
1
Using Multiple Groups of Option Buttons on a Single Form
633
1
Using Horizontal and Vertical Scroll Bars
634
1
Understanding the Timer Control
635
1
Understanding Custom Controls
636
1
Using Custom Controls
637
1
Revisiting Rich TextBoxes
638
1
Creating the Basics of the Interface
639
1
Adding Functionality to the MDN Program
640
1
Adding the Find Dialog Box
641
1
Improving the Multiple-Document Notepad Application
642
1
Revisiting the Query-Unload Event
643
1
Understanding the Relationship between the RichTextBox and the CommonDialog
644
1
Understanding the Progress Bar
645
1
Using the Progress Bar Control
646
1
Using the Hourglass Mouse Pointer
647
1
Using the Other MousePointer Properties
648
1
Using Global Variables to Protect Against Interruptions
649
1
Introducing Databases
650
1
Understanding Database Access
651
1
Fundamental Principles of Database Design
652
1
Understanding Relational Databases
653
1
Understanding Normalization
654
1
Minimizing Your Database's Storage Requirements
655
1
Protecting Your Database
656
1
Understanding the System MDW File
657
1
Introducing SQL
658
1
Understanding how Access SQL is Different from ANSI SQL
659
1
Getting Started with the Visual Data Manager
660
1
Understanding DAO and ODBC
661
1
Using the DAO Objects
662
1
Using the SQL Create Table Statement
663
1
Understanding and Formatting SQL Create Table Statements
664
1
Understanding the Execute Method
665
1
Creating Indexes Using Constraint
666
1
Using the SQL Create Index Statement
667
1
Determining Which Field to Index
668
1
Understanding Primary Keys
669
1
Understanding the Workspace Object
670
1
Using the Open Database Method
671
1
Creating a New Database
672
1
Understanding the Database Object
673
1
Understanding the Recordset Object
674
1
Using the OpenRecordset Method
675
1
Understanding the SQL Select Statement
676
1
Retrieving Recordsets
677
1
Understanding the Order By Clause
678
1
Understanding the Where Clause
679
1
Understanding Inner Joins
680
1
Understanding Left and Right Joins
681
1
Understanding Set with Databases
682
1
Understanding the QueryDeef Object
683
1
Using the RecordCount Property
684
1
Understanding the Move Methods
685
1
Using the BOF and EOF Properties
686
1
Determining if a Recordset is Empty
687
1
Using the Find Methods
688
1
Using the Seek Method
689
1
Understanding Bookmarks
690
1
Using Bookmarks
691
1
Using Scratch Recordsets
692
1
Understanding Recordset Creation Errors
693
1
Understanding Groups
694
1
Understanding Users
695
1
Understanding Permissions
696
1
Understanding DAO Documents and Containers
697
1
Adding New Records
698
1
Using the Update and Edit Methods
699
1
Using the Requery Method
700
1
Validating Data
701
1
Understanding Transaction Processing
702
1
Using Begin Trans and CommitTrans
703
1
Using the Rollback Method
704
1
Understanding the Data Control
705
1
Using the Data Control with Stored Queries
706
1
Handling BOF and EOF with the Data Control
707
1
Understanding the RecordSource Property
708
1
Understanding Data-Bound Controls
709
1
Using Multiple Data Controls
710
1
Understanding the Data-Bound Grid Control
711
1
Using the Data-Bound Grid Control
712
1
Sizing the Width of the Data-Bound Grid
713
1
Placing a RecordCount Caption in the Data Control
714
1
Changing the RecordCount Caption Using the Grid Control
715
1
Understanding the Data-Bound ListBox Control
716
1
Using the Data-Bound List Control
717
1
Linking the DBList Control to Another Control
718
1
Understanding the Data-Bound ComboBox Control
719
1
Using the Data-Bound ComboBox Control
720
1
Understanding the Clone Method
721
1
Using the Clone Method
722
1
Using the DataChanged Property
723
1
Understanding SQL-Transact Statements
724
1
Understanding Update Queries
725
1
Using an Update Query
726
1
Understanding Delete Queries
727
1
Understanding Union Queries
728
1
Understanding the Group By Statement
729
1
Using the Group By Statement
730
1
Understanding the SQL Aggregate Functions
731
1
Using the Sum Statement
732
1
Understanding the Having Statement
733
1
Using Variables in Queries
734
1
Creating New Queries Using a Query Result
735
1
Using On Error-Resume with SQL Queries
736
1
Preventing Errors By Checking Values
737
1
Creating Backups of Databases
738
1
Introducing Client-Server Databases
739
1
Understanding Remote Data Objects
740
1
Understanding the RemoteData Control
741
1
Creating Recordsets with the RemoteData Control
742
1
Understanding the RemoteData Constants
743
1
Understanding the rdoEnvironment Object
744
1
Establishing a Remote Data Connection
745
1
Maintaining Information About an Open Connection
746
1
Understanding the Field Object
747
1
Determining When to Use Ordinal Numbers with Collections
748
1
Using Field Names to Manage Databases
749
1
Understanding Record Locking
750
1
Saving Records from Unbound Controls
751
1
Updating Records from Unbound Controls
752
1
Revisiting the Importance of Databases
753
1
Understanding the TreeView Control
754
1
Understanding the Node Object
755
1
Using the TreeView Control
756
1
Understanding the Add Method of the Nodes Collection
757
1
Adding Images to the TreeView Control
758
1
Using the ProgressBar while Populating the TreeView Control
759
1
Filling the TreeView Control From a Recordset
760
1
Understanding Visual Basic and the Internet
761
1
Understanding the MSComm Control
762
1
Understanding the CommEvent Property
763
1
Using the MSComm Control
764
1
Understanding the OnComm Event
765
1
Using the OnComm Event
766
1
Understanding the RThreshold and SThreshold Properties
767
1
Transmitting Data with the MSComm Control
768
1
Receiving Data Using the MSComm Control
769
1
Creating a Simple Terminal Program
770
1
Creating Automated Transmission Events
771
1
Understanding the Winsock Control
772
1
Using the Winsock Control
773
1
Understanding the GetData Method
774
1
Understanding the SendComplete and SendProgress Events
775
1
Returning a Handle from a Winsock Contro
776
1
Using the Winsock Control on the Server Machine
777
1
Returning the Current State of the Winsock Control
778
1
Understanding the Internet Transfer Control
779
1
Understanding the Execute Method
780
1
Using Execute with HTTP Commands
781
1
Using Execute with FTP Commands
782
1
Ensuring your Name and Password are Maintained
783
1
Connecting to the Internet
784
1
Navigating the FTP Server
785
1
Using Get to Retrieve a File from an FTP Server
786
1
Writing to the FTP Server
787
1
Writing an Automatic FTP Upload and Retrieve Program
788
1
Writing an FTP Browser
789
1
Understanding the WebBrowser Control
790
1
Using the WebBrowser Control
791
1
Understanding the Navigate Method
792
1
Understanding the NavigateComplete Event
793
1
Using the Location URL Property
794
1
Using the ProgressChange Event
795
1
Using the LocationName Property
796
1
Understanding the DownloadBegin and DownloadComplete Events
797
1
Stopping a Page Download
798
1
Accessing FTP From Within the WebBrowser Control
799
1
Creating Multiple Web Browsers
800
1
Setting a Home Page
801
1
Moving Back and Forward
802
1
Writing the Visual Basic Internet Browser
803
1
Revisiting ActiveX
804
1
Understanding the Different Types of ActiveX
805
1
Determining Whether to use an ActiveX Control, EXE, or DLL
806
1
Understanding the UserControl Object
807
1
Using Visual Basic to Create Controls
808
1
Understanding Visual Basic Control Creation Edition
809
1
Understanding ActiveX Security
810
1
Signing ActiveX Controls
811
1
CABbing ActiveX Controls
812
1
CABbing a Sample ActiveX Control
813
1
Using the Wizard to Create an ActiveX Control
814
1
Understanding the Create Custom Interface Members Dialog Box
815
1
Mapping Functionality
816
1
Setting Attributes
817
1
Completing the Wizard
818
1
Beginning to Create the ActiveX Control
819
1
Making the Control Functional
820
1
Testing the Control
821
1
Understanding ActiveX Control Events
822
1
Understanding an ActiveX Control's Lifetime
823
1
Responding to non-LifeTime Events
824
1
Understanding the RaiseEvent Statement
825
1
Using the Event Statement
826
1
Adding Functionality to the Control
827
1
Executing the ColorfulCmdButton Control's Container
828
1
Understanding the Property Page Wizard
829
1
Using the Property Page Wizard
830
1
Understanding ActiveX Documents
831
1
Creating an ActiveX Document
832
1
Targeting a Container for your ActiveX Document
833
1
Discovering the Target Application's Object Model
834
1
Understanding Variations in the Object Model
835
1
Understanding the UserDocument Object
836
1
Using the UserDocument Object
837
1
Testing the ActiveX Document
838
1
Debugging the FirstACXDoc ActiveX Document
839
1
Adding a Second ActiveX Document to the Project
840
1
Running the Two Document Project
841
1
Understanding ActiveX DLL Files
842
1
Creating the Class for your ActiveX DLL File
843
1
Creating the Properties and Methods for the Happy Class
844
1
Initializing the Class
845
1
Creating the MyTest Project
846
1
Instantiating the MyTest Class
847
1
Executing the MyTest Project
848
1
Understanding Object Lifetimes
849
1
Adding the SelfAbsorbed Property to the MyTest Class
850
1
Understanding Circular References
851
1
Understanding ActiveX Component Naming Guidelines
852
1
Understanding Well-Behaved Components
853
1
Understanding VB Script
854
1
Understanding the Benefits of VB Script
855
1
Using VBScript Within HTML
856
1
Responding to Events in VBScript
857
1
Executing the Hello. HTML File
858
1
Commenting VBScript
859
1
Implementing Mathematical Functions in VBScript
860
1
Implementing Events and Operations
861
1
Using Option Explicit with VBScript
862
1
Using Dim in VBScript
863
1
Using VBScript with ActiveX Controls
864
1
Accessing ActiveX Controls From VBScript
865
1
Using the Label and Timer Controls within an HTML Page
866
1
Referencing ActiveX Controls
867
1
Understanding the Param Name Tag
868
1
Registering ActiveX Controls
869
1
Using the Registry Editor to Discover Class Ids
870
1
Using the WebBrowser Control within an HTML File
871
1
Active Sever Pages
872
1
Responses and Request in ASP
873
1
Making Use of Querystring Parameters
874
1
A formatting Shortcut
875
1
Back Where You Came From
876
1
Understanding .ini files
877
1
Using the WritePrivateProfileString API With Files
878
1
Using the GetPrivateProfileString API with .ini Files
879
1
Using the GetPrivateProfileInt API with .ini files
880
1
Using .ini Files with Distributed Programs
881
1
Understanding the Limitations of .ini Files
882
1
Understanding the System Registry
883
1
Understanding the SaveSetting Function
884
1
Understanding the GetSetting Member Function
885
1
Using the SaveSetting and GetSetting Statements
886
1
Saving Form Sizes and Positions in the Registry
887
1
Passing Variables Between Programs within the Registry
888
1
Using the DeleteSetting Function
889
1
Using the GetAllSettings Function
890
1
Using API Functions with the Registry
891
1
Understanding the RegOpenKeyEx API Function
892
1
Understanding the RegQueryValueEx Function
893
1
Understanding the RegCloseKey Function
894
1
Using the API Functions When Opening Forms
895
1
Understanding the RegCreateKeyEx Function
896
1
Understanding the RegSetValueEx Function
897
1
Using RegSetValueEx and RegCreateValueEx
898
1
Capturing Registry Errors
899
1
Deleting Keys and Values Using API Functions
900
1
Considering Registry Access
901
1
Understanding Conditional Compilation
902
1
Understanding the #Const Statement
903
1
Understanding #If-Then-#Else
904
1
Using Conditional Compilation
905
1
Understanding the GetWindowsDirectory API Function
906
1
Understanding the GetSystemDirectory API Function
907
1
Using the GetWindow Function
908
1
Finding a Window's Name
909
1
Exporting Your Application
910
1
Understanding the Visual Basic Setup Wizard
911
1
Selecting a Project File to Distribute
912
1
Selecting the Distribution Media
913
1
Ensuring that all Files are in the Distribution List
914
1
Saving Installation Templates
915
1
Generating Your Distribution Media
916
1
Installing the Program at the User's Computer
917
1
Creating an Internet Distribution
918
1
Reconsidering the Application Wizard
919
1
Using Application Wizard to Generate Standard Forms
920
1
Understanding the Splash Screen
921
1
Understanding the About Box
922
1
Adding Database Forms Using the Wizard
923
1
Understanding Crystal Reports
924
1
Using Crystal Reports
925
1
Selecting a Data Source for Your Report
926
1
Adding Fields to Your Report
927
1
Grouping Records within Your Report
928
1
Totaling and Counting Grouped Fields
929
1
Selecting Records and Styling the Report
930
1
Modifying the Report
931
1
Moving, Resizing, Formatting and Deleting Fields
932
1
Changing the Sort Sequence of Report Data
933
1
Correcting the Sort and Group Order
934
1
Creating Custom Groups
935
1
Working with Summarized and Totaled Fields
936
1
Inserting Subtotals
937
1
Inserting a Grand Total
938
1
Inserting a Summary
939
1
Selecting Records
940
1
Returning the Top N Records in a Group
941
1
Creating Formulas
942
1
Adding a Graph/Chart to Your Report
943
1
Inserting OLE or ActiveX Objects into Your Report
944
1
Adding or Changing a Report Title
945
1
Understanding the Crystal Report Engine
946
1
Understanding the Crystal ActiveX Control
947
1
Using the Crystal ActiveX Control
948
1
Understanding the Icons on the Crystal Window
949
1
Limitations of the Crystal Reports Control
950
1
Extending Visual Basic
951
1
Revisiting the Object Model
952
1
Understanding Add-Ins
953
1
Creating an Add-In
954
1
Accessing the Extensibility Model
955
1
Creating the Project Components
956
1
Understanding the IDTExtensibility Interface
957
1
Understanding the OnConnection Function
958
1
Dissecting the OnConnection Code
959
1
Understanding the AddToAddInCommandBar Function
960
1
Customizing the Connect Module
961
1
Adding the Final Component
962
1
Completing the Add-In's Design
963
1
Adding the Add-In to the .ini File
964
1
Loading Your Add-In
965
1
Troubleshooting the Add-In
966
1
Understanding ActiveX Exe
967
1
Differentiating Between In-Process and Out-Of-Process Components
968
1
Understanding Threads
969
1
Understanding Asynchronous Processing
970
1
Understanding Asynchronous Notification Using Events
971
1
Understanding Asynchronous Notification Using Call-Back Methods
972
1
Using Call-Backs With Multiple Clients
973
1
Deciding Between Events or Call-Backs for Notifications
974
1
Understanding Type Libraries
975
1
Understanding Default Interfaces
976
1
Revisiting GUIDs
977
1
Understanding Version Compatibility
978
1
Creating an ActiveX EXE
979
1
Understanding Modality with Out-Of-Process Components
980
1
Beginning the Creation of the Test Project
981
1
Adding Code to the Test Project
982
1
Viewing TestForm Modally
983
1
Viewing TestForm Modelessly
984
1
Using Asynchronous Notifications
985
1
Completing the Code For the Event Notification
986
1
Writing the Client Program
987
1
Considering How to Handle Multiple Clients
988
1
Using the Connector Object
989
1
Recognizing the Bug in Connector
990
1
Using Asynchronous Call-Back Methods
991
1
Creating the Lunch TimeMonitor Executable
992
1
Distributing the ActiveX EXE
993
1
Understanding Single Threads
994
1
Ordering Your Development of ActiveX Components
995
1
Revisiting Multithreading
996
1
Understanding Apartment-Model Threading
997
1
Understanding Reentrancy
998
1
Understanding Binary Compatibility
999
1
Avoiding Version Trees
1000
1
Avoiding Version Compatibility Messages
1001