Errata

VB & VBA in a Nutshell: The Language

Errata for VB & VBA in a Nutshell: The Language

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Printed
Page 16
1st sentence of paragraph after "At startup"

"When Excel starts. it automatically" should read
"When Excel starts, it automatically".

Anonymous   
Printed
Page 18
In the 1st para. after "Using a Code Module" section, lines 2-3,

deleted the sentence beginning

"In all but standard EXE projects..."

Anonymous    Apr 01, 1999
Printed
Page 25

The last sentence in the paragraph entitled "Unload" did read:

...that the Form Load event is now preceded by an Activate event...

It now reads:

...that the Form Load event is now preceded by an Initialize event...

Anonymous    Jun 01, 2001
Printed
Page 39
The first line of code in the "Nothing keyword" section towards the

bottom of the page did read:

If objVar Is Not Nothing Then

It now reads:

If Not objVar Is Nothing Then

Anonymous    Jun 01, 2001
Printed
Page 42
Line 3 of the first program listing on the page, the line of code

Dim intIndex As Integer

now reads

Dim iIndex As Integer

Anonymous    Jan 01, 1999
Printed
Page 42
Paragraph 3, line 3

sMyArray(intIndex) = txtText1.Text

Has been changed to:

sMyArray(iIndex) = txtText1.Text

Anonymous    Sep 01, 2001
Printed
Page 46
The second line of the first paragraph

...within the custRecord UDT, an array of type custRecord is defined.

Has been changed to:

...within the custRecord UDT, an array of type custOrders is defined.

Anonymous    Sep 01, 2001
Printed
Page 57

The second bulleted list item now reads:

A Property Let procedure to validate and accept the
incoming value, or a Property Set procedure to validate
and accept an incoming object reference.

The third bulleted list item now reads:

A Property Get procedure to pass the value of the
private member variable to the calling program.

Anonymous    Sep 01, 2001
Printed
Page 70
The entire block of text in the "Out-of-Process Components" section

has been deleted and has been replaced with the following:

"This is ideal for cases in which multiple applications (or multiple
clients) are likely to require the functionality offered by the
classes included in the ActiveX EXE. Moreover, an ActiveX EXE need not
reside on the same system as its client; the Distributed Component
Object Model (DCOM) provides location transparency.

While including publicly accessible classes in ActiveX, EXEs can have
definite advantages. They do involve launching a process apart from
the client, and therefore, usually provide inferior performance
compared with ActiveX DLLs."

Anonymous    Sep 01, 2001
Printed
Page 71
On page 71, the description of MultiUse

"The class has scope (i.e., it's visible) outside of the project...
and it can't be instantiated using the New keyword..."

Has been changed to:

"The class has scope (i.e., it's visible) outside of the project...
and it can be instantiated using the New keyword..."

Anonymous    Sep 01, 2001
Printed
Page 94
2nd full para., line 1 changed

"see the GetServerSettings"

to

"see the GetAutoServerSettings"

Anonymous    Apr 01, 1999
Printed
Page 197
Rules at a Glance section

"(i.e., "ww")"

Has been changed to:

"(e.g. "ww")"

Anonymous    Sep 01, 2001
Printed
Page 200

The section "Rules at a Glance," used to read:

The calculation performed by DateDiff is always date1-date2.
Therefore, if date1 chronologically precedes date2, the value returned
by the function is negative.

It now reads:

The calculation performed by DateDiff is always date2-date1.
Therefore, if date1 chronologically precedes date2, the value returned
by the function is negative.

Anonymous    Apr 01, 1999
Printed
Page 200

The first bulleted item in "Rules at a Glance" now reads:

The calculation performed by DateDiff is always date2-date1.
Therefore, if date2 chronologically precedes date1, the value
returned by the functions is negative.

Anonymous    Jun 01, 2001
Printed
Page 208
In the Syntax for Day Function

The path of the directory to set as the new default directory.

