473,473 Members | 2,167 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

Engine stopping processes due to phantom data accesses!

DaveSlade72
23 New Member
Whilst trying to update my Access 97 database I'm getting the error message:
"The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time".
There are no other users accessing the database when the error occurs, and the table being updated is only available through the database itself so no one could possible have access to it.
So my question is simply - can this error be generated by any other means than that which it is claiming!
I did have a similar file-locking problem back in January that was solved by re-booting the server, but before I do that and disrupt my colleagues work, I wanted to explore other options.

The update query worked fine a week ago, and I'm not aware of having made any changes to the queries involved.

Regards,
Dave Slade
Cardiff
Jul 11 '07 #1
17 5672
ADezii
8,834 Recognized Expert Expert
Whilst trying to update my Access 97 database I'm getting the error message:
"The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time".
There are no other users accessing the database when the error occurs, and the table being updated is only available through the database itself so no one could possible have access to it.
So my question is simply - can this error be generated by any other means than that which it is claiming!
I did have a similar file-locking problem back in January that was solved by re-booting the server, but before I do that and disrupt my colleagues work, I wanted to explore other options.

The update query worked fine a week ago, and I'm not aware of having made any changes to the queries involved.

Regards,
Dave Slade
Cardiff
  1. Close the Database.
  2. See if there is an *.ldb file present with the same Base Name and in the same Directory as your Access Database *.mdb. If this file is present, then Delete it.
  3. Open the Database again and see if the same problem still exists.
Jul 11 '07 #2
DaveSlade72
23 New Member
  1. Close the Database.
  2. See if there is an *.ldb file present with the same Base Name and in the same Directory as your Access Database *.mdb. If this file is present, then Delete it.
  3. Open the Database again and see if the same problem still exists.
There is no ldb file to delete I'm afraid.
Jul 11 '07 #3
puppydogbuddy
1,923 Recognized Expert Top Contributor
There is no ldb file to delete I'm afraid.
That message often occurs because a user attempts to edit a record that is also being updated by a background process via VBA code. Check and see if you have any VBA code updating the record when you get that message. The message also occurs if the same record is being accessed via 2 open forms and an attempt is made to commit changes on the second form before the changes on the first opened form are commited.

The remedies?
In the case of the 2 opened forms, insert the following code for form1 before opening form2:
If Me.Dirty Then
Me.Dirty = False
End If

In the case of the vba background process, you can trap the error and then issue an "On Error Resume Next"


Here is method for dealing with lock conflicts as a result of 2 users simultaneously accessing the same record. This method is provided by www.aadconsulting.com on their tips page:

For every Access database opened for shared use, an .ldb file is created to store computer and login names, and to place extended byte range locks. The .ldb file always has the same name as the opened .mdb and is located in the same folder.

The Jet database engine uses .ldb file information to prevent users from writing data to pages that other users have locked, and to determine who has other pages locked. If Jet detects a lock conflict with another user, it reads the .ldb file to get the computer and login name of the user who has the file or record locked.

In most lock conflict situations, Access raise a generic Write conflict message that allows you to save the record, copy it to the Clipboard, or drop the changes you made. In some circumstances, you may receive the following error message:

Couldn't lock table <table name>; currently in use by user <security name> on computer <computer name>.
1. In the form create a TextBox that sits exactly over the ComboBox

2. Set the ComboBox's Visible property to False

3. The TextBox is Visible and holds a value according to needs of the application: it may be a bound control or, as in the sample code below, unbound with the value assigned on the Form_Load event.

4. Clicking on the TextBox hides it and displays the ComboBox. After the user has updated the ComboBox, the value is assigned to the TextBox and the ComboBox hidden again.


Private Sub Form_Load()
Me!txtHideShow.SetFocus
Me!txtHideShow.Text = "Test"
End Sub

Private Sub txtHideShow_Click()
Me!cmbHideShow.Value = Me.txtHideShow.Value
Me!cmbHideShow.Visible = True
Me!cmbHideShow.SetFocus
Me!txtHideShow.Visible = False
End Sub

