ACC2000: Access Database Does Not Use Record-Level Locking When Started from a Windows Shortcut

ID: Q238258


The information in this article applies to:

Novice: Requires knowledge of the user interface on single-user computers.

This article applies only to a Microsoft Access database (.mdb).


SYMPTOMS

When you try to edit data in a multiuser Jet database or in a database that you have open more than once on your computer, you cannot modify the records, and the Record Locked icon is displayed to the left of the record in the table. This behavior occurs even when you have the database set for record-level locking and no one else is editing the same record.


CAUSE

The first instance of the multiuser Jet database was opened either by using a Windows shortcut or by double-clicking the *.mdb file in Windows Explorer. When Access 2000 opens a Jet database in these ways, the Jet database uses page-level locking instead of record-level locking.


RESOLUTION

To ensure that Microsoft Access uses the correct record or page locking setting, open Access first, and then use either the Open an existing file option in the startup Microsoft Access dialog box or the Open command on the File menu to open the database.


STATUS

Microsoft has confirmed this to be a problem in Microsoft Access 2000.


MORE INFORMATION

The behavior described in the "Symptoms" section of this article is of particular concern under the following conditions:

Although you cannot completely avoid this problem under these conditions, you may be able to moderate them by changing the locking strategy or by changing the startup procedure that you use for opening a database.

Changing the Locking Strategy

When you set the Default record locking option to Edited Record or All Records and the database is in page-locking mode, the page that contains the record that is being edited, or the entire table, respectively, is locked as soon as a user starts editing a record. By changing the Default record locking option to No locks, you can delay the locking of the edited page until the user actually saves the modifications made to the record.

NOTE: You can check or change the Default record locking option by clicking Options on the Tools menu, and then switching to the Advanced tab in the Options dialog box.

Opening a Database with Specific Command-Line Switches

You can run some of the command-line switches used by Access 2000 without specifying a database path. A common reason to use a command-line switch is to designate a specific workgroup information file to use when opening Access. If you typically use a Windows shortcut to designate a specific workgroup information file, consider using the Windows shortcut to open only the Access program with the command-line switches, and then to let the user pick the database from the opening dialog box. For example
"C:\Program Files\Microsoft Office\Office\msaccess.exe" /wrkgrp C:\MyWorkgroup.mdw /user MyUser /pwd MyPassword
starts Access using the MyWorkgroup.mdw file and supplies the user name, MyUser, and the password, MyPassword, and then stops at the opening dialog box where the user can select a database.

You can also use the /nostartup command-line switch in a Windows shortcut without providing a specific database path.

Working with Access Run-Time Solutions

Because an Access 2000 run-time application must use a Windows shortcut to start, it uses only page-level locking. The only current workaround is to modify the locking options for the database as described earlier. Although the database is still opened in page-locking mode, using the No locks option reduces the amount of locking contention that occurs in multiuser solutions.

Additional query words: pra row level locking


Keywords          : kbdta 
Version           : WINDOWS:2000
Platform          : WINDOWS 
Issue type        : kbbug 

Last Reviewed: August 12, 1999