  ------------------------------------------------
  Microsoft Access Developer's Toolkit README File
                    April, 1994                  
  ------------------------------------------------

     (C) Copyright Microsoft Corporation, 1994

This document provides complementary or late-breaking
information to supplement the Microsoft Access
Developer's Toolkit (ADT) documentation.


------------------------
How to Use This Document
------------------------

To view README on screen in Windows Notepad, maximize
the Notepad window.

To print README, open it in Windows Write, Microsoft
Word, or another word processor. Then select the entire
document and format the text in 10-point Courier before
printing.

--------
Contents
--------

Setting Up Shared Applications on a Network
Creating a Setup Program for Other Languages
Developer's Toolkit Files
Updated Language Reference Topics
Errata and Omissions in Advanced Topics
Errata and Omissions in Custom Control Help Files

-------------------------------------------
Setting Up Shared Applications on a Network
-------------------------------------------

If you're distributing an application that will be run 
in a shared directory on a network file server, there 
are several issues to consider. 

First, if your distribution site wants both an
administrator's installation (users can install
the application from the network file server) and  
a workstation installation (users can run the
application from a shared directory on the server), 
instruct the system administrator to run Setup 
separately for each type of installation. If a 
single installation is used for both administrator 
and workstation installations, unexpected behavior 
can result.

Second, if you aren't distributing a system database 
file, each time a user performs a workstation setup,
Setup creates a new system database. The old system
database is saved, but users of the shared application
will no longer be using the options and other
information in the old system database.

You can prevent Setup from creating a new system 
database by instructing the system administrator to
edit the file SETUP.STF as follows:

1. Make a backup copy of SETUP.STF. (The file is in the
   administrator or workstation installation directory.)

2. Open SETUP.STF using an application that supports 
   delimited text, such as Microsoft Excel.

3. Scroll down to the row that contains ObjID 
   in the first column.

4. Go to the third column (Title) and find the row for the 
   object whose title is "Create SYSTEM.MDA." Write down 
   the Object ID (ObjID) for that object.

5. Find the row for the object whose title is 
   "---- User Non File Work ----". In the Object Data 
   column for that object, remove the Object ID you 
   wrote down in Step 2.

6. Find the row for the object whose title is "&Complete." 
   In the Object Data column, add the Object ID that you 
   wrote down in Step 2.

7. Save the file.

For additional information on setting up shared 
applications on a network, see "Network Installations" in
the Readme Help for full Microsoft Access.

--------------------------------------------
Creating a Setup Program for Other Languages
--------------------------------------------

The Access Developer's Toolkit Setup Wizard by default 
creates a custom Setup program that uses messages and
prompts in the same language as the Toolkit version 
you're using. However, you can create a Setup program  
for other languages by changing the Setup Wizard 
database.

>>>To edit the Setup Wizard database
------------------------------------

1. Make backup copies of the following files in the 
   directory in which you installed the Toolkit (the
   default is \ACCESS\ADT):

    _MSSETUP.EXE
    ACMSETUP.EXE
    ACMSETUP.HLP
    MSACAHBB.DLL
    MSCPYDIS.DLL
    MSSETUP.DLL
    SETUP.EXE
  
2. Copy the versions of these files that were installed 
   in the \ACCESS\SETUP directory in the other language 
   version of full Microsoft Access to the directory in 
   which you installed the Toolkit. 
  
3. Make a backup copy of the SETUPWIZ.MDB file.

4. Using full Microsoft Access, open the SETUPWIZ.MDB 
   database. 

   Make sure to hold down the Shift key while opening
   the database. Otherwise, Microsoft Access 
   automatically displays the first screen of the Setup 
   Wizard.

5. Open the zws_OUT_STFHeader table.

6. Copy the first record in this table (the record whose 
   Language entry is "usa"), and then paste the record as 
   a new record at the end of the table.

