Database locked

Urco

Registered User.
Local time
Today, 03:20
Joined
Jul 7, 2008
Messages
29
Hello everyone,

Since lately I am having problems with a multi user database with front and back end. It is a IT Helpdesk tool.

I get the follwoing error. Either when entering a new record or updating an existing record it freezes. I can navigate between existing records. After entering and updating it starts calculating and after a while the following error occurs.

run-time error 3218
Could not update, currently locked.

Debugging points at a listbox. Yellow before me.requery (I need to requery as the database had problems with the bookmark error, see: http://support.microsoft.com/?id=191883)
Private Sub Listbox_AfterUpdate()
Me.Requery

How can I solve this guys? Any help is appreciated.

When I go to a different form in the database that uses a different table I can make changes to the data in that table without problems! Moving to the helpdesk form and access freezes.
 
Your Help Desk form may be corrupted. If you are getting the error message with any form then it may be a permissions problem with the network share.

Sometimes however it is impossible to un-corrupt a form and you have to re-develop it from scratch.
 
Last edited:
I already did that once. Only ending up with the same problem. Any other suggestions.
 
By the way, I use access 2003.


With following record locking properties:

Default open mode is shared
Default record lockig is no locks
Open databases using record level locking

Is that information of any use, do you need more information?
 
Debugging points at a listbox. Yellow before me.requery

perhaps you now have an unwritten edited record, but the list box needs this edit to be completed to refresh - so you are caught in a "deadly embrace"

solution may be to save the record before trying to refresh the list box

either
application.runcommand accmssaverecord

or
if me.dirty then me.dirty = false

---------
thinking again

which listbox event are you using for me.requery?
is the listbox bound to a field?

if its the after update event, then it is probably the situation i described - because you have selected an item in the listbox, the current record is now dirty, and needs saving - so yoo are trying to requery the form (me.requery) while the record hasnt been saved - which may well produce the effect you describe.
 
Last edited:
Another thing to try

open each table directly and give each record a visual scan, what you are looking for is a corrupted record, and usually you will see #Error# in one of fields.

If you do find one, then you will not be able to remove using the DEL key, instead create a new table and copy / paste all records up to but not including the record in error, then the same for all records after the record in error.
 
Hi,

Thanks a lot for your suggestion. I'm going to try it first thing tomorrow morning when I have access to the database again.

Your suggestion appears to be quite hopeful I think, thanks!!

By the way, it is definately in the after update event. But it is not bound to a field.

Will keep you posted on my progression.


perhaps you now have an unwritten edited record, but the list box needs this edit to be completed to refresh - so you are caught in a "deadly embrace"

solution may be to save the record before trying to refresh the list box

either
application.runcommand accmssaverecord

or
if me.dirty then me.dirty = false

---------
thinking again

which listbox event are you using for me.requery?
is the listbox bound to a field?

if its the after update event, then it is probably the situation i described - because you have selected an item in the listbox, the current record is now dirty, and needs saving - so yoo are trying to requery the form (me.requery) while the record hasnt been saved - which may well produce the effect you describe.
 
That is definately another thing to try. I will scan the tables. Will let you know if I find something. Thanks.

Another thing to try

open each table directly and give each record a visual scan, what you are looking for is a corrupted record, and usually you will see #Error# in one of fields.

If you do find one, then you will not be able to remove using the DEL key, instead create a new table and copy / paste all records up to but not including the record in error, then the same for all records after the record in error.
 

Users who are viewing this thread

Back
Top Bottom