LONG: Corrections for Errors in VB Version 3.0 Manuals

Last reviewed: February 26, 1996
Article ID: Q100369
The information in this article applies to:

- Standard and Professional Editions of Microsoft Visual Basic for

  Windows, version 3.0

SUMMARY

This article is 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 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 seem 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 couldn't 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.

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.

For additional information, please see the following article(s) in the Microsoft Knowledge Base:

   ARTICLE-ID: Q112652
   TITLE     : PRB: Can't Find Installable ISAM When Run Two DB Apps in VB


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

Corrections to "Language Reference"

(Page 21-22) Action Property (OLE)

       In the Settings table, in Setting 5, the reference to None in
       the second sentence of the third paragraph should read as
       follows:

       "If the Paste was not successful, the OleType property will be
        set to 3 (None)."

        In Setting 12, the constant should be OLE_READ_FROM_FILE, not
        ReadFromFile. In Setting 14, the constant should be
        OLE_INSERT_OBJ_DLG.

(Page 41)     AutoActivate Property

       In the Note, replace the words "the double-click event" with
       "a DblClick event."

(Page 53)     BorderStyle Property

       The OLE control cannot have a setting of 2. Remove the setting
       and description for Setting 2 in the OLE control table.

(page 57)     Caption property

       For labels, the caption is limited to 1024 characters, not 2048.

(Page 65)     Check Box Control

       Add DataField and DataSource to the Properties list.

(Page 72)     Click Event

       Change the following two bulleted 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 by
          pressing the arrow keys or by clicking the mouse button.

        - Presses the Spacebar when a command button or check box has
          the focus.

(Page 82)     Color Property

       The "Applies To" line should read "Common dialog (Color
       dialog)."

(Page 89)     Common Dialog Control

       Add "FilterIndex" and "MaxFileSize" to the Properties (File
       dialogs) list.

(Page 90)     CompactDatabase Statement

       The Syntax line indicates that both the second and third function
       parameters are optional. This is incorrect. The second parameter
       is required. Use DB_LANG_GENERAL as the default.

(Page 93)     Connect Property

       In the Note, change "SourceTable" to "SourceTableName."

(Page 97)     Copies Property

       The "Applies To" line should read "Common dialog (Print dialog)."

(Page 97)     Controls Collection

       The following three statements are incorrect:

       If TypeOf Frm.Controls(I) Is Not Menu Then
          Frm.Controls(I).Enabled = State
       End If

       Replace them with the following four statements:

       If TypeOf Frm.Controls(I) Is Menu Then
       Else
          Frm.Controls(I).Enabled = State
       End If

(Page 100)    CreateDatabase Function

       Three corrections are necessary:

        - In the code example, replace "False" with "DB_VERSION10."
        - In the table above the code example, replace "DB_COMPACT_ENCRYPT"
          with "DB_ENCRYPT."
        - The Syntax line indicates that both the second and third function
          parameters are optional. This is incorrect. The second parameter
          is required. Use DB_LANG_GENERAL as the default.

(Page 111)    Data Control

       Add UpdateControls and UpdateRecord to the Methods list.

(Page 112)    Database Object

       In the Properties list, the QueryTimeout Property should be
       identified as being available only in the Professional Edition.

(Page 117)    DataText Property

       In the code example, change the two instances of "MSDRAW" to
       "MSGRAPH."

(Page 134)    DefaultExt Property

       The "Applies To" line should read:

       "Common dialog (File dialogs)."

(Page 144)    Dir, Dir$ Functions

       Line 11 of the sample program is incorrect. It reads:

       If GetAttr(Path + DirName) And ATTR_DIRECTORY = ATTR_DIRECTORY Then

       It should read:

       If (GetAttr(Path + DirName) And ATTR_DIRECTORY) = ATTR_DIRECTORY

NOTE: With this line of code, directories with additional attributes can also be found. Simply add the desired attribute constants to the call to the Dir function.

(Page 185)    Field Object

       The Properties list should refer to SourceField and
       SourceTable, not SourceFieldName and SourceTableName.

       Line 4 reads:

       Set MyFd = MyDb("PubId")

       It should read:

       Set MyFd = MyDn("PubId")

(Page 187)    Fields Property

       The third line of the Example (Professional Edition Only) given at
       the bottom of the page is incorrect. It should be changed to:

       TempIndex.Fields = "LName;FName"

       The correct version has no space between the two fields.

(Page 195)    FileTitle Property

       The "Applies To" line should read:

       "Common dialog (File dialogs)."
       Add the following to the Remarks section:

       Note: If the OFN_NOVALIDATE flag is set, the FileTitle property
       will not return a value.

