INFO: Part 1: Corrections for Errors in VB Version 3.0 Manuals (100369)



The information in this article applies to:

  • Microsoft Visual Basic Standard Edition for Windows 3.0
  • Microsoft Visual Basic Professional Edition for Windows 3.0

This article was previously published under Q100369

SUMMARY

These articles are a master list of corrections for documentation errors in the Microsoft Visual Basic version 3.0 for Windows manuals.

Included are corrections to version 3.0 of the following manuals and files that ship with both the Standard and Professional Editions:
  • Online Help file VB.HLP
  • "Microsoft Visual Basic for Windows Programmer's Guide"
  • "Microsoft Visual Basic for Windows Language Reference"
Also included are corrections to version 3.0 of the following manuals that ship with the Professional Edition only:
  • "Microsoft Visual Basic for Windows Professional Features Book 1"
    • Custom Control Reference
    • Control Development Guide
    • Help Compiler Guide
  • "Microsoft Visual Basic for Windows Professional Features Book 2"
    • Data Access Guide
    • Appendixes
    • Crystal Reports for Visual Basic User's Manual
This master list of corrections includes and adds to the correction list found in "Part 4: Notes for Microsoft Visual Basic Online Help" and "Part 5: Notes for Microsoft Visual Basic Programmer's Guide" of the README.TXT file shipped with the product. Please use Part 1 and Part 2 of this article as your master list for making corrections to the manuals and help file.

MORE INFORMATION

Corrections to the Online Help File VB.HLP

Rediminsioning an Array

Help says that you can rediminsion an array from -32768 to 32767. This is incorrect. You can, however, redimension an array as follows:
Sub Form_Load ()
   Redim x%(-32767 To -1)
End Sub
				
-or-
Sub Form_Load ()
   Redim x%(1 To 32767)
End Sub
				
NOTE: The manual and online Help do not state this but the number of indexes for an array seems to be limited to 32K elements. Therefore, you can do a Redim x%(-32767 To -1) or Redim x%(1 To 32767), both of which stay within 32K elements. You cannot do a Redim x%(-32767 To 32767) because this is 64K elements, which will cause a subscript out-of-range error.

Error Message Help

Online Help is not available for dialogs or error messages that occur at design time. For ISAM errors, use the Search dialog in Help.

"Couldn't find installable ISAM"

An external file dynamic link library (DLL) file could not be found. This file is required for operations such as attaching or accessing external tables.

Possible causes:

  1. An entry in the [Installable ISAM] section in VB.INI or <APPNAME>.INI is incorrect. For example, this error occurs if you're accessing a Paradox external table, and the Paradox entry of the .INI file points to a nonexistent directory. Exit Visual Basic, make necessary corrections in VB.INI or <APPNAME>.INI using Microsoft Windows Notepad or another text editor, restart Visual Basic, and try the operation again.One of the entries in the [Installable ISAM] section in VB.INI points to a network drive, and that drive isn't connected. Check to make sure the network is available and the proper drive letter is established, and try the operation again.
  2. One of the entries in the [Installable ISAM] section in VB.INI points to a network drive, and that drive isn't connected. Check to make sure the network is available and the proper drive letter is established, and try the operation again.
Attributes Property

The Help topic for the attributes property and the DATACONS.TXT file incorrectly list DB_SYSTEMOBJECT as having a value of &H80000002. The correct value is H80000000.

Index Property (Data Access)

The information listed in the Index Property (Data Access) Help topic is not correct. Here is the correct information for this topic:
Applies To
  Table object

Description
  With data access, determines which existing index is the current index
  used to sort records in a Table and in recordsets created from that
  Table. The default is blank. Not available at design time; read/write at
  run time.

Syntax
  table.Index [ = indexname ]