7. In this new record, replace the contents of the following
   fields with the translated strings.

   Field               Description
   ----------------    -----------------------------------
   Language            A three-letter language identifier. 
                       Don't use "usa," "frn," or "ger."
   Welcome String      The text to display when the custom 
                       Setup program starts. 
   Usage String        The text to display explaining how 
                       to use the custom Setup program.
   About Box String    The text to display when the user 
                       opens the About box during Setup.

8. Open the zws_TokenStrings table.

9. Copy each record whose Language field contains "usa," 
   and then paste each record, one at a time, as a new 
   record at the end of the table, changing the Language 
   field from "usa" to the three-letter language identifier 
   you specified in the zws_OUT_STFHeader table.

10. For each new record, replace the contents of the String
    field with the translated text.

11. Open the zws_SetupStrings table.

12. For the records whose MsgID is 272, 273, and 274, replace
    the contents of the Message field with the translated
    message.

13. Open the zws_Globals module, change the setting of the 
    ZWS_BUILD_LANG constant to the three-letter language 
    identifier you specified in the zws_OUT_STFHeader table,
    and then save the module.

When you run the Setup Wizard, it creates a custom Setup
program that uses the strings you specified.

-------------------------
Developer's Toolkit Files
-------------------------

This section lists the files installed by the Developer's 
Toolkit Setup. Setup installs all files except the run-time 
executable (MSARN200.EXE), OC1016.DLL, SWDEPEND.INI, 
SWU2016.DLL, and WZOUTL.MDA in the Developer's Toolkit 
directory you specify during Setup (the default is 
C:\ACCESS\ADT). Setup installs MSARN200.EXE, SWU2016.DLL, 
and WZOUTL.MDA in the directory where you installed 
full Microsoft Access (the default is C:\ACCESS), and 
it installs SWDEPEND.INI in your WINDOWS directory and 
OC1016.DLL in your WINDOWS\SYSTEM directory.

The following files are included in both the Microsoft 
Access Developer's Toolkit version 2.0 and the Microsoft 
Access Distribution Kit version 1.1. Where applicable, an 
updated version of the file is included in the Developer's 
Toolkit version 2.0.

File            Description
------------    -----------------------------------------
BULLET.BMP      Windows Help Compiler example bitmap
COMPRESS.EXE    Executable file used to compress files
DECOMP.EXE      Executable file used to decompress files
HC31.ERR        Windows Help Compiler error file
HC31.EXE        Windows Help Compiler executable file
ICONWRKS.BMP    Windows Help Compiler example bitmap
ICONWRKS.HPJ    Windows Help Compiler example file
ICONWRKS.PH     Windows Help Compiler example file
ICONWRKS.RTF    Windows Help Compiler example file
IWEDIT.SHG      Windows Help Compiler example file
MRBC.EXE        Multiple Resolution Bitmap Compiler
                executable file
README.TXT      Text file with late-breaking information
                (this file)
SETUP.EXE       Executable file used by Setup
SETUP.INI       Setup initialization file
SETUPWIZ.MDB    Setup Wizard
SHED.EXE        Segmented Hypergraphics Editor executable file
SHED.HLP        Segmented Hypergraphics Editor Help file

The following files have been added to the Developer's 
Toolkit version 2.0.

File            Description
------------    -----------------------------------------
_MSSETUP.EXE    Executable file used by Setup
ACMSETUP.EXE    Main Setup executable file
ACMSETUP.HLP    Setup Help file
DBSTRUCT.MDB	Sample database
GRAPH5.EXE      Microsoft Graph run-time executable file
MSACAHBB.DLL    Dynamic-link library containing bitmaps and 
                other resources used by Setup
MSACAL20.HLP    Help file for the calendar control
MSACAL20.OCX    Calendar control
MSAREG.EXE      Executable file for registering OLE objects
MSARN200.EXE    Microsoft Access run-time executable file
MSASB20.HLP     Help file for the scroll bar control
MSASB20.OCX     Scroll bar control
MSCPYDIS.DLL    Dynamic-link library used by Setup
MSSETUP.DLL     Dynamic-link library used by Setup
OC1016.DLL      Dynamic-link library used by OLE custom 
                controls