(Page 198)    Filter Property (Common Dialog)

       At the beginning of the topic, add "Applies To...Common dialog
       (File dialogs)."  In the Remarks section, after the third
       paragraph, add this text:

       Here is an example of a Filter in which the user can choose
       text files or picture files that include bitmaps and icons:
       Text(*.txt)|*.txt|Pictures(*.bmp;*.ico)|*.bmp;*.ico

(Page 199)    FilterIndex Property

       The "Applies To" line should read
       "Common dialog (File dialogs)."

(Page 206)    Flags Property (Font Dialog)

       The CF_APPLY constant listed is invalid. Do not use it.

(Page 229)    Frame Control

       Add the Name Property to the Properties list.

(Page 231)    FromPage, ToPage Properties

       The "Applies To" line should read
       "Common dialog (Print dialog)."

(Page 240)    GetAttr Function

       The final Sub...End Sub block in code should read as follows:

       Sub File1_Click ()
          Const ATTR_READONLY = 1, ATTR_HIDDEN = 2     ' Declare
          Const ATTR_SYSTEM = 4, ATTR_ARCHIVE = 32     ' Constants.
          Dim Attr, FName, Msg                    ' Declare variables.
          If Right(Dir1.Path, 1) = "\" Then      ' See if root file.
             FName = Dir1.Path & File1.FileName  ' Get file path.
          Else
            FName = Dir1.Path & "\" & File1.FileName    ' Get file
                                                        ' path.
          End If
          Attr = GetAttr(FName)  ' Get attributes.
          If Attr > 7 Then Attr = Attr Xor ATTR_ARCHIVE  ' Disregard
                                                         'Archive.
          Select Case Attr       ' Look up attributes.
            Case 0: Msg = "Normal"
            Case ATTR_READONLY: Msg = "Read-Only"
            Case ATTR_HIDDEN: Msg = "Hidden"
            Case ATTR_HIDDEN +  ATTR_READONLY: Msg = "Hidden and Read-Only"
            Case ATTR_SYSTEM: Msg = "System"
            Case ATTR_READONLY +  ATTR_SYSTEM: Msg = "Read-Only and System"
            Case ATTR_HIDDEN +  ATTR_SYSTEM: Msg = "Hidden and System"
            Case ATTR_READONLY + ATTR_HIDDEN +  ATTR_SYSTEM:
              - Msg = "Read-Only," + Msg = " Hidden, and System"
          End Select
          MsgBox UCase(FName) & " is a " & Msg & " file."   ' Display
                                                            ' message.
       End Sub

(Page 256)    hDC Property

       The Usage line should read:

          {[form.] [commondialog. | picturebox.] | Printer.}hDC

       Also, the second paragraph of the Remarks should read:

       "With a common dialog control, this property returns a device
       context for the printer selected in the Print dialog box when
       the..." (the rest of the text remains the same).

(Page 258)    Height, Width Properties

       The See Also line should refer to the "Width # Statement," not
       the "Width Statement."

(Page 268)    hWnd Property

       In the example code, the last argument in the SetWindowPos Declare
       (ByVal f as Long) is incorrect, it should be ByVal f as Integer.
       As written, the code generates a "Bad DLL Calling Convention" error.
       Change the Long to Integer and the call works.

       In addition, the following line of code doesn't work:

          mnuTopmost.Checked = Not mnuTopmost.checked

       This is because the Value property of a check box does not accept -1
       (the results of NOT on 0), which is the initial value. Replace the
       incorrect line of code with this code:

          If mnuTopMost.Checked = 1 Then
             mnuTopMost.Checked = 0
          Else
             mnuTopMost.Checked = 1
          End if

(Page 274)    Image Control

       Add DataField and DataSource to the Properties list.

(Page 279)    Index Property (Data Access)

       The following information, in the Remarks section, is incorrect:

          To set this property with a data control, specify the TableDef,
          set the index, and then Refresh the control:

          Data1.RecordSource = "Publishers"
          Data1.Database.TableDefs("Publishers").Index = "PrimaryKey"
          Data1.Refresh

       Replace it with the following:

          You cannot set the Index property with a data control. To use an
          indexed field in Visual Basic, use a SQL statement similar to the
          following example:

          Data1.RecordSource = "SELECT * FROM Publishers ORDER BY Zip"
          Data1.Refresh

          By using the ORDER BY clause in the SQL syntax, you can simulate
          the effect of the Index property.

(Page 279)    Index Property (Data Access)

       The "Applies To" says TableDef but should say "Table."

