The following list identifies problems that may occur when using Microsoft 
Access.  This list contains all significant, reproducible problems that we 
have found since releasing the product.  The list includes bugs that could 
potentially cause a General Protection Fault in Access or in some other 
way might cause significant difficulty for many users, but it does not 
include all known problems to date.  The list will be updated as new 
problems are identified and validated.  A detailed description of each 
problem and the suggested work around is also provided below.

1.  Incorrect Windows For Workgroups driver can cause file truncation 
    (correct driver included with Microsoft Access)
2.  Incorrect LAN Manager driver can cause file truncation (correct 
    driver included with Microsoft Access)
3.  Microsoft Access SETUP may have problems with DOS APPEND statement 
    in Autoexec.bat
4.  ATI Ultra video driver not compatible with Microsoft Access
5.  Microsoft Access SETUP may leave temporary directory and files on 
    disk
6.  Problem importing .DBF files where record length exceeds dBASE 
    maximum
7.  Microsoft Access cannot use Btrieve data with indexes across column 
    boundaries
8.  Fixed Width Import does not correctly translate extended characters
9.  Cannot hide modal/popup forms with the OpenForm action
10. Form dynaset references do not always work when using form variables
11. Problem using Running Sum property with control that evaluates to 
    #ERROR
12. Beta versions of ODBC drivers will not work with Microsoft Access
13. STACKER 3.0 incorrectly reports that database files are corrupted
14. Cannot use the CVDate and IsDate functions with empty string argument
15. Cannot declare new form object variable during break mode
16. Cannot attach to foreign database in multiuser environment
17. Using LIKE with trailing spaces and wild cards will not work properly
18. Query with descending sort on indexed duplicate data can return 
    incorrect results
19. Cannot add counter columns to existing tables with large amounts of 
    data
20. Fixed Width Import does not work with variable length records
21. Searching on Paradox data with multi-column indexes that contain 
    NULLS
22. Update Queries do not work with "Restrict Available Fields" Option 
    disabled
23. Using the BTRIEVE NLM may give an undefined error alert
24. Duplicate values may be returned on "Unique Values Only" queries 
    (DISTINCT)
25. Microsoft Access may have problems when multiple instances of 
    extremely large query definitions are used
26. Programmatically hiding a control in the footer of a form that is 
    viewed in datasheet mode may cause problems
27. Using the ListParameters method on a database object does not 
    generate an error as expected
28. Problems Importing Lotus 1-2-3 spreadsheets with extremely large 
    numbers of formatted cells
29. Adding fields to a table in multiuser mode may cause fields to 
    become cross-linked
30. Property sheet and toolbox may show up in form browse mode
31. Entering an invalid IIf() in a ControlSource on a form may cause a 
    General Protection Fault


1. Incorrect Windows For Workgroups driver can cause file truncation 
(correct driver included with Microsoft Access)

NOTE:  This problem was discovered before Microsoft Access was released 
and all copies of Microsoft Access include the updated Windows for 
Workgroups driver and installation instructions.

DESCRIPTION:  If you have an early version of the Windows for Workgroups 
WFWNET.DRV file (before 11-02-92), using the Network button in Access 
dialog boxes to connect to password-protected servers may cause any 
database files that you open on that server to become truncated.

WORK AROUND:  Update the WFWNET.DRV driver file using the driver update 
program included with Microsoft Access.  Complete instructions are 
contained in the flier included in your copy of Microsoft Access.


2. Incorrect LAN Manager driver can cause file truncation (correct driver 
included with Microsoft Access)

NOTE:  This problem was discovered before Microsoft Access was released 
and all copies of Microsoft Access include the updated LAN Manager driver 
and installation instructions.

DESCRIPTION:  Using Microsoft Access on a Microsoft LAN Manager 
workstation (prior to version 2.2) can cause files to become truncated.  
Products that may be affected include: Microsoft LAN Manager prior to 
version 2.2; DEC Pathworks for DOS version 4.1;
NCR StarGroup LAN Manager version 3.6; Olivetti Olinet LAN Manager version 
2.1; Ungermann-Bass LAN Manager version 2.1.

Database truncation is most likely to occur when a user workstation 
operates faster than the file server on which the database file is stored. 
(Note that the CPU speed alone does not determine the operation speed of 
the server. Heavy network traffic can make the server operate more slowly 
than a user workstation(s).)