Remarks
  The order of the data in a table is determined by the order in which the
  data is added to the table. To alter the order of records fetched from
  the table when using a Table object, set the Index property to the name
  of an index in the Indexes collection of the Table's TableDef object. For
  example, to set the index to be used on a Seek against the Titles table:

  Dim Tb as Table, Db as Database
  Set Db = OpenDatabase("Biblio.MDB")
  Set Tb = Db.OpenTable("Titles")
  Tb.Index = "PubID"
  Tb.Seek "=", 3

  The specified index must already be defined. If you set the Index
  property to an index that doesn't exist, or if the index isn't set when
  you use the Seek method, an error occurs.

  In the Professional Edition, you can create a new Index in a Table by
  creating a new Index object, setting its properties, then appending it to
  the Indexes collection of the Table's TableDef.

  The records in a Table can be ordered only according to the indexes
  defined for it. To sort the Table records in some other order, create a
  new Index for the table and append it to the Table's Index Collection, or
  create a Dynaset or Snapshot that has a different sort order. To specify
  the sort order for Dynasets and Snapshots, use the Sort property after
  the Dynaset or Snapshot has been created. You can also set the order of a
  Dynaset or Snapshot by including an Order By clause in a SQL statement
  used to define the Dynaset or Snapshot.

  The Index property of a control array element is not the same as the
  Index property of a data access object.

Data Type
  String
				
OpenQueryDef Example Code

In the example, the name of the parameter is "Enter State" not "State Wanted," and the name of the existing query is "By State" not "Get State."

Click Event

Change the following two bullet items:
  • Selects an item in a combo box or list box, either by pressing the arrow keys or by clicking the mouse button.
  • Presses the Spacebar when a command button, option button, or check box has the focus.
to:
  • Selects an option button or an item in a combo or list box, pressing the arrow keys or by clicking the mouse button.
  • Presses the Spacebar when a command button or check box has the focus.
Scrollbar Property

The following statement from the Help is incorrect:

"If no horizontal scroll bar is specified for a text box and MultiLine is True, the text will automatically wrap even if the WordWrap property is False."

The WordWrap property applies only to Labels.

Corrections to "Programmer's Guide"

(Page 160)    Numeric Values Stored in Variants -- IsNumeric() Function

       The first line of code on the page indicates that the following
       would return True.

       IsNumeric("$100")

       In fact, it and all currency figures used with the IsNumeric()
       function return False.

(Page 188)    The New Keyword

       In the example at the top of the page, the local form
       variable F is declared with the New keyword using the
       Dim statement.  To make the form variable and the
       loaded form instance persist, use a Static or Global
       variable instead.

(Page 194)    Determining the Type of an Object Variable

       You can use the If...TypeOf statement to determine the
       control type of a custom control:

       If TypeOf object Is objecttype

       The identifier you use for 'object' is the class name of the custom
       control. See the section "Specific Control Object Types" (P. 186)
       for more information.

(Page 461)    The Options Property

       The constant values shown are in hexidecimal and should be preceded
       with the &H notation.  For example, DB_SQLPASSTHROUGH = &H40, not
       decimal 40. See online Help (Options Property) or the file
       DATACONS.TXT for the correct values.

(Page 454)    BIBLIO.MAK and DATAMGR.EXE

       The second sentence of the first paragraph should read:

       If you installed the sample applications, you will find this
       application in the \DATACTRL subdirectory of the Visual Basic
       SAMPLES subdirectory (\VB\SAMPLES\DATACTRL).

       The third sentence of the second paragraph shoul read:

       You will find DATAMGR.EXE in the main Visual Basic directory
       (\VB).

(Page 456)    Getting a Quick Start. Item 6.

       Delete the second sentence which begins "Set the DataSource
       property for Label1 ..." under item 6.

(Page 458)    Setting Database Properties at Design Time

       This section incorrectly states that at design time the RecordSource
       property of the Data Control lists all tables and queries. The
       RecordSource property lists the tables in a database, not the
       queries.

       At design time, if the DatabaseName or Connect property of the Data
       Control is set, the RecordSource property will retrieve a list of
       all available tables. If the user knows of a valid SQL query for the
       database, the RecordSource property will allow the query to be typed
       in, but it does not list the queries.

