RecordLocks Property

Microsoft Access Visual Basic

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.

ShowTip

To change the default RecordLocks property setting for forms, click Options on the Tools menu, click the Advanced tab on the Options dialog box, and then select the desired option under Default 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