Microsoft KB Archive/100369
Article ID: 100369
Article Last Modified on 7/11/2006
- Microsoft Visual Basic 3.0 Professional Edition
- Microsoft Visual Basic 3.0 Professional Edition
This article was previously published under Q100369
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
- 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.
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
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.
- 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.
- 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.
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."
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.
- 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.
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
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
Keywords: kbinfo kbref kbdocs KB100369