This article applies only to a Microsoft Access database (.mdb).
- The database was created while using a workgroup file (System.mdw) that is created with Microsoft Jet 4.0 Service Pack 4 (SP4) or earlier, and the workgroup file currently in use is created with Microsoft Jet 4.0 SP5.
- After you install Microsoft Windows 2000 SP2, or after you apply Jet 4.0 SP5 to your computer, you use the User Level Security Wizard to secure the database, and you select the option in the wizard to create a new workgroup file.
This problem was corrected in the latest Jet 4.0 service pack.
The Microsoft Jet database engine uses a security ID (SID) to uniquely identify user and group accounts. A SID of the account is determined by an encrypted combination of the user name and personal ID that is used to create the account.
This problem occurs when the SID of the Engine user account in the current workgroup file does not match the SID of the Engine user account that is used to create the database. The SID generated for the Engine account in workgroup files that are created with Microsoft Jet 4.0 SP5 differs from the SID generated for the Engine account in previous releases of Jet 4.0.
The Engine user is a special account that is used internally by the Jet database engine, and is not exposed through the Microsoft Access user interface. However, when the SID of the Engine account in the workgroup file does not match the SID of the Engine account that is used to create the database, the Jet engine does not recognize them as the same account. Therefore, you cannot save design changes made to new objects. However, you can save design changes made to previously existing objects.
For Microsoft Access-specific objects, such as forms, reports, macros, and modules, the object incorrectly appears in the Database window, although it is not actually saved. When you try to open one of these objects, Access returns an error message that it cannot find the object.
Steps to Reproduce the Behavior
- Use Microsoft Access to create a new, blank database on a computer that has not been upgraded to Microsoft Jet 4.0 SP5.
- Create and then save several objects such as tables, queries, and forms in the database.
- Quit Microsoft Access.
- Use the Workgroup Administrator utility (Wrkgadm.exe) to create a new workgroup file on a computer that has been upgraded to Microsoft Jet 4.0 SP5.
- Copy the database that you created in step 1 to the computer that has Microsoft Jet 4.0 SP5 installed.
- Start Microsoft Access, and open the database.
- Open a new form in Design view.
- Add several controls, and then close the form.
- When Microsoft Access prompts you to save the form, click Yes. Enter a name for the form, and then click OK. Note that you receive the following error message:The search key was not found in any record.Note that the form does not close.
- Close the form. Note that Microsoft Access prompts you to save the form again. Click No to close the form without saving the design changes. Note, however, that the form appears in the Database window, which indicates that it was saved.
- Open the form. Note that you receive the error message:The Microsoft Jet database engine cannot find the object <object name>. Make sure the object exists and that you spell its name and path name correctly.