WORK AROUND:  If you have LAN Manager 2.1 or 2.1a, install the LAN Manager 
Hotfix included with Microsoft Access appropriate to your version of LAN 
Manager.  If you have LAN Manager 2.0, include the appropriate line in 
your LANMAN.INI file for LAN Manager versions prior to 2.1.  Refer to the 
instructions included in the README.TXT file in your Microsoft Access 
package for complete details.


3. Microsoft Access SETUP may have problems with DOS APPEND statement in 
Autoexec.bat

DESCRIPTION:  If you have an APPEND statement in your AUTOEXEC.BAT file 
and that APPEND statement defines a path where other README.TXT files 
exist, Microsoft Access SETUP may abort when installing the README.TXT 
file.

WORK AROUND:  Remove or remark out the APPEND statement in your 
AUTOEXEC.BAT file and reboot your computer before trying to setup 
Microsoft Access.


4. ATI Ultra video driver not compatible with Microsoft Access

NOTE:  Use GO ATITECH to acquire the newest versions of ATI drivers.  
Newer versions may correct some or all of the problems reported.

DESCRIPTION:  Using ATI-supplied drivers included with the ATI Ultra video 
card can cause any of the following problems in Microsoft Access: 1) 
General Protection Fault on disabled cascading menus (most common case is 
Layout menu with Align command disabled in form or report design); 2) 
disabled buttons not visible; and 3) text alignment problems.

WORK AROUND:  The suggested work around for these problems is to use the 
8514 video drivers included with Windows 3.1 and not the video drivers 
supplied with the ATI Ultra video card.  NOTE: Microsoft is working with 
ATI on this problem.  We will post more information on this forum as it 
becomes available.


5. Microsoft Access SETUP may leave temporary directory and files on disk

DESCRIPTION:  If you request SETUP to install SHARE and then choose the 
option to reboot your machine at the end of the installation process, 
SETUP will not properly clean up temporary files on your hard disk.  This 
leftover directory will have the name MS-SETUP.T and will contain data 
files totaling approximately 600K.  Besides taking up hard disk space, 
these files will have no affect on Microsoft Access or any other 
applications.

WORK AROUND:  Do not choose to reboot your machine at the end of the 
installation process or simply delete the files and directory after the 
reboot process.


6. Problem importing .DBF files where record length exceeds dBASE maximum

DESCRIPTION:  CodeBase++ v1.07 allows you to create .DBF files where the 
record length exceeds the dBASE IV maximum.  Microsoft Access may hang 
when trying to import these type of .DBF files.

WORK AROUND:  Export the CodeBase++ .DBF file to delimited text, then 
import the ASCII file into Microsoft Access.


7. Microsoft Access cannot use Btrieve data with indexes across column 
boundaries

DESCRIPTION:  Microsoft Access will display the error message: "File is 
corrupt or isn't an Access file" when attempting to attach or import a 
BTRIEVE file which has an index defined across a column boundary."

Access does not support BTRIEVE indexes which have keys defined on a 
partial column or across column boundaries.  Indexes which have a segment 
of the key which is defined to cross a column boundary are not supported 
by the Xtrieve data dictionary format.  Xtrieve may ignore these indexes 
and import the file correctly but Microsoft Access does not.

WORK AROUND:  You must remove the indexes or recreate them so that they 
align on column boundaries.


8. Fixed Width Import does not correctly translate extended characters

DESCRIPTION:  When importing a Fixed Width ASCII file, Microsoft Access 
does not properly translate extended characters from OEM to ANSI 
representation.  The first 4K of data is imported and translated 
correctly, but all data after the initial 4K will not translate correctly.

WORK AROUND:  Convert the ASCII file from OEM to ANSI using another 
Windows application, such as Windows Write.  Using Windows Write, simply 
open the file, responding 'Yes' to the convert alert, then save the file.


9. Cannot hide modal/popup forms with the OpenForm action

DESCRIPTION:  Using the OpenForm action to hide a modal/popup form may 
cause a General Protection Fault.

WORK AROUND:  Hide a modal/popup form by using the SetValue action to set 
the forms .Visible property to False.


10. Form dynaset references do not always work when using form variables