(Page 280)    InitDir Property

       The "Applies To" line should read:

       "Common dialog (File dialogs)."

(Page 280)    Indexes Collection

       The See Also section makes reference to a "CreateIndex Method."
       This method does not exist. The reference should be omitted.

(Page 281)    Input # Statement

       The last paragraph, second-to-last sentence is incorrect. Change it
       to read as follows:

       "For strings not delimited by double quotation marks, the end of a
       string is assumed when a comma or the end of a line is encountered."

(Page 297)    KeyDown, KeyUp Events

       The See Also should refer to the SendKeys Statement, not the
       SendKeys Method.

(Page 299)    KeyPress Events

       The See Also should refer to the SendKeys Statement,
       not the SendKeys Method.

(Page 303)    Label Control

       Add the DataField, DataSource, and Parent properties to the
       Properties list.

(Page 336-338)   ListFields Method

       In the second table, the fifth and sixth entries in the Field
       column should be SourceTable and SourceField, not SourceTableName
       and SourceFieldName. The code example and the headings of the table
       below it should also refer to SourceTable and SourceField.

(Page 345)    ListTables Method

       In Remarks, the first paragraph under the TableType field table
       should read:

       "When you use the ListTables method to create a Snapshot, you
       can evaluate the contents of the Attributes field in the
       Snapshot by referring to the TableDef property settings table
       in the Attributes property topic.

(Page 361)    Max, Min Properties (Common Dialog)

       At the beginning of the topic, add:

       "Applies To...Common dialog (Font, Print dialogs)."

(Page 363)    MaxFileSize Property

       The "Applies To" line should read:

       "Common dialog (File dialogs)."

(Page 381)    MousePointer Property

       The Note section near the bottom of the page is incorrect. It
       should read:

       Note  When set for the Screen object, MousePointer changes for the
       Visual Basic application; that is, it only overrides the
       application's MousePointer settings.

(Page 390)    Name Property

       The "Applies To" line should include the Database object.

(Page 418)    OpenQueryDef Method

       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."

(Page 432)    Partition Function

       In the code in Example 3, the second five lines of code
       duplicate the first five lines and should be deleted.

(Page 439)    Picture Box Control

       Add DataField and DataSource to the Properties list.

(Page 444)    PopupMenu Method

       In the Syntax line, there should be a comma immediately before
       the y.

(Page 455)    PrinterDefault Property

       The "Applies To" line should read:

       "Common dialog (Print dialog)."

(Page 536-537)   SourceFieldName, SourceTableName Properties

       All references to SourceFieldName and SourceTableName in this
       topic should refer to "SourceField" and "SourceTable" instead.

(Page 538)    SourceTableName Property

       There should be a full entry for the "SourceTableName" topic.
       See online Help for the text of this topic.

(Page 565)    Text Box Control

       The second piece of art is incorrect. It should show a text box on a
       form but instead, it shows a menu title and menu items on a form.
       Also, add DataField and DataSource to the Properties list.

(Page 595)    Validate Event

       In the third paragraph following the Constants table, change "edit
       buffer" to "copy buffer."

(Page 619)    Trappable Errors

       In Appendix B, the odd header is wrong.  It should read
       "Trappable Errors," not "Trappable Error Messages."

(Page 634)    Trappable Error Messages

       In Table B.6 ("Data Access Trappable Error Messages"),
       Error #3137 should be deleted.

Corrections to "Professional Features Book 1 -- Custom Control Reference"

(Page xxii)   Visual Basic Executable (.EXE) Files

       The Visual Basic run-time file is listed incorrectly. The first
       bulleted item should read VBRUN300.DLL, not VBRUN200.DLL.

(Page 69)     CDHolding Property

      Cross out the following paragraph. It is incorrect. It contradicts
      the Remarks under CDTimeout Property:

      When the Carrier Detect line is high (CDHolding=True) and the
      CDTimeout number of milliseconds has passed, the communications
      control sets the CommEvent property to MSCOMM_ER_CDTO (Carrier Detect
      Timeout Error), and generates the OnComm event.

(page 78)     Input Property

      The Remarks section lists the SendMessage syntax incorrectly. Replace
      it with this syntax:

      pMSComm->SendMessage(UM_INPUT,cbData,lpData)

(Page 107)    Graphs Within Graphs

      This section states, "The graph control can have child windows.
      You can place other controls (including more graphs) within a
      graph."

      This information is incorrect. The graph control in Visual Basic
      version 3.0 does not support child controls. You cannot place a
      control of any type on a graph and have it belong to the graph.
      The entire section should be removed.