now reads:

Any expression capable of conversion to a Date.

Anonymous    Jun 01, 2001
Printed
Page 225
The 3rd line on the page did read:

Data Type: String

It now reads:

Data Type: Any

Anonymous    Jun 01, 2001
Printed
Page 250
At the bottom of the page, the third bulleted item under "Programming

Tips & Gotchas" did read:

.. to either input or append.

It now reads:

.. to either output or append.

Anonymous    Jun 01, 2001
Printed
Page 252
In the Syntax for Erase Statement:

Data Type: String

now reads:

Data Type: Any

Anonymous    Jun 01, 2001
Printed
Page 310
The following line was inserted at the beginning of the Filter Function

example:

Dim i As Integer

Anonymous    Jun 01, 2001
Printed
Page 310
The first line of the Filter Function example (after the line that was

added) now reads:

Dim sKeys() As Variant

Anonymous    Jun 01, 2001
Printed
Page 310

Lines 7-10 of the Filter Function example now read:


odict.add "Microsoft", "One Microsoft Way"
oDict.Add "AnyMicro Inc.", "31 Harbour Drive"
oDict.Add "Landbor Data", "The Plaza"
oDict.Add "Micron Co.", "999 Pleasant View"

Anonymous    Jun 01, 2001
Printed
Page 310
Lines 19-23 of the Filter Function example were replaced with the

following two lines:

Debug.Print sFiltered(i) & ", " & _
oDict.Item(sFiltered(i))

Anonymous    Jun 01, 2001
Printed
Page 320

The Syntax for For...Next Statement did read:

For <i>counter</i> = <i>initial_value</i> To <i>maximum_value _</i>
<i>[Step stepcounter]</i>

It now reads:

For <i>counter</i> = <i>initial_value</i> To <i>end_value _</i>
[Step </i>stepcounter</i>]

Anonymous    Jun 01, 2001
Printed
Page 321

The first bulleted item did read:

If maximum_value is greater than initial_value...

It now reads:

If end_value is less than initial_value...

Anonymous    Jun 01, 2001
Printed
Page 321

The second bulleted item did read:

If the initial_value and the maximum_value are equal and stepcounter
is 1, the loop executes once.

It now reads:

If initial_value and end_value are equal and stepcounter is nonzero,
the loop executes once; if stepcounter is 0, an infinite loop
results.

Anonymous    Jun 01, 2001
Printed
Page 321
In the first sentence, changed "maximum value" to "final value."

Anonymous    Sep 01, 2001
Printed
Page 321
The last bulleted item

"If the Step keyword is used, and stepcounter is negative, initial_
value should be greater than maximum_ value. If this isn't the case,
the loop doesn't execute."

Has been changed to:

"If the Step keyword is used and stepcounter is negative, initial_value
should be greater than or equal to end_value."

Anonymous    Sep 01, 2001
Printed
Page 321
The first line of the Examples section

"The following example demonstrates the use of a For...Next
statement..."

Has been changed to:

"The example uses a For...Next statement..."

Anonymous    Sep 01, 2001
Printed
Page 322
First code example after first full block of text, the line

For i = LBound(sArray) to UBound(sArray) Step-1

now reads:

For i = UBound(sArray) to LBound(sArray) Step -1

Anonymous    Jan 01, 1999
Printed
Page 356
"Rules at a Glance", 2nd b.l. item, changed

"GetServerSettings"

to

"GetAutoServerSettings"

Anonymous    Apr 01, 1999
Printed
Page 358
4th b.l. item, changed

"GetServerSettings"

to

"GetAutoServerSettings"

Anonymous    Apr 01, 1999
Printed
Page 361
In the 3rd bulleted item under Rules at a Glance, changed "KEY_CURRENT"

to "HKEY_CURRENT".

Anonymous    Jun 01, 2001
Printed
Page 440
In the Programming Tips & Gotchas section at the top of the page, the