DESCRIPTION:  If you reference a form dynaset with variables, you may 
receive a General Protection Fault.

WORK AROUND:  Always refer to a form dynaset with explicit references 
through the form.  The first code fragment below shows how to references a 
form dynaset safely and the second code fragments shows what will most 
likely cause the problem.

A)     SAFE:
       forms!testform.dynaset!col1="foo"

B)     MAY CAUSE PROBLEMS:
       dim f as form
       set f = form!testform
       f.dynaset!col1 = "foo"


11. Problem using Running Sum property with control that evaluates to 
#ERROR

DESCRIPTION:  If a report contains a control where the Running Sum 
property is set to 'Over Group' or 'Over All' and the control evaluates to 
#ERROR, Microsoft Access will cause a General Protection Fault.

WORK AROUND:  Correct the expression in the control source property so 
that it evaluates correctly.


12. Beta versions of ODBC drivers will not work with Microsoft Access

DESCRIPTION:  When using Beta versions of the ODBC drivers, Microsoft 
Access may experience General Protection Faults in ODBC.DLL.  The problem 
is that when Microsoft Access initiates an ODBC connection, ODBC does not 
properly check the version of the ODBC driver.

WORK AROUND:  Rename or delete the beta version of ODBC.DLL and run the 
ODBC setup program from the setup disks that come with Microsoft Access.  
This will install a current ODBC.DLL file.


13. STACKER 3.0 incorrectly reports that database files are corrupted

DESCRIPTION:  Running Stacker's "check /=D /F" command will often report 
that some Access .mdb files are corrupt and should be deleted.  The 
problem is that the "/=D /F" flags are for development and debugging 
purposes and will report things which are really not problems.  If for 
some reason you run CHECK.EXE with the /=D switch and it asks if you want 
to delete a file, answer NO!  The file is fine.  These are superfluous 
error messages.

WORK AROUND:  Do not run CHECK.EXE with the /=D switch.  If you do run 
CHECK /=D, answer NO when prompted to delete files.  Stac Electronics has 
written a document explaining the "Lost Sector Groups" reported by CHECK 
/=D.  The document is referenced as TEC042.DOC on CompuServe or the Stac 
BBS and as document #3003 on STAC FAX, Stac Electronics' automated FAX 
response service.


14. Cannot use the CVDate and IsDate functions with empty string argument

DESCRIPTION:  The CVDate function is used to convert a string or numeric 
expression to a variant of type date.  If this function is called with the 
empty string as the expression (i.e. CVDate("")) then you will get a 
general protection fault.  The IsDate function has the same problem.

WORK AROUND:  Verify that you are passing valid date strings in the 
argument to CVDate.


15. Cannot declare new form object variable during break mode

DESCRIPTION:  The General Protection Fault occurs when declaring an object 
variable (form, table, etc.) during break mode (when debugging Access 
Basic code) and then trying to recompile the code. The following are 
examples of object variable declarations:

  Dim F as Form
  Dim T as Table

WORK AROUND:  Don't add these type of variables while in break mode.


16. Cannot attach to foreign database in multiuser environment

DESCRIPTION:  Attaching/importing will only work if you can open the 
foreign database file (dBASE, Paradox, BTRIEVE, etc) exclusively.  If you 
attempt to attach to these types of files while others are using them you 
will get an error message stating that the table or file is already in 
use.  This problem is isolated to attach and import.  Once you have 
successfully attached to a file of this type you can then edit or browse 
this file in a multiuser environment.

WORK AROUND:  Must obtain exclusive access to foreign database file in 
order to import or attach.


17. Using LIKE with trailing spaces and wild cards will not work properly

DESCRIPTION:  When using the LIKE operator with trailing spaces and 
trailing wild cards (i.e. LIKE "The *") you will not always get back the 
proper results.  Access ends up trimming the trailing spaces in this case 
and actually performs LIKE "The*".  This is only a problem when you have 
both trailing spaces and the trailing wild card character.

WORK AROUND:  A sample work around for the LIKE "The *" example would be 
as follows:

     (LIKE "The*" AND (mid$([Field],4,1) = " "))


18. Query with descending sort on indexed duplicate data can return 
incorrect results