Private Sub cmbHideShow_AfterUpdate()
Me!txtHideShow.Value = Me.cmbHideShow
Me!txtHideShow.Visible = True
Me!txtHideShow.SetFocus
Me!cmbHideShow.Visible = False
End Sub
Jul 11 '07 #4
DaveSlade72
23 New Member
That message often occurs because a user attempts to edit a record that is also being updated by a background process via VBA code. Check and see if you have any VBA code updating the record when you get that message. The message also occurs if the same record is being accessed via 2 open forms and an attempt is made to commit changes on the second form before the changes on the first opened form are commited.
The error occurs when trying to run an update Query. The original table was deleted the first time the query failed and because the query failed it was not re-created, so there is no table for anyone else to be accessing/updating or generally meddling with. There are no forms at all in the database and there should not be any code working behind the scenes.

I have copied the database from an old back-up and tried to run the query on a local drive rather than the server but this has also not helped.

Could some kind of feedback in the query cause this error? I didn't think that I'd made any changes to it in the past two weeks, but I may be wrong.
Jul 11 '07 #5
DaveSlade72
23 New Member
The error occurs when trying to run an update Query. The original table was deleted the first time the query failed and because the query failed it was not re-created, so there is no table for anyone else to be accessing/updating or generally meddling with. There are no forms at all in the database and there should not be any code working behind the scenes.

I have copied the database from an old back-up and tried to run the query on a local drive rather than the server but this has also not helped.

Could some kind of feedback in the query cause this error? I didn't think that I'd made any changes to it in the past two weeks, but I may be wrong.
It does appear to be a VB issue after all - one of the fields in the table being created was formed by combining three memo fields whilst stripping out some Rich Text Formating. This function has worked perfectly for three years, but today has caused this error. I'll have to look at a work around tomorrow but I'm none the wiser as to where this problem has suddenly appeared from.

Thanks for the suggestions.
Dave
Jul 11 '07 #6
puppydogbuddy
1,923 Recognized Expert Top Contributor
It does appear to be a VB issue after all - one of the fields in the table being created was formed by combining three memo fields whilst stripping out some Rich Text Formating. This function has worked perfectly for three years, but today has caused this error. I'll have to look at a work around tomorrow but I'm none the wiser as to where this problem has suddenly appeared from.

Thanks for the suggestions.
Dave
Dave,
Maybe you are getting message because Access can't open the table and thinks the table is locked? Just in case, you should check to see if the table you are updating exists before you execute the update. If it doesn't exist, abort the update.

Here is code to check if a table exists:
Expand|Select|Wrap|Line Numbers
  1. Private Function CheckIfTableExists() As Boolean
  2. ' Returns True if table exists.
  3.  
  4.     Dim db As DAO.Database
  5.     Dim rst As DAO.Recordset
  6.  
  7.     Set db = CurrentDb
  8.  
  9.    ' Try to open table to see if it exists.
  10.     On Error Resume Next
  11.     Set rst = db.OpenRecordset("uztblErrorLog")   'enter name of your table
  12.  
  13.     ' If there's no error, ie. table exists, returns True.
  14.     If Err = 0 Then
  15.         CheckIfTableExists = True
  16.     Else
  17.         CheckIfTableExists = False
  18.     End If
  19.  
  20. End Function
  21.  
This approach can be extended to other Access objects.
Jul 11 '07 #7
DaveSlade72
23 New Member
Dave,
Maybe you are getting message because Access can't open the table and thinks the table is locked? Just in case, you should check to see if the table you are updating exists before you execute the update. If it doesn't exist, abort the update.

Here is code to check if a table exists:
Expand|Select|Wrap|Line Numbers
  1. Private Function CheckIfTableExists() As Boolean
  2. ' Returns True if table exists.
  3.  
  4.     Dim db As DAO.Database
  5.     Dim rst As DAO.Recordset
  6.  
  7.     Set db = CurrentDb
  8.  
  9.    ' Try to open table to see if it exists.
  10.     On Error Resume Next
  11.     Set rst = db.OpenRecordset("uztblErrorLog")   'enter name of your table
  12.  
  13.     ' If there's no error, ie. table exists, returns True.
  14.     If Err = 0 Then
  15.         CheckIfTableExists = True
  16.     Else
  17.         CheckIfTableExists = False
  18.     End If
  19.  
  20. End Function
  21.  
This approach can be extended to other Access objects.

Sorry - this just shows how long ago I set the queries up - it's actually a Make Table query, not an Update query. So if the table is already there it is deleted first and then created. At least that is what used to happen before yesterday!
Jul 12 '07 #8
DaveSlade72
23 New Member
Sorry - this just shows how long ago I set the queries up - it's actually a Make Table query, not an Update query. So if the table is already there it is deleted first and then created. At least that is what used to happen before yesterday!
The field that is causing the problem in concatenating comments fields from four other linked tables. Three of those tables are fine, but one is not.

