RecordLocks Property [Access 2003 VBA Language Reference]
You can use the RecordLocks property to determine how records are locked and what happens when two users try to edit the same record at the same time. Read/write.
expression.RecordLocks
expression Required. An expression that returns one of the objects in the Applies To list.
Remarks
When you edit a record, Microsoft Access can automatically lock that record to prevent other users from changing it before you are finished.
Forms. Specifies how records in the underlying table or query are locked when data in a multiuser database is updated.
Reports. Specifies whether records in the underlying table or query are locked while a report is previewed or printed.
Queries. Specifies whether records in a query (typically an action query in a multiuser database) are locked while the query is run.
Note The RecordLocks property only applies to forms, reports, or queries in a Microsoft Access database (.mdb).
The RecordLocks property uses the following settings.
Setting | Visual Basic | Description |
---|---|---|
No Locks | 0 | (Default) In forms, two or more users can edit the same record simultaneously. This is also called "optimistic" locking. If two users attempt to save changes to the same record, Microsoft Access displays a message to the user who tries to save the record second. This user can then discard the record, copy the record to the Clipboard, or replace the changes made by the other user. This setting is typically used on read-only forms or in single-user databases. It is also used in multiuser databases to permit more than one user to be able to make changes to the same record at the same time.
In reports, records aren't locked while the report is previewed or printed. In queries, records aren't locked while the query is run. |
All Records | 1 | All records in the underlying table or query are locked while the form is open in Form view or Datasheet view, while the report is previewed or printed, or while the query is run. Although users can read the records, no one can edit, add, or delete any records until the form is closed, the report has finished printing, or the query has finished running. |
Edited Record | 2 | (Forms and queries only) A page of records is locked as soon as any user starts editing any field in the record and stays locked until the user moves to another record. Consequently, a record can be edited by only one user at a time. This is also called "pessimistic" locking. |
Note You can set this property by using a form's property sheet , a macro , or Visual Basic .
Note Changing the RecordLocks property of an open form or report causes an automatic recreation of the recordset.
You can use the No Locks setting for forms if only one person uses the underlying tables or queries or makes all the changes to the data.
In a multiuser database, you can use the No Locks setting if you want to use optimistic locking and warn users attempting to edit the same record on a form. You can use the Edited Record setting if you want to prevent two or more users editing data at the same time.
You can use the All Records setting when you need to ensure that no changes are made to data after you start to preview or print a report or run an append, delete, make-table, or update query.
In Form view or Datasheet view, each locked record has a locked indicator in its record selector.
Tip
RecordLocksOptionsToolsAdvancedOptionsDefault record locking
Data in a form, report, or query from an Open Database Connectivity (ODBC) database is treated as if the No Locks setting were chosen, regardless of the RecordLocks property setting.
Example
The following example sets the RecordLocks property of the "Employees" form to Edited Record (a page of records is locked as soon as any user starts editing any field in the record and stays locked until the user moves to another record).
Forms("Employees").RecordLocks = 2
Applies to | Form Object | Report Object