DESCRIPTION:  When sorting data in descending order on a column that is 
indexed and contains over 506 duplicate entries, Access can return 
incorrect results to the user (wrong number of rows).  This can occur when 
the Index property for a column is set to Yes (No Duplicates) or Yes 
(Duplicates OK), but not when there is a primary key on the column.  
Non-primary key indexes can have multiple NULL entries.

WORK AROUND:  Remove the index from the column that is being sorted.  This 
will cause the query to execute more slowly but will give you the correct 
results.


19. Cannot add counter columns to existing tables with large amounts of 
data

DESCRIPTION:  You cannot add counter columns to an existing table that 
contains large amounts of data (roughly anything greater than 4 MB of 
data).  This problem occurs because of a current limitation in the Access 
transaction model (transaction size limited to 4 MB).  This problem 
manifests itself with counter columns because the table data for this 
column is updated as the column is added.  This update will take place 
within a transaction and on large tables it will encounter the Access 
transaction size limit.  The transaction will then rollback and the 
counter column will not be successfully added.

WORK AROUND:  Follow these steps to add a counter column to a large 
table:

  1) Copy/Paste the table structure (not the data) to a new table
  2) Add a counter column to this new table
  3) Create an append query that transfers data from the
     old table into the new table
  4) Verify new table has correct data
  5) Delete the old table
  6) Rename the new table to the name of the old table


20. Fixed Width Import does not work with variable length records

DESCRIPTION:  The fixed width import utility currently expects all records 
in your text file to be the same length.  This most commonly presents 
itself as a problem when the right most column of your text file has 
strings of different lengths and they are not padded with spaces.  In this 
case, Access will not import the data as you might expect (Access will 
look to the next line for more characters if the right most column is not 
properly padded).

WORK AROUND:  When importing ASCII Fixed Width files you must ensure that 
all record (lines of text) are the same length.  In some cases this may 
require that you manually or programmatically pad some lines with the 
correct amount of spaces.  The following piece of code below is an example 
of how one might programatically pad the lines of a text file so that all 
lines (records) of the file are fixed length.

'----------------------------------------------------------------
'InFile$  - name of Fixed Width Ascii data file
'OutFile$ - name of new file to create with proper padding
'RecLen%  - Fixed length of each record in the padded file
'----------------------------------------------------------------
Sub PadFixedWidthFile (InFile$, OutFile$, RecLen%)

  fh1% = FreeFile
  Open InFile$ For Input As #fh1%

  fh2% = FreeFile
  Open OutFile$ For Output As #fh2%

  'Pad data and place in new file
  While Not EOF(fh1%)
    Line Input #fh1%, Ln$
    If (Len(Ln$) < RecLen%) Then
      Ln$ = Ln$ + String$(RecLen% - Len(Ln$), " ")
    Else
      MsgBox "Padding process aborted! - Data exceeds record length "
      MsgBox Ln$
      GoTo ExitPadFixedWidthFile
    End If
    Print #fh2%, Ln$
  Wend

ExitPadFixedWidthFile:
  Close #fh1%
  Close #fh2%

End Sub


21. Searching on Paradox data with multi-column indexes that contain NULLS

DESCRIPTION:  Using the Edit Find dialog to search Paradox fields for 
specific values will not work properly if the field being searched is part 
of a multi-column index, the field contains NULLS, and the "Search Fields 
As Formatted" option is disabled in the EditFind dialog.

WORK AROUND:  The work around is to check the 'Search Fields as Formatted' 
option so that the index is not used in the search.  Similarly, when 
querying on Paradox fields that are part of a multi-column index and 
contain NULLS you should use the LIKE operator in places where you might 
normally use the equivalence operator.

AVOID:
   SELECT *
   FROM TestTable
   WHERE ((FieldX=23));

WORK AROUND:
   SELECT *
   FROM TestTable
   WHERE ((FieldX Like 23));


22. Update Queries do not work with "Restrict Available Fields" Option 
disabled

DESCRIPTION:  If you use the View Options dialog to set the Query Design 
option "Restrict Available Fields" to NO (the default is YES) then UPDATE 
queries will not work correctly.  In the most common case Access will 
cause a General Protection Fault, but there have been isolated cases where 
the query actually executed to completion and incorrectly altered the data 
in your table (the wrong columns get updated).

WORK AROUND:  Use the Query Properties dialog to set the "Restrict 
Available Fields" option to No on a query by query basis when this 
functionality is desired. Do not use the View Options
dialog to set this option on a global basis.


