Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Westi on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

How to avoide this accedent?

Status
Not open for further replies.

HNA

Programmer
Jan 13, 2003
87
KW
Plz Let Explain To U How Is My Form Going On:

* The Table Contain About 46000 Record's.
* OnFormCurrent i wrote code to get the last record ID number and increse it 1 to have a unique number.
* the form has also details subform
* now let say 2 user open the form in same time to add new record.
* sure both of them will get the same record ID number and also the subform will be same id number, so who will be faster to enter he is the winner.
* but the next user who will put me in hell.
* i should to delete all the record is subform and chang the main form record ID then stop any one to enter data and and .......etc.

So Plz is there any way to solve that.

Any Help Will Be Appreciated.


Do It Well, Or Don't.
 
You need to wait to assign the record number until the commit to insert the new record. At that point in time you lock the table, find the last record number, incriment it, perform the insert and unlock the table.

Skip,
Skip@TheOfficeExperts.com
 
Dear SkipVought,

how can i lock the table?, and What About The SubForm It Needs the Linked ID (record Number)??????????

Thanx In Advance

Sam


Do It Well, Or Don't.
 
Here's what help states about record locking...

RecordLocks Property
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.

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 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.


Skip,
Skip@TheOfficeExperts.com
 
Thanx, Sounds like u copy and past from access help.

Anyway i appreciate .

Do It Well, Or Don't.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top