(Page 459)    The Connect Property

       In the table for the Connect property setting, change the Connect
       setting for Paradox from the following:

          paradox;pwd=password;

       to:

          paradox 3.x;pwd=password;

       NOTE:  The database name in the Connect setting must match (except
              for case) the database name in the VB.INI file. See page 148
              of "Professional Features Book 2."

(Page 460)    The DatabaseName Property

       The first paragraph on this page incorrectly says the RecordSource
       property of the Data Control lists all tables and queries. The
       RecordSource property lists the tables, not the queries.

       At design time, if the DatabaseName or Connect property of the Data
       Control is set, the RecordSource property will retrieve a list of
       all available tables. If the user knows of a valid SQL query for the
       database, the RecordSource property will allow the query to be typed
       in, but it does not list the queries.

(Page 462)    The RecordSource Property

       The first sentence in the second paragraph should be changed to
       remove the reference to queries. Queries are not returned by the
       RecordSource Property. In other words, change the following:

       At design time you can choose from a list of database
       tables and queries by first ...

       to:

       At design time you can choose from a list of database
       tables by first ...

       In addition, the following text and example should be changed:

       For example, the following SQL query returns all of the columns
       in the bibliography for authors who live in New York:

       Data1.DatabaseName = "BIBLIO.MDB"
       Data1.RecordSource = "Select * from Titles where state = 'NY'"
       Data1.Refresh

       The above should read:

       For example, the following SQL query returns all of the columns
       in the bibliography for publishers based in New York:

       Data1.DatabaseName = "BIBLIO.MDB"
       Data1.RecordSource = "Select * from Publishers where
                             state ='NY'"
       Data1.Refresh

(Page 465)    Adding a New Record

       In the second paragraph in this section, the last sentence
       should read, "Notice that using the buttons on the data
       control or one of the Move methods to move to another record
       will automatically save your added record."

(Page 530)    Determining How an Object Is Displayed

       In the first paragraph, the second sentence should read,
       "the Icon check box," not "th eIcon check box."

(Page 550)    Creating Invisible Objects

       In the sample code, the following line has incorrect syntax:

       MyWord = ObjVar.SuggestWord MyWord

       The code should look like this:

       MyWord = ObjVar.SuggestWord (MyWord)

(Page 552)    Limitations in Visual Basic

       Under the discussion "Arrays and User-Defined Types," the third
       bulleted item should read: "You cannot assign the return value
       of a property or method to an array variable or a variable of a
       user-defined type."

(Page 554)    Closing an Object

       In the paragraph after the sample code, second sentence:  It is
       not true that invoking a Close method on an object sets
       variables that refer to the object to Nothing.

(Page 582)    Determining the Files You Need to Distribute

       The following additional files are required for distributing
       your Visual Basic applications:

       DLL Name       Required by (Professional Edition Only)
       ------------------------------------------------------
       PDIRJET.DLL    Crystal Reports for Visual Basic
       PDBJET.DLL     Crystal Reports for Visual Basic
       MSAJT110.DLL   Crystal Reports for Visual Basic
       MSAES110.DLL   Crystal Reports for Visual Basic
       PDSODBC.DLL    ODBC and Crystal Reports for Visual Basic

(Page 588)    Example

       All three references to CopyFile should end with a ")", not ",0)".

(Page 643)    Symbol Tables


       The first bullet item under Module Symbol Table should be under
       Global Symbol Table:

        - The actual text of the names of Sub and Function procedures
				

REFERENCES

For additional information, click the article number on Part 2 of this article below to view the article on Part 2 of this article in the Microsoft Knowledge Base:

243520 Part 2: Corrections for Errors in VB Version 3.0 Manuals


Modification Type:MajorLast Reviewed:7/11/2006
Keywords:kbDocs kbinfo kbref KB100369