Expand|Select|Wrap|Line Numbers
  1. IIf(SURVEY_EVENT!COMMENT>"",STRIPRTF(SURVEY_EVENT!COMMENT),"") 
  2. & IIf(SAMPLE!COMMENT>"",STRIPRTF(SAMPLE!COMMENT),"") 
  3. & IIf(TAXON_DETERMINATION!COMMENT>"",STRIPRTF(TAXON_DETERMINATION!COMMENT),"") 
  4. & IIf(TAXON_OCCURRENCE!COMMENT>"",STRIPRTF(TAXON_OCCURRENCE!COMMENT),"")
  5.  
If I take out the fourth argument, the Make Table Query runs perfectly. Put this one back in and I get the error message about two users trying to alter the same data at the same time. In fact the STRIPRTF function is not at fault, as this can be removed from the final argument and it will still fail because of the other user (that does not appear to exist).

Having determined where the error is coming from, I now presume there must be a problem in the linked table, but I'm a little concerned. The whole point of the query was to extract data from the linked table without compromising the integrity of the linked database. This error seems to imply that this Make Table query is having an effect on the linked table... or am I missing something?
Jul 12 '07 #9
ADezii
8,834 Recognized Expert Expert
The field that is causing the problem in concatenating comments fields from four other linked tables. Three of those tables are fine, but one is not.

Expand|Select|Wrap|Line Numbers
  1. IIf(SURVEY_EVENT!COMMENT>"",STRIPRTF(SURVEY_EVENT!COMMENT),"") 
  2. & IIf(SAMPLE!COMMENT>"",STRIPRTF(SAMPLE!COMMENT),"") 
  3. & IIf(TAXON_DETERMINATION!COMMENT>"",STRIPRTF(TAXON_DETERMINATION!COMMENT),"") 
  4. & IIf(TAXON_OCCURRENCE!COMMENT>"",STRIPRTF(TAXON_OCCURRENCE!COMMENT),"")
  5.  
If I take out the fourth argument, the Make Table Query runs perfectly. Put this one back in and I get the error message about two users trying to alter the same data at the same time. In fact the STRIPRTF function is not at fault, as this can be removed from the final argument and it will still fail because of the other user (that does not appear to exist).

Having determined where the error is coming from, I now presume there must be a problem in the linked table, but I'm a little concerned. The whole point of the query was to extract data from the linked table without compromising the integrity of the linked database. This error seems to imply that this Make Table query is having an effect on the linked table... or am I missing something?
  1. Delete the Link to this Table.
  2. Import the Table (make in Internal).
  3. Run the code again.
  4. This should further isolate the cause of the problem as to whether it is a connectivity, multi-access, locked, etc. problem.
Jul 12 '07 #10
DaveSlade72
23 New Member
  1. Delete the Link to this Table.
  2. Import the Table (make in Internal).
  3. Run the code again.
  4. This should further isolate the cause of the problem as to whether it is a connectivity, multi-access, locked, etc. problem.
Ah! It won't let me import the table, and gives me the same message... getting closer!
Jul 12 '07 #11
DaveSlade72
23 New Member
Ok. The problem lies with the linked database (which is also Access97).

I've tried Repairing it, and that runs and says it's worked. Compacting it however throws up an error, initially that I don't have read permissions on the database, and the 'MSysCompactError' -

ErrorCode ErrorDescription ErrorRecid ErrorTable
-1611 The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time. à8 TAXON_OCCURRENCE

To be honest the databse looks like it's been compacted ok, but I'm not 100% certain.
Jul 12 '07 #12
puppydogbuddy
1,923 Recognized Expert Top Contributor
Ok. The problem lies with the linked database (which is also Access97).

I've tried Repairing it, and that runs and says it's worked. Compacting it however throws up an error, initially that I don't have read permissions on the database, and the 'MSysCompactError' -

ErrorCode ErrorDescription ErrorRecid ErrorTable
-1611 The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time. à8 TAXON_OCCURRENCE

To be honest the databse looks like it's been compacted ok, but I'm not 100% certain.
Oh...if it is a make table query, then I think I know what your problem is. You should not have deleted the prior temp table because the delete of the prior table is built into the make table query, itself. If you erase it, then Access will be unable to execute the make table query. If you have copies of the temp table, just copy it over to your application and you should be ok. If you don't have copies you may have to create a new make table query.
Jul 12 '07 #13
DaveSlade72
23 New Member
Oh...if it is a make table query, then I think I know what your problem is. You should not have deleted the prior temp table because the delete of the prior table is built into the make table query, itself. If you erase it, then Access will be unable to execute the make table query. If you have copies of the temp table, just copy it over to your application and you should be ok. If you don't have copies you may have to create a new make table query.
Sorry, I don't think that's it. When the table is present, the Make table query deletes it as you say it should, and then fails with the same error message. I've tried Make Table queries without the offending Comment field, and if there was no table it does simply create it.
Jul 12 '07 #14
DaveSlade72
23 New Member
After speaking with someone that is familiar with the source database, it would appear that it is corrupted, and this is what has led to the series of errors.
Running it through JetComp v4.0 has done the trick.

Many thanks for your assistance.

Dave
Cardiff
Jul 12 '07 #15
DaveSlade72
23 New Member
The notes that accompany the JetComp utility contains this explanation for the error:

Error # 3197

Error Description The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time.

Cause/Problem This is typically occurs when a long value column (an OLE or MEMO data-type) has bad data stored in it. Long value columns are typically stored in a separate page from the page that the row is stored in. If a long value column is present in the table schema, the Jet database engine will attempt to read the long value page when reading the row of data. In order to read the long value page, there is a pointer in the row of data. This error is generated when the Jet database engine cannot properly read the long value page from the pointer present in the data row. When viewing a row that exhibits this behavior in Microsoft Access data-windows, the user will typically see the number sign (#) for the entire row.
Cheers,
Dave
Jul 12 '07 #16
puppydogbuddy
1,923 Recognized Expert Top Contributor
Ok. The problem lies with the linked database (which is also Access97).

I've tried Repairing it, and that runs and says it's worked. Compacting it however throws up an error, initially that I don't have read permissions on the database, and the 'MSysCompactError' -

ErrorCode ErrorDescription ErrorRecid ErrorTable
-1611 The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time. à8 TAXON_OCCURRENCE

To be honest the databse looks like it's been compacted ok, but I'm not 100% certain.
Dave,
Ok, if it is not the Make Table Query, then the errors you are getting are on the list for symptoms of db corruption. See #4 on the list below:

http://www.granite.ab.ca/access/corruption/symptoms.htm

As to what is causing the corruption, it could be that you have not updated Jet or MDAC to the most recent service releases.
Jul 12 '07 #17
DaveSlade72
23 New Member
Thanks, that's the conclusion I'd come to (see my post above).

Best wishes and thanks,
Dave
Jul 13 '07 #18

Sign in to post your reply or Sign up for a free account.

Similar topics

2
by: Erik Johnson | last post by:
I am trying to work with a program that is trying make an HTTP POST of text data without any named form parameter. (I don't know - is that a normal thing to do?) I need to write a CGI program that...
1
by: Matt | last post by:
The following program submit a FORM DATA to a new window using HTTP POST, and postprocess.asp couldn't get the form data. If I do in GET method and pass by query string in windowURL, then it...
0
by: Neoharuo | last post by:
I am working on a VB2003 project that accesses a SQL Server database. The first two forms (frmA, frmB) are almost identicle as far as the processes and data access and updating. I've set it up so...
8
by: mrwoopey | last post by:
Hi, I need to get data from a client via a HL7 interface. How can I do this? Can I do this via visual basic? Please post, code, links, anything! Your help is appreciated! Phin
0
by: Glen Wolinsky | last post by:
I am creating a Windows service that will check a request queue (database) for pending requests. It will then process each individual request until completed, wait a set time interval and then...
6
by: D | last post by:
I have a simple file server utility that I wish to configure as a Windows service - using the examples of the Python Win32 book, I configured a class for the service, along with the main class...
9
by: David Harris | last post by:
Ok, so I'm semi-new to .NET, having done everything manually with SQL code back in VB6. So before I program this up completely manually again, I thought I'd ask for better ways to think through...
110
by: alf | last post by:
Hi, is it possible that due to OS crash or mysql itself crash or some e.g. SCSI failure to lose all the data stored in the table (let's say million of 1KB rows). In other words what is the worst...
8
MMcCarthy
by: MMcCarthy | last post by:
Type MemSize RetVal of VarType() Declaration Char Conversion Boolean 2b vbBoolean(11) CBool() Byte 1b vbByte(17) ...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.