23. Using the BTRIEVE NLM may give an undefined error alert

DESCRIPTION:  Users who do not have all of the correct versions of 
BREQUEST.EXE, WBTRCALL.DLL, and WBTRVRES.DLL may receive an "Internal 
Database Error (-5001)" alert when using the BTRIEVE NLM.

WORK AROUND:  In order to get the BTRIEVE NLM to function properly, we 
recommend that the NLM requester (client) uses the 6.0 versions of 
BREQUEST.EXE, WBTRCALL.DLL,  WBTRVRES.DLL and the 5.15 version of 
BTRIEVE.NLM.  Follow these steps:

  1) Sign on to CompuServe.
  2) Go NOVLIB
  3) Go into the BTRIEVE/XQL library section.
  4) Download the BT515.ZIP file
  5) Use PKUNZIP.EXE to unpack the file.
  6) Unpack the BTRREQ.ZIP file that gets unpacked from step 5.
  7) Obtain the following files:
      WBTRCALL.DLL
      WBTRVRES.DLL
      BREQUEST.EXE
  8) Follow the readme notes to properly install and execute these files.
  9) The readme should also explain how to apply patches 1-65 to the
     BTRIEVE.NLM file on the server.

The WIN.INI file should also be modified with the following lines:

[BREQUESTDPMI]
datalength=4096
tasks=10
local=no
chkparms=no


24. Duplicate values may be returned on "Unique Values Only" queries 
(DISTINCT)

DESCRIPTION:  DISTINCT queries may return a few duplicate values at the 
beginning of the result set if the data set is very large.  This happens 
only if the result set of the query is greater than 64K (counting the 
duplicate values).  Record position of the duplicate values in the result 
set is a contributing factor.

The conditions that must be met are as follows:

a) The underlying table(s) contains a large number of records (the result
   set must be >64K).
b) The data values that sort to the beginning of the output must have
   many duplicate values scattered throughout the input.

This can manifest itself in a Select query with the Unique Values Only 
property turned on (DISTINCT).  It can also show up in a Crosstab query as 
duplicated columns with names like "Field0", "Field1", etc.

This problem only occurs with Select DISTINCT queries, and not with the 
much more common Select DISTINCTROW queries.

WORK AROUND:  For Select queries, use Totals with GROUP BYs instead of 
using the Unique Values Only property.

For crosstab queries, use Fixed Column Heading to prevent the problem.


25. Microsoft Access may have problems when multiple instances of 
extremely large query definitions are used

DESCRIPTION:  Trying to open more than one instance of a query may cause a 
General Protection Fault in Microsoft Access when the query definition is 
extremely large.  For example, if you have a form based on a query with a 
query definition size of >32K and you then attempt to create a SnapShot 
from the same query, Microsoft Access may cause a General Protection 
Fault.  This happens because multiple versions of the query definition 
must be saved, and the saved query definitions do not fit within the 
query's segment space (the space allocated to each query).

Note: The number of records in the result set is NOT a contributing factor.

WORK AROUND:  Create a second query based on the first query and use one 
of the queries for the form, and the other query for the SnapShot.


26. Programmatically hiding a control in the footer of a form that is 
viewed in datasheet mode may cause problems

DESCRIPTION:  If you have a control in the footer of a form, you hide that 
control in an event such as OnCurrent, and you then view the form in 
datasheet view; Microsoft Access may cause a General Protection Fault.  In 
datasheet view, Microsoft Access incorrectly assumes that there is a grid 
column associated with the field being hidden; however, that is not true 
in this case since the control is in the form's footer.

WORK AROUND:  Since forms with controls in the footer are normally meant 
to be used in Form view, set the ViewsAllowed property for the form to 
Form so that the form cannot be switched into datasheet view.


27. Using the ListParameters method on a database object does not generate 
an error as expected

DESCRIPTION:  Attempting to list parameters for a database object is 
illegal, but does not generate the expected compile-time error.  Instead, 
it may cause a General Protection Fault in Microsoft Access.  For example, 
the following subroutine causes a General Protection Fault even though it 
should generate a compile-time error.

Sub Test
   Dim db As Database
   Dim Snap As Snapshot

   Set db = CurrentDB()
   Set Snap = db.ListParameters()
