We have an application written in VB6 that utilizes ADO and Microsoft Jet and Replication, specifically Microsoft ActiveX Data Objects 2.5 Library and Microsoft Jet and Replication Objects 2.5 Library. The application has been in daily use in hundreds of government offices for 11 years. The database part of the application has been very stable until recently. We started noticing a problem in about October 2013. Sometimes when the user looks up some specific account, the application will return an error that says "record has been deleted". If we run a JRO compact routine that we utilize in our backup process, the problem is fixed. It is my assumption that this JRO compact routine is the same process that is run in Access 2000 when I ckick Tools > Database Utilities > Compact and Repair Database. The code that calls the JRO.CompactDatabase is listed below.
Dim jro1 As JRO.JetEngine
Set jro1 = New JRO.JetEngine
'compressDatabase
jro1.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & XXmdb, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BUmdb
Set jro1 = Nothing
(*** NOTE: the JRO routine is the current best solution to our problem, not in any way we know of the cause of the problem.)
We are unable to duplicate the error except to the extent that if the problem exists in a mdb file we can, after we are told which account to access, see the error when we look up that account. We have not been able to find out how or when the error / problem / corruption is created in our application.
We expect that some routine or process that is run on an account, under certain conditions, encounters an error or creates a corruption and that this error, due to some error handling routine or lack of one, goes un-noticed at the time the corruption happens.
This error has occurred maybe 50 times since October 2013. If the error occurred prior to that time, it occurred so seldom that we have no memory of it. The office in which this error occurs most often did install a new server with new server software the first week of October. The problem has happened in maybe 5 offices in addition the the office mentioned. We do not think this problem is caused by any of our version updates.
Any ideas as to what or why?
Thanks for your help, John Brown
Dim jro1 As JRO.JetEngine
Set jro1 = New JRO.JetEngine
'compressDatabase
jro1.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & XXmdb, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BUmdb
Set jro1 = Nothing
(*** NOTE: the JRO routine is the current best solution to our problem, not in any way we know of the cause of the problem.)
We are unable to duplicate the error except to the extent that if the problem exists in a mdb file we can, after we are told which account to access, see the error when we look up that account. We have not been able to find out how or when the error / problem / corruption is created in our application.
We expect that some routine or process that is run on an account, under certain conditions, encounters an error or creates a corruption and that this error, due to some error handling routine or lack of one, goes un-noticed at the time the corruption happens.
This error has occurred maybe 50 times since October 2013. If the error occurred prior to that time, it occurred so seldom that we have no memory of it. The office in which this error occurs most often did install a new server with new server software the first week of October. The problem has happened in maybe 5 offices in addition the the office mentioned. We do not think this problem is caused by any of our version updates.
Any ideas as to what or why?
Thanks for your help, John Brown