(Page 147)   Graph Control

      In Example 1, the following line contains two "=" characters:

         Graph1.LabelText = "Data point" = Str$(i%)

      The line should read:

         Graph1.LabelText = "Data point" + Str$(i%)

(Page 148)    Graph Control

      In Example 2, the following line contains two "=" characters:

         Graph1.LabelText = "Label" = Str$(i%)

      The line should read:

         Graph1.LabelText = "Label" + Str$(i%)

(Page 176)    Key Status Control

       The table for the Value property incorrectly states that False
       is the default value.  The default value is determined by the
       state of the keyboard.

(Page 180)    MAPI Session Control

       There should be no footnotes, since the MAPI controls are
       only available in Visual Basic.

(Page 186)    MAPI Messages Control

       There should be no footnotes, since the MAPI controls are
       only available in Visual Basic.

(Page 249)

       The reference to the WM_LOSTFOCUS message should refer to
       WM_KILLFOCUS.

       The same error occurs in the VBAPI help file under Standard
       Events/Lost Focus.

Corrections to "Professional Features Book 1 -- Help Compiler Guide"

(Page 68)     Running Macros When a User Enters a Topic

       Insert the following sentence after the first sentence: "Macro
       calls can be authored in footnotes that use an exclamation (!)
       as the reference mark."

(Page 117)    Mapping Context Sensitive Objects

       The text attached to the third bullet is incorrect. There must be
       exactly one space between the context number and the context string.
       The example on the following page is also incorrect. It should be
       corrected to reduce the multiple spaces to one space as follows:

       [MAP]

       Edit_Window 0x001
       Control_Menu 0x002
       Maximize_Icon 0x003
       ... and so on ...

Corrections to "Professional Features Book 2 -- Data Access Guide"

(Page 31)     Creating New Table Definitions

       Delete the following line of code from the example:

       On Error Resume Next

(Page 36)     Attributes

       The following should be added to the table:

       Constant             Value     Pupose
       ===================================================================
       DB_VARIABLEFIELD       2       Indicates that the field is of
                                      variable length (Text, Binary, memo).

(Page 58)     Using the Options Argument

       Change the example code near the middle of the page to this:

       Dim Options%
       Dim Db As Database
       Dim T As Table
       Set Db = OpenDatabase ("BIBLIO.MDB")
       Options% = DB_DENYWRITE + DB_DENYREAD
       Set T = Db.OpenTable ("Titles", Options%)

(Page 75)     Using the Seek Method

       The last paragraph is incorrect. It states:

       "You don't have to supply values for every field in the index; if
       you omit a field value, the Seek method finds the first record that
       matches the values you do supply."

       This is incorrect. If you use the equal (=) comparison operator,
       you must supply values for all fields. If you use any of the other
       comparison operators, the above statement is correct.

(Page 96-97) QueryDef 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."

(Page 108)    Transaction Logging

       The reference to a trappable error (2004) in the last sentence is
       incorrect. There is no such error code. When a transaction log
       fills, it does not cause error 2004.

(Page 139)   Accessing Paradox Tables

       The following line is incorrect:

          conn$ = "Paradox;"

       It should read as follows:

          conn$ = "Paradox 3.X"

(Page 154)    Accessing Microsoft SQL Server Databases

       The reference to two versions of INSTCAT.SQL (INSTCAT.SQL and
       INSTCAT.48) that are supposedly used differently depending on
       whether the backend is Microsoft SQL Server or Sybase, is an
       error. The single version of INSTCAT.SQL provided by Microsoft
       on the Visual Basic version 3.0 disks is complete and sufficient
       for both Microsoft SQL Server and Sybase SQL Server, versions 4.2
       and later. The file named INSTCAT.48, if you have it, is not
       useful and can be deleted.

       The instructions on how to run INSTCAT.SQL, which formerly were
       found in Appendix D of the version 2.0 "Professional Features"
       manual, are no longer included in the manual. Page 154 of the
       version 3.0 manual says you can find information on setup,
       configuration, and operational issues when accessing tables from
       SQL Server in a file named SQLSVR.HLP. In fact, this file does
       not exist. The correct file name is DRVSSRVR.HLP, and you should
       find it in the \WINDOWS\SYSTEM directory.

       In the DRVSSRVR.HLP file, search on "INSTCAT.SQL" to find the
       syntax of the ISQL batch command that you need to use to run the
       INSTCAT.SQL file.


Additional reference words: 3.00 docerr
KBCategory: kbref kbdocerr
KBSubcategory: RefsDoc


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: February 26, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.