Saturday, July 10, 2021

Recordlocks property

Applies to

Form Object

Report Object

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 Office Access 2007 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 or .accdb).

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, 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 for Applications (VBA) code.

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

To change the default RecordLocks property setting for forms, click the Microsoft Office Button Office button image , and then click Access Options. In the Access Options dialog box, click Advanced, and then select the option you want 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

No comments:

Post a Comment