first line of code did read:

lngOctValue1 = &H200 ' Assigns 128

It now reads:

lngOctValue1 = &O200 ' Assigns 128

Anonymous    Jun 01, 2001
Printed
Page 500
In "Rules at a glance", 2nd b.l. item, line 3, changed "is 5 or

greater" to "is 6 or greater"

Anonymous    Apr 01, 1999
Printed
Page 500
In "Rules at a glance, 2nd b.l. item, line 4, added the following

after "1;" and before "otherwise,":

"if 5, it becomes the nearest even number;"

Anonymous    Apr 01, 1999
Printed
Page 524
In the count argument, changed "Data Type: Log" to "Data Type: Long".

Anonymous    Jun 01, 2001
Printed
Page 525
Under Programming Tips & Gotchas, in the 1st line of the 1st bulleted

item, changed:

of <I>Filter</I> must be

to:

of <I>Split</I> must be

Anonymous    Jun 01, 2001
Printed
Page 553

The See Also line in the TextStream.ReadLine Method section did read:

TextStream.ReadAll Method, TextStream.ReadLine Method

It now reads:

TextStream.Read Method, TextStream.ReadAll Method

Anonymous    Jun 01, 2001
Printed
Page 570
The following entry was added at the top of the table

vbArray 8192 Array

Anonymous    Jun 01, 2001
Printed
Page 570

In the table, changed the description for vbVariant to read:

Variant--only returned with vbArray (8192)

Anonymous    Jun 01, 2001
Printed
Page 570
In line 1 of the 3rd bulleted item under Rules at a Glance, changed

"8194" to "8192", and in line 3, changed "8194 + 8 = 8204" to "8192 + 8 =
8200".

Anonymous    Jun 01, 2001
Printed
Page 574
Changed "Width # Statement" to "Width Statement".

Anonymous    Jun 01, 2001
Printed
Page 574
In the Syntax, changed

Width #<i>filenumber</i>, <i>width</i>

to:

VBA.Width <i>filenumber</i>, <i>width</i>

Anonymous    Jun 01, 2001
Printed
Page 574
Changed the description of filenumber to

"Any valid file number used in the <cw>Open</cw> statement."

Anonymous    Sep 01, 2001
Printed
Page 574
The following sentence has been added to the description of

Width Statement:

"Implemented as the <cw>Width #</cw> statement until VB3,
<cw>Width</cw> is now implemented as a hidden procedure in the VBA
library module."

Anonymous    Sep 01, 2001
Printed
Page 585

Under the "Day Function" heading, it did read:

Returns a number representing the day of the week

The "says" is correct for the Weekday function. It now reads:

Returns a number representing the day of the month

Anonymous    Jun 01, 2001
Printed
Page 597

Descriptions of functions Ucase() and Ucase$() used to read:

"converted to lowercase"

but now read

"converted to uppercase"

Anonymous    Jan 01, 1999
Printed
Page 602
In the Language Constants table at the top of the page, the value for

vbCrLf did read:

Chr$(10) & Chr$(13)

It now reads:

Chr$(13) & Chr$(10)

Anonymous    Jun 01, 2001
Printed
Page 610
In the last text paragraph on the page, the first sentence did read:

As a bitwise operator Imp returns 1 if the compared bits in
both expressions are the same or if expression1 is 1;

It now reads:

As a bitwise operator, Imp returns 1 if the compared bits in
both expressions are the same or if expression2 is 1;

Anonymous    Jun 01, 2001
Printed
Page 614
In the "Dynamic Arrays Can Be Assigned" section, lines 2 and 4,

changed the two occurrences of "the left side of an argument" to
"the left side of an assignment"

Anonymous    Apr 01, 1999
Printed
Page 615
"New Functions", last line, added the following at the end of the

paragraph:

And <I>Round</I> is a badly overdue rounding function.

Anonymous    Jun 01, 2001