End Sub

WORK AROUND:  Check Microsoft Access Help or the Microsoft Access 
"Language Reference" for the list of valid database object methods.


28. Problems Importing Lotus 1-2-3 spreadsheets with extremely large 
numbers of formatted cells

DESCRIPTION:  The Lotus 1-2-3 spreadsheet import in Microsoft Access is 
limited to 64,000 formatted cells.  All Lotus 1-2-3 cells are formatted.  
Those not explicitly set by the user carry the general format.  If a Lotus 
1-2-3 spreadsheet has more than 64,000 cells, then Microsoft Access cannot 
import it and the system may hang during the import.

WORK AROUND:  To import Lotus 1-2-3 spreadsheets with greater than 64,000 
cells, they must first be physically split into separate spreadsheets 
where the number of cells in each does not exceed 64,000.  Importing 
sub-ranges from these large spreadsheets does not eliminate the problem.


29. Adding fields to a table in multiuser mode may cause fields to become 
cross-linked

DESCRIPTION:  In multiuser mode, adding a field to an existing table may 
cause the new field to become linked with another field already in the 
table.  This can happen if more than one user accesses a table in a very 
short space of time (within a couple of minutes of each other) and the 
design of the table is modified at that time.  Information about open 
tables is read from the system tables and cached by Microsoft Access.  
This can mean that the information in the cache for one person is out of 
date when that person makes a design change to a table that another person 
has just used.  If so, the table may become corrupted.

The following example illustrates how you might cause this problem. User1 
opens a table, and then closes it.  User2 then makes a quick design change 
to the table and closes it.  User1 then reopens the table in design view 
and makes another change.  If User1 still has the information for that 
table cached, the system tables are not read again, so the table may 
become corrupted.  It is not necessary for the same table to be opened by 
both users.  The information on the table opened by User1 may be on the 
same page in the system table as the information on the table modified by 
User2 and if that page is cached by Microsoft Access then this problem can 
occur.  This can be confusing to the users since they do not appear to be 
using the same table.

Information in the cache is discarded on a regular basis for tables that 
are not being used, so the problem will not occur unless the changes are 
made before Microsoft Access has a chance to flush the cache.  To ensure 
that the information in the cache is flushed, wait at least a minute 
before opening a table in design.

When this problem occurs, it can manifest itself in one of the following 
ways:

a) The data from another field in the table may be displayed in the new
   field.
b) Data typed into the linked field may be displayed in the new field.
c) Attempting to copy the table with the new field may generate a error.

WORK AROUND:  To correct this problem, simply compact the affected 
database.  This is done by selecting Compact Database from the File menu 
when no database is open.


30. Property sheet and toolbox may show up in form browse mode

DESCRIPTION:  Programmatically changing a form in form design mode may 
cause Microsoft Access to display the property sheet and toolbox in browse 
mode and could potentially lead to a General Protection Fault.  This will 
only happen under all the following conditions:  

1) It must be the very first time a form is opened in design mode after
   loading Microsoft Access.
2) The form must be opened in a restored or maximized state (not
   iconized).
3) There must be NO other MDI windows open (visible and enabled).  MDI 
   stands for Multiple Document Interface In Microsoft Access, all open
   documents as well as the database container window use MDI windows

WORK AROUND:  One of the following work arounds will ensure that this 
problem is not encountered.

1) Open the design form as an icon (this is one of the arguments to the 
   OpenForm action) and do not hide the DBC until after the form is
   opened.
2) Do not close the form before going to form browse mode.  The OpenForm
   action will switch a form from design mode to browse mode if the form
   is already open when the action is called.


31. Entering an invalid IIf() in a ControlSource on a form may cause a 
General Protection Fault

DESCRIPTION:  If you use the IIf() function in a ControlSource property on 
a form and you do not provide the necessary parentheses around the 
parameter list, Microsoft Access may cause a General Protection Fault 
instead of returning an error.  For example, the  following syntax is 
incorrect and will cause a problem.

   =IIf IsNull([Fld]),"NULL","NOT NULL"

WORK AROUND:  Ensure that all IIf() functions include the required 
parentheses on the parameter list.  The following syntax is a corrected 
version of the one displayed above.

   =IIf(IsNull([Fld]),"NULL","NOT NULL")


