home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 6 / 06.iso / a / a563 / 1.ddi / README.TXT < prev    next >
Encoding:
Text File  |  1993-05-07  |  22.0 KB  |  578 lines

  1.    ---------------------------------------------
  2.    Microsoft Access Distribution Kit README File
  3.                   April, 1993                
  4.    ---------------------------------------------
  5.  
  6.      (C) Copyright Microsoft Corporation, 1993
  7.  
  8. This document provides complementary or late-breaking
  9. information to supplement the standard Microsoft
  10. Access Distribution Kit (ADK) documentation.
  11.  
  12.  
  13. ------------------------
  14. How to Use This Document
  15. ------------------------
  16.  
  17. To view README on screen in Windows Notepad, maximize
  18. the Notepad window.
  19.  
  20. To print README, open it in Windows Write, Microsoft
  21. Word, or another word processor. Then select the entire
  22. document and format the text in 10-point Courier before
  23. printing.
  24.  
  25. --------
  26. Contents
  27. --------
  28.  
  29. Duplicating Standard Microsoft Access Menus
  30. Hiding the Database Window at Startup
  31. Printing Forms and Reports in a Secure Application
  32. Halting Execution of Macros that Use Queries
  33. Installing Common Dynamic-Link Library Files
  34. Required Files on Disk 2
  35. Making Sure All Sections Are Included in Your INI File
  36. Changing Your Application's Workgroup
  37. Invalid Characters in an Application Name
  38. Screen Display Problems While Running SUFILES.EXE
  39. Errata and Omissions in Documentation
  40.  
  41. -------------------------------------------
  42. Duplicating Standard Microsoft Access Menus
  43. -------------------------------------------
  44.  
  45. The ADK provides a set of macros that let you duplicate 
  46. standard Microsoft Access menus and commands in your 
  47. application. You can duplicate all the menus, or select 
  48. only the menus you want to duplicate. These macros are 
  49. located in the SETUPWIZ.MDB database included with the 
  50. ADK.
  51.  
  52. NOTE: Although these macros are distributed in the 
  53. SETUPWIZ.MDB database file, they are not used by the 
  54. SetupWizard.
  55.  
  56. To duplicate the standard Microsoft Access menus on a
  57. form:
  58.  
  59. 1 Import the following macros from SETUPWIZ.MDB to the 
  60.   database containing the form.
  61.  
  62.   Form Menubar
  63.   Form Menubar (Edit)       
  64.   Form Menubar (File)       
  65.   Form Menubar (Help)       
  66.   Form Menubar (Layout)       
  67.   Form Menubar (Records)       
  68.   Form Menubar (View)       
  69.   Form Menubar (Window)       
  70.  
  71. 2 Set the OnMenu property of the form to the Form Menubar
  72.   macro. 
  73.  
  74.   Microsoft Access uses the Form Menubar macro to create
  75.   a custom menu bar that includes the standard Microsoft
  76.   Access menus. The Form Menubar macro uses the other 
  77.   macros from SETUPWIZ.MDB to create individual menus.
  78.  
  79. To duplicate selected standard Microsoft Access menus on
  80. a form:
  81.  
  82. 1 Import the Form Menubar macro from SETUPWIZ.MDB, along
  83.   with the macros corresponding to the menus you want to 
  84.   include on the form. For example, if you want to 
  85.   duplicate the Edit and Records menus, import the Form 
  86.   Menubar (Edit) and Form Menubar (Records) macros.
  87.  
  88. 2 In standard Microsoft Access, open the Form Menubar 
  89.   macro.
  90.  
  91. 3 Delete the AddMenu actions for all menus except the 
  92.   menus you want to include on the form.
  93.  
  94. 4 Save the Form Menubar macro.
  95.  
  96. 5 Set the OnMenu property of the form to the Form Menubar
  97.   macro. 
  98.  
  99. To remove a command from a menu, delete the corresponding
  100. DoMenuItem action from the macro that creates the menu. 
  101. For example, to delete the About command from the Help
  102. menu, delete the corresponding DoMenuItem action in the
  103. Form Menubar (Help) macro.
  104.  
  105. For more information about creating custom menus and menu
  106. bars, see Chapter 24, "Using Macros for Application Design,"
  107. in the "Microsoft Access User's Guide" or search Help for
  108. "customizing menus."
  109.  
  110. -------------------------------------
  111. Hiding the Database Window at Startup
  112. -------------------------------------
  113.  
  114. If you want to ensure that your application can't be 
  115. modified by users, it's a good idea to hide the Database 
  116. window when your application starts, then design the 
  117. application so that users are prevented from opening the
  118. window.
  119.  
  120. To hide the Database window at startup:
  121.  
  122. - In your application's AutoExec macro, include a 
  123.   DoMenuItem action that carries out the Hide command on 
  124.   the Window menu.
  125.  
  126. Note that the Microsoft Access run-time executable hides 
  127. the Database window similarly to how it hides Design 
  128. windows and views -- by setting the color of the window to 
  129. the default Windows background color. Contrary to the 
  130. description on page 4 in Chapter 1 of the "ADK Guide," 
  131. it does not minimize the window.
  132.  
  133. You can still use the Database window menus and commands
  134. in your application by selecting the Database window and 
  135. then carrying out commands using a DoMenuItem or SendKeys
  136. action in a macro or module.
  137.  
  138. Note that even if you've hidden the Database window at 
  139. Startup, the run-time executable will display a blank
  140. version of the window, when it is selected, unless you 
  141. disable screen updating. The blank version of the window
  142. has no border and is set to the default Windows background 
  143. color. To hide this blank window from users, design your 
  144. application so that it disables screen updating, using the 
  145. Echo action, before it selects the Database window.
  146.  
  147. --------------------------------------------------
  148. Printing Forms and Reports in a Secure Application
  149. --------------------------------------------------
  150.  
  151. In a secure application, users will not be able to change 
  152. the printer where they print forms and reports unless they 
  153. have Modify Definitions permissions for those forms and
  154. reports. Microsoft Access stores printer settings for a form 
  155. or report with the form or report's definition; a user must
  156. have Modify Definitions permissions for the form or report 
  157. in order to change those settings.
  158.  
  159. To ensure that a user can print a form or report on the 
  160. user's default printer, specify Default Printer as the form
  161. or report's printer setting while you're developing your
  162. application. 
  163.  
  164. To set the printer setting to Default Printer:
  165.  
  166. 1 While the form or report is open, select Print Setup from 
  167.   the File menu.
  168.  
  169. 2 In the Print Setup dialog box, select Default Printer.
  170.  
  171. 3 Choose OK to close the Print Setup dialog box.
  172.  
  173. 4 Save the form or report.
  174.  
  175. If you want users to be able to change the printer they 
  176. use to print forms and reports, make sure they have Modify 
  177. Definitions permissions for those forms and reports. 
  178. Otherwise, they won't be able to change printer settings 
  179. in the Print Setup dialog box.
  180.  
  181. --------------------------------------------
  182. Halting Execution of Macros that Use Queries
  183. --------------------------------------------
  184.  
  185. Although the run-time executable disables the CTRL+BREAK
  186. (or BREAK) keystrokes for halting macro execution, users 
  187. may still be able to use these keystrokes to interrupt a 
  188. macro when the macro uses a query. As with standard 
  189. Microsoft Access, you can use the CTRL+BREAK (or BREAK) 
  190. keystrokes to halt query processing in the run-time 
  191. environment.
  192.  
  193. To ensure that users can't use these keystrokes to 
  194. interrupt the flow of your application, use Access Basic
  195. rather than macros for operations that use queries. You
  196. can then use the error-handling features of Access Basic 
  197. to trap any errors that result from the interruption.
  198.  
  199. --------------------------------------------
  200. Installing Common Dynamic-Link Library Files
  201. --------------------------------------------
  202.  
  203. The following dynamic-link library (.DLL) files listed 
  204. in Chapter 3 of the "ADK Guide" must be installed in the 
  205. \WINDOWS\SYSTEM directory rather than the directory 
  206. where the user has installed your application:
  207.  
  208.     MSABC110.DLL
  209.     MSAES110.DLL
  210.     MSAJT110.DLL
  211.     BTRV110.DLL
  212.     PDX110.DLL
  213.     XBS110.DLL
  214.  
  215. The files are used both by Microsoft Access and by other 
  216. applications. Setup automatically installs these files 
  217. in the \WINDOWS\SYSTEM directory if you create your 
  218. custom Setup using the SetupWizard or one of the sample 
  219. information (.INF) files.
  220.  
  221. The entries for these files in the [Standard Setup Files] 
  222. section of your custom Setup's information file must 
  223. include the VERSION keyword, which sets the version 
  224. number of the file. Otherwise, Setup may overwrite the 
  225. correct version of the file when a user installs your 
  226. application.
  227.  
  228. However, you should not specify a version number 
  229. yourself, or change an existing version number setting.
  230. The version number is set automatically by the 
  231. SetupWizard, or preset for you in the sample information 
  232. files.
  233.  
  234. ------------------------
  235. Required Files on Disk 2
  236. ------------------------
  237.  
  238. Chapter 3 of the "ADK Guide" lists the following files as
  239. required on Disk 1 of your distribution disks; they are
  240. instead required on Disk 2:
  241.  
  242.     OLECLI.DL$ 
  243.     OLESVR.DL$ 
  244.     SHELL.DL$ 
  245.  
  246. In addition, the compressed file REGEDIT.EX$ is a 
  247. required file that must be distributed on Disk 2. 
  248. This file is the object linking and embedding (OLE) 
  249. registration file. Custom Setup automatically installs 
  250. the file in the directory where Windows is installed.
  251.  
  252. However, the "ADK Guide" incorrectly states that the 
  253. Microsoft Access registration file, MSACCESS.RE$, is a 
  254. required file on Disk 2. This is not a required file. 
  255. Setup creates this file automatically when a user 
  256. installs your application. 
  257.  
  258. ------------------------------------------------------
  259. Making Sure All Sections Are Included in Your INI File
  260. ------------------------------------------------------
  261.  
  262. When you create your application's initialization (.INI) 
  263. file, make sure to include all sections and entries from
  264. your MSACCESS.INI file that are used for data 
  265. manipulation. Microsoft Access and other applications 
  266. that use the Access database engine use many entries in 
  267. the MSACCESS.INI file to initialize the database engine.
  268.  
  269. If two or more applications that use the database engine
  270. are running simultaneously, the engine is initialized to
  271. the .INI file settings of the application that was 
  272. started first. 
  273.  
  274. For example, when you start your run-time application,
  275. Microsoft Access initializes the Access database engine
  276. according to the settings in your application's .INI 
  277. file. If you then start standard Microsoft Access while 
  278. the run-time application is still running, the Access 
  279. database engine will use your application's .INI file
  280. settings rather than the settings in MSACCESS.INI.
  281.  
  282. Proper database initialization is especially important
  283. when you are using data in other database formats or
  284. applications, such as dBASE, FoxPro, or Paradox. For 
  285. example, the Access database engine uses entries in the 
  286. following sections of the .INI file to access data in 
  287. other formats:
  288.  
  289.   [Installable ISAMs]
  290.   [Paradox ISAM]
  291.   [dBASE ISAM]
  292.  
  293. If those entries are not included in the .INI file of 
  294. first application that starts the Access database engine,
  295. then no application that uses the engine will be able
  296. to use dBASE, FoxPro, or Paradox data while the first
  297. application is running.
  298.  
  299. -------------------------------------
  300. Changing Your Application's Workgroup
  301. -------------------------------------
  302.  
  303. If you want users to be able to change your application's 
  304. workgroup, your custom Setup must display the Change 
  305. Workgroup dialog box during Setup or install a Change 
  306. Workgroup item in your application's Program Manager 
  307. group. You can enable this feature when you create 
  308. custom Setup using the SetupWizard, as described in the
  309. "ADK Guide" in Chapter 3, "Creating Your Custom Setup
  310. Program."
  311.  
  312. In addition, you must modify the Change Workgroup
  313. information file, WORKGRP.IN_. By default, this file 
  314. instructs the Change Workgroup utility to change a user's 
  315. standard Microsoft Access workgroup by modifying the
  316. SystemDB entry in [Options] section of the MSACCESS.INI 
  317. initialization file. To instruct Change Workgroup to 
  318. change your application's workgroup rather than the 
  319. standard Microsoft Access workgroup, you must replace 
  320. references to MSACCESS.INI in this file with the name 
  321. of your application's .INI file.
  322.  
  323. Otherwise, the Change Workgroup utility won't change
  324. your application's workgroup. Instead, if a user has 
  325. Microsoft Access installed, the utility will change the 
  326. user's Microsoft Access workgroup. If the user doesn't 
  327. have Microsoft Access installed, it will create a new 
  328. MSACCESS.INI file and SystemDB entry.
  329.  
  330. To enable Change Workgroup to change your application's
  331. workgroup:
  332.  
  333. 1 Before running the SetupWizard or creating your custom
  334.   Setup manually, edit the file WORKGRP.IN_ in the 
  335.   directory where you have installed the ADK using a 
  336.   text editor such as Windows Notepad. 
  337.  
  338. 2 In the [Update INIs] and [Custom] sections of 
  339.   WORKGRP.IN_, replace references to MSACCESS.INI with
  340.   the name of your application's .INI file.
  341.  
  342. 3 Run the SetupWizard or create your custom Setup 
  343.   manually.
  344.  
  345.   The SetupWizard will create a compressed version of
  346.   WORKGRP.IN_ on Disk 1 of your distribution disks. 
  347.  
  348.   NOTE: If you want to distribute an uncompressed 
  349.   version of WORKGRP.IN_, copy your edited version of
  350.   the file to your Disk1 directory after running the
  351.   SetupWizard or creating your custom Setup manually.
  352.  
  353. When users run custom Setup, it will rename 
  354. WORKGRP.IN_ to STFSETUP.INF on their disks. If the 
  355. InstallChangeWorkgroup entry in the [Custom] section 
  356. of STFSETUP.IN_ was set to "YES," custom Setup also 
  357. creates a Change Workgroup item in your application's 
  358. Program Manager group.
  359.  
  360. NOTE: If you use the Change Workgroup utility to try
  361. to create a new SYSTEM.MDA in the same directory as an
  362. existing SYSTEM.MDA, the existing SYSTEM.MDA will not 
  363. be overwritten. Microsoft Access won't create a new
  364. SYSTEM.MDA, although it will update the timestamp of 
  365. the existing SYSTEM.MDA if it isn't in use.
  366.  
  367. -----------------------------------------
  368. Invalid Characters in an Application Name
  369. -----------------------------------------
  370.  
  371. When you create your application's custom Setup, do not
  372. use brackets ('[', ']') or parentheses ('(', ')') in the
  373. application name. If you use these characters in an 
  374. application name while using the SetupWizard, the 
  375. SetupWizard displays an alert message. If you are 
  376. creating custom Setup manually, Setup fails to create 
  377. a Program Manager item for the application.
  378.  
  379. -------------------------------------------------
  380. Screen Display Problems While Running SUFILES.EXE
  381. -------------------------------------------------
  382.  
  383. If your computer has an outdated version of the CTL3D.DLL
  384. dynamic-link library in your \WINDOWS directory, you may
  385. encounter screen display problems while running the
  386. Setup Files utility, SUFILES.EXE. To correct the problem,
  387. delete CTL3D.DLL from the \WINDOWS directory.
  388.  
  389. IMPORTANT: Do not delete the file from the 
  390. \WINDOWS\SYSTEM directory. Microsoft Access installs the 
  391. current version of CTL3D.DLL, which is required by 
  392. Microsoft Access and by the run-time environment, in the 
  393. \WINDOWS\SYSTEM directory.
  394.  
  395.  
  396. -------------------------------------
  397. Errata and Omissions in Documentation
  398. -------------------------------------
  399.  
  400. The following errata and omissions in the printed 
  401. documentation were discovered after the books were 
  402. delivered for printing. Please mark the changes in your 
  403. copies of the books. We apologize for any inconvenience.
  404.  
  405. Some of these errors may be fixed in later printings
  406. of the books. 
  407.  
  408.  
  409. Manual:   MICROSOFT ACCESS DISTRIBUTION KIT GUIDE
  410.     
  411. Chapter:  Introduction
  412. Section:  "Distribution Kit Requirements"
  413. Page:     vii
  414.           The second item in the list incorrectly says the 
  415.           ADK requires a hard disk with 3 megabytes of free 
  416.           space. The ADK requires a hard disk with about 
  417.           4 megabytes of free space.
  418.  
  419. Manual:   MICROSOFT ACCESS DISTRIBUTION KIT GUIDE
  420.     
  421. Chapter:  1, "Developing Run-Time Applications: An Overview"
  422. Section:  "Hidden Windows, Views, and Toolbars"
  423. Page:     4
  424.           The second paragraph and Tip refer to the behavior
  425.           of the Database window, saying that the run-time 
  426.           executable hides the Database window by keeping it 
  427.           minimized and never displaying the minimized 
  428.           window's icon. The run-time executable hides the
  429.           Database window by setting the color of the window 
  430.           to the default Windows background color.
  431.  
  432. Manual:   MICROSOFT ACCESS DISTRIBUTION KIT GUIDE
  433.     
  434. Chapter:  1, "Developing Run-Time Applications: An Overview"
  435. Section:  "Hidden Windows, Views, and Toolbars"
  436. Pages:    4-5
  437.           The Tip on Page 4 refers to the Exit action. It
  438.           should refer to the Quit action. The Tip on Page 5
  439.           refers to Quit and Exit actions. Delete the
  440.           reference to the Exit action. Microsoft Access
  441.           doesn't include an Exit action.
  442.  
  443. Manual:   MICROSOFT ACCESS DISTRIBUTION KIT GUIDE
  444.     
  445. Chapter:  3, "Creating Your Custom Setup Program"
  446. Section:  "Files Required on Disk 1"
  447. Pages:    35
  448.           The Description of the WORKGRP.IN_ file incorrectly
  449.           states that the file is renamed to WORKGROUP.INF on
  450.           the user's disk. Setup renames the file to 
  451.           STFSETUP.INF on the user's disk.
  452.  
  453. Manual:   MICROSOFT ACCESS DISTRIBUTION KIT GUIDE
  454.     
  455. Chapter:  3, "Creating Your Custom Setup Program"
  456. Section:  "[Custom]"
  457. Pages:    48-50
  458.           The documentation of the RunExeName entry in the 
  459.           [Custom] section of STFSETUP.IN_ incorrectly refers 
  460.           to a disknum argument. RunExeName does not require 
  461.           this argument. 
  462.  
  463.           On Page 48, delete the RunExeName entry from Syntax 
  464.           and replace it with the following:
  465.  
  466.           RunExeName="exename"
  467.  
  468.           On Page 49, delete the disknum argument from 
  469.           Remarks. On Page 50, delete "5, " from the 
  470.           RunExeName example.
  471.  
  472.  Manual:   MICROSOFT ACCESS DISTRIBUTION KIT GUIDE
  473.     
  474. Chapter:  3, "Creating Your Custom Setup Program"
  475. Section:  "[INI File]"
  476. Page:     52
  477.           In the Example for entries in the [INI File} section
  478.           of STFSETUP.IN_, the first CreateIniKeyValue entry 
  479.           is missing a value argument. Depending on whether
  480.           MYLIB.MDA should be opened for read-only (ro) or 
  481.           read-write (rw) access, replace the example with one 
  482.           of the following:
  483.  
  484.           CreateIniKeyValue, $(WindowsPath)$(IniFileName),_
  485.           "Libraries", $(AppPath)"MYLIB.MDA", "ro"
  486.  
  487.           CreateIniKeyValue, $(WindowsPath)$(IniFileName),_
  488.           "Libraries", $(AppPath)"MYLIB.MDA", "rw"
  489.  
  490.           NOTE: The underscore character (_) is used here as
  491.           a line-continuation character. In your STFSETUP.IN_
  492.           file, these entries should appear on a single line.
  493.  
  494. Manual:   THE SECRETS OF ACCESSWIZARDS
  495.     
  496. Chapter:  2, "Incantations: AccessWizard Functions and Properties"
  497. Section:  "CreateControl, CreateReportControl Functions"
  498. Page:     12-15
  499.           Documentation of the CreateControl function omits the
  500.           fact that the function does not generate an error if 
  501.           you specify a parent control that does not exist.
  502.  
  503.           Also, this section omits the fact that controls created 
  504.           with these functions are not immediately visible. To 
  505.           make them visible, you can perform an action that 
  506.           causes Microsoft Access to display the control; for
  507.           example, set a property for the control.
  508.  
  509. Manual:   THE SECRETS OF ACCESSWIZARDS
  510.     
  511. Chapter:  2, "Incantations: AccessWizard Functions and Properties"
  512. Section:  "CreateForm, CreateReport Functions"
  513. Page:     15
  514.           In the Remarks section, the database argument 
  515.           description incorrectly says that if the argument is
  516.           omitted, Access Basic uses the same value as returned
  517.           by the CurrentDB function. Access Basic uses the 
  518.           database name, not the value returned by the CurrentDB
  519.           function, which returns a database object. Replace, to 
  520.           the end of the sentence, the phrase beginning with "if 
  521.           the argument is omitted..." with the following phrase:
  522.       
  523.           "if the argument is omitted, Access Basic uses the name 
  524.           of the current user database."
  525.  
  526.           NOTE: The name used must be the name of an open 
  527.           database rather than the path of a database file.
  528.  
  529.           Also, documentation of these functions omits the fact
  530.           that they do not generate an error if you specify
  531.           a formtemplate or reporttemplate that does not exist.
  532.           If the template does not exist, Access Basic uses the
  533.           form or report template set with the Options command
  534.           on the View menu.
  535.  
  536. Manual:   THE SECRETS OF ACCESSWIZARDS
  537.     
  538. Chapter:  2, "Incantations: AccessWizard Functions and Properties"
  539. Section:  "CreateGroupLevel Function"
  540. Page:     16
  541.           Documentation of the CreateGroupLevel function omits the
  542.           fact that the function generates an error if the Sorting
  543.           and Grouping dialog box is open when the function is 
  544.           called.
  545.  
  546.           The best way to handle this error is to trap it in 
  547.           Access Basic, use a DoCmd action to close the dialog
  548.           box, and then reinvoke the function.
  549.      
  550. Manual:   THE SECRETS OF ACCESSWIZARDS
  551.     
  552. Chapter:  2, "Incantations: AccessWizard Functions and Properties"
  553. Section:  "DeleteControl, DeleteReportControl Functions"
  554. Page:     17
  555.           DeleteControl and DeleteReportControl are documented as
  556.           functions, but instead they are Access Basic statements.
  557.           Replace the Syntax entries for DeleteControl and
  558.           DeleteReportControl with the following:
  559.  
  560.           DeleteControl formname, controlname
  561.           DeleteReportControl reportname, controlname
  562.  
  563.           Also, replace references to DeleteControl and
  564.           DeleteReportControl as functions with references to them
  565.           as statements in the section title and throughout the
  566.           manual.
  567.  
  568. Manual:   THE SECRETS OF ACCESSWIZARDS
  569.     
  570. Chapter:  2, "Incantations: AccessWizard Functions and Properties"
  571. Section:  "PrtMip Property"
  572. Page:     27
  573.           The description of the Item Layout setting incorrectly 
  574.           says you can enter an integer value of 1 for Horizontal 
  575.           layout or 2 for Vertical layout of report columns. The 
  576.           valid values are 1953 for Horizontal layout and 1954
  577.           for Vertical layout.
  578.