OUTL1016.HLP    Help file for the data outline control
OUTL1016.OCX    Data outline control
OUTLINE.MDB     Data outline control sample database
SETUP.INF       Information file used by Setup
SETUP.STF       Setup instruction file
SUMEXMPL.TXT	Text file containing sample code
SWDEPEND.INI    Setup Wizard initialization file
SWU2016.DLL     Dynamic-link library used by the Setup 
                Wizard
WIN30API.TXT    Windows 3.0 API declarations text file
WIN31API.HLP    Windows 3.1 API declarations Help file
WIN31EXT.TXT    Windows 3.1 API declarations text file
WINMMSYS.TXT    Windows multimedia API declarations
WZBLDR.MDA      Commented Wizard code
WZFRMRPT.MDA    Commented Wizard code
WZLIB.MDA       Commented Wizard code
WZOUTL.MDA      Data outline control Wizard
WZQUERY.MDA     Commented Wizard code
WZTABLE.MDA     Commented Wizard code

The following files, which were included in the Microsoft
Access Distribution Kit version 1.1, aren't included in 
the Developer's Toolkit version 2.0.

COMMDLG.DLL
DETCMD.DLL
GRAPH.EXE
MSARN100.EXE
SHARE.EXE
SMALLB.FON
SMALLE.FON
SMALLF.FON

---------------------------------
Updated Language Reference Topics
---------------------------------

The following topics in the Microsoft Access Language 
Reference differ slightly from the corresponding 
Microsoft Access Help topics. Consult the Help topics 
for more up-to-date information.

Activate, Deactivate Events -- Event Procedures (example)
ActiveControl Property
ActiveForm Property
ActiveReport Property
AllowZeroLength Property
AutoCenter Property
AutoResize Property
BackColor Property
Between...And Operator (topic and example)
Caption Property
Column Property
ColumnHidden Property (example)
ColumnOrder Property (example)
ControlSource Property (topic and Access Basic section)
CreateForm, CreateReport Functions
CreateObject Function
CurrentUser Function
DatasheetFontItalic, DatasheetFontUnderline Properties
DatasheetFontWeight Property
DatePart Function
Delete, BeforeDelConfirm, AfterDelConfirm Events
Description Property (Access Basic section)
Error, Error$ Functions
Field Object, Fields Collection
FontBold Property
Form, Report Properties
Format, Format$ Functions
FrozenColumns Property
GotFocus, LostFocus Events -- Event Procedures (example)
GoToPage Action (Access Basic section)
GoToPage Method
GroupLevel  Property
HelpContextID, HelpFile Properties (Access Basic section)
InSelection Property
InsertText Method (example)
KeyDown, KeyUp Events -- Event Procedures (example)
Like Operator
Name Property
NotInList Event
NotInList Event -- Event Procedures (example)
ODBCConnectStr Property
OpenArgs Property (example)
OutputTo Action (Access Basic section)
PrtDevMode Property (topic and example)
Required Property
RunMacro Action
SendObject Action (Access Basic section)
Set Statement (example)
SizeMode Property
SourceObject Property
Updated Event -- Event Procedures
UniqueValues Property
Visible Property
Weekday Function

---------------------------------------
Errata and Omissions in Advanced Topics
---------------------------------------

The following errata and omissions in the Advanced
Topics manual were discovered after the book was 
delivered for printing. Please mark the changes in your 
copy of the book. We apologize for any inconvenience.

Some of these errors may be fixed in later printings
of the book. 


Chapter:  "Introduction to the Developer's Toolkit"
Section:  "Setting Up the Toolkit"
Page:     xi
          Replace the first sentence with the following:

          Before setting up the Developer's Toolkit, you 
          must first install the full version of Microsoft
          Access on your computer. If you're running 
          Microsoft Access from a network workstation, 
          make sure to reinstall Microsoft Access on your 
          computer. The Developer's Toolkit Setup will run 
          only on a computer on which full Microsoft Access 
          is installed.

Chapter:  1, "Developing Run-Time Applications: an Overview"
Section:  "Hidden Windows, Views, and Toolbars"
Page:     9
          Replace the last two sentences of the tip with 
          the following:

          To prevent the dialog box from being displayed,
          turn off system messages using the SetWarnings
          action. You can also set the object's OnClose 
          property to the name of a macro containing the 
          Quit action (specifying the Save All option); 
          however, using the Quit action will cause your 
          run-time application to quit when you close the 
          object.

Chapter:  2, "Creating a Custom Setup Program"
Section:  "Destination"
Page:     24
          Add the following to the last paragraph in the 
          section:

          The subdirectory must branch directly from the 
          directory in which your application is installed; 
          for example, you can't specify a nested subdirectory
          such as $(AppPath)\SAMPLES\MYSAMP.

Chapter:  2, "Creating a Custom Setup Program"
Section:  "Selecting Optional Features"
Pages:    28-29
          In the second row of the second table in the 
          section (in the description of the entries to add 
          for a FoxPro 2.x driver), add [FoxPro 2.6] to the 
          list of sections to add to your initialization file 
          and FoxPro 2.6 to the list of entries to add to your 
          initialization file's [Installable ISAMs] section.

          After the table, insert the following note:

          In a multiuser environment, the initialization file 
          for each user interacting with Paradox data must have 
          a [Paradox ISAM] section with a unique ParadoxUserName 
          entry and a ParadoxNetPath entry that is a valid path 
          name. Also, each user sharing Paradox data must have 
          the same ParadoxNetPath entry. You can set these 
          entries when you install your application by using 
          an extended Setup program. For more information, 
          see "Modifying .INI Files Using API Calls" later in 
          this chapter. 
        
Chapter:  2, "Creating a Custom Setup Program"
Section:  "Running an Application After Setup Is Completed"
Page:     29
          Replace the last sentence of the second paragraph
          with the following:

          Select the file and choose OK to return to the 
          Setup Wizard.

Chapter:  2, "Creating a Custom Setup Program"
Section:  "Modifying .INI Files Using API Calls"
Page:     32
          Add the following text to the note:

          If you will always pass a string as the lpKeyName
          argument when you call these functions, replace 
          "lpKeyName As Any" with "ByVal lpKeyName As String" 
          in the function declarations. Otherwise, you must
          use the ByVal reserved word in the function call when 
          you pass a string to lpKeyName. Using "lpKeyName 
          As Any" lets you pass a Null value to the argument, 
          which can be useful in some circumstances.

Chapter:  2, "Creating a Custom Setup Program"
Section:  "Encrypting Files at the Distribution Site"
Page:     34
          Insert the following text at the end of the
          section:

          Note also that you must supply a new name for
          the encrypted database. If want to use the
          original name, delete or rename the original 
          database after you create the encrypted version,
          and then rename the encrypted database using the
          original name.

Chapter:  5, "Creating Wizards, Builders, and Add-Ins"
Section:  "Menu Items"
Page:     146
          Replace the first Case statement in the code
          example with the following text to match the
          error string in German Microsoft Access:

          Case "Benutzerdefinierter Fehler"

          The word "Fehler" is capitalized in German when
          used as a noun.

Chapter:  5, "Creating Wizards, Builders, and Add-Ins"
Section:  "Manually Installing a Control Wizard"
Page:     158
          Parts are missing from the syntax and example for
          entries in the [Control Wizards] section of the 
          MSACC20.INI file.

          In the syntax, you can specify "r" as well as "w" 
          or "rw" as the last argument. Replace the syntax
          line with the following:

          uniquename=controltype, displayname, functionname, {r|w|rw}

          In the example, the last argument is missing. 
          Replace the example with the following:

          Super Listbox Builder=LB_Builder, ListBox, zmw_StartLBWiz, w
           
Chapter:  5, "Creating Wizards, Builders, and Add-Ins"
Section:  "Manually Installing a Property Builder"
Page:     159
          You can add an entry for either a Wizard or a builder 
          in the [Property Wizards] section of the MSACC20.INI 
          file. Change the name of this section to "Manually 
          Installing a Property Wizard or Builder." 

          In the second step of the procedure, replace all 
          references to "property builder" or "Property Wizard" 
          with "property Wizard or builder," and replace "Property 
          Wizard selection box" with "Choose Builder dialog box."
 
          In addition, as explained in the previous readme item, 
          replace the syntax line in the second step of the 
          procedure with the following:

          uniquename=propertyname, displayname, functionname, {r|w|rw}

Chapter:  6, "Using OLE Custom Controls"
Section:  "Adding an OLE Custom Control to a Form"
Page:     170
          Insert the following text after the procedure for 
          adding an OLE custom control to a form:

          You can associate a label with an OLE custom control
          by selecting the control's unbound object frame and
          then pasting the label to the object frame.

          To create a label for an OLE custom control

          1 Create the custom control.

          2 Create the label.

          3 Place the label onto the Clipboard by selecting it 
            and then clicking the Cut or Copy button on the 
            toolbar.

          4 Select the OLE custom control's unbound object
            frame.

          5 Paste the label to the object frame by clicking 
            the Paste button on the toolbar.

Chapter:  6, "Using OLE Custom Controls"
Section:  "Using OLE Custom Control Methods"
Page:     173
          Replace "calendar control example" in the first 
          sentence on the page with "calendar control example 
          described earlier in this chapter" to clarify.

Chapter:  6, "Using OLE Custom Controls"
Section:  "Distributing an Application That Contains OLE Custom 
          Controls"
Page:     175
          Add the following note to the end of the section:

          If you're distributing an application that uses an 
          OLE custom control, make sure to include the 
          control's .OCX file in your distribution set. In
          the Setup Wizard, use the Add File dialog box to
          add the file to the list of distribution set files.

          You don't need to explicitly add the OLE custom
          control dynamic-link library (OC1016.DLL) to the
          distribution set. Because of the dependencies 
          specified in the Setup Wizard (SWDEPEND.INI) included 
          with the Toolkit, the Setup Wizard automatically
          adds OC1016.DLL to the distribution set if you add an 
          .OCX file to the distribution set. For more
          information, see Chapter 2, "Creating a Custom Setup
          Program."
           

-------------------------------------------------
Errata and Omissions in Custom Control Help Files
-------------------------------------------------

The following errata and omissions in the Custom
Control Help files were discovered after the files were
finalized.

Help:     Data Outline Control Help

          When you print the contents of the Data Outline 
          Control Help file by clicking "Print Overview," some 
          text may be repeated in the print output at the 
          bottom of one page and the top of the next page. 
          This behavior is caused by a limitation of Microsoft 
          Windows Help. There is no workaround for this 
          behavior.

Help:     Data Outline Control Help
Topics:   MouseDown Event, MouseUp Event

          Add the following note:

          Unlike the MouseDown and MouseUp events in Access
          Basic, the data outline control MouseDown and MouseUp
          events do not support X and Y arguments. However, 
          Access Basic automatically includes these arguments
          in the event procedure code templates for these 
          events. Delete these arguments from event procedure
          declarations for data outline control MouseDown and
          MouseUp events.

Help:     Scroll Bar Control Help
Topic:    Value Property, Change Event Example

          Replace the Dim statement at the beginning of the 
          sbMonth_Change() procedure with the following 
          statement:

          Dim Diff As Integer, i As Integer

Help:     Scroll Bar and Calendar Control Help
Topic:    Refresh Method

          You must surround the Refresh method of these custom
          controls with brackets. Otherwise, Access Basic
          attempts to evaluate the method as the Access Basic 
          Refresh method and generates an error.

          In syntax and code examples, change Refresh to [Refresh].

