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:
- You have the Default record locking option set
to Edited Record or to All Records.
- You want to open a database by using specific command-line switches.
- You are distributing an Access run-time solution.
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