Link to home
Start Free TrialLog in
Avatar of balraj
balraj

asked on

Disk I/O Error #3040

We have an Access 2.0 application that uses DAO and ODBC to a SQL Server 6.5 database. The workstations are DOS 6.22, Windows for Workgroups V3.11 on a Novell 4.x LAN. The application also uses Jet 2.5 with Microsoft's TAB.OCX tab control. The database and all DLL's are on the workstation's hard disk and is opened exclusively. However, frequently we get Disk I/O error #3040 occuring in the application. This can happen anywhere within the application and is totally random. Sometimes, running SCANDISK on the PC fixes the problem, but most times the solution is to delete the MDB file and copy a fresh one across. The MDB file is actually not corrupt because Access does not complain about opening it. Because it is a production system, wse usually get the user to delete the file and copy a new one from the LAN so that they can keep working without much interruption. However, as usage grows, this problem is becoming increasingly difficult to support.
Further to chapies first comment: You're right, I am not completely sure that the MDB is not corrupt. Yes, V2.0 of Access came with repair and compact utilities. At this stage, we are waiting for this problem to reoccur and when it does, get the user to email us a copy of the MDB before deleting it and replacing it with a new one. I will post the findings here once this is complete.
Avatar of chapie
chapie

a corrupt database does not necessarily mean it will not open the file, I have had many experiences with Acc95 losing the ability to modify the Code-Behind-Forms, eventhough it still works, the only solution is to create a new MDB and copy all the objects over (and you think you would still be copying the curroption but it doesn't)

so, my obvious question is are you assuming the MDB is not curropt or have you ran a 'repair' on the database (did Acc2 come with a repair/compact function?? I only have Acc95 & Acc97)
ASKER CERTIFIED SOLUTION
Avatar of chapie
chapie

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of balraj

ASKER

Edited text of question
that's kinda what I figured, but I have instances where people let answered question just sit around....
Avatar of balraj

ASKER

OK, got an MDB sent by a user experiencing the Error #3040. I put it on my NT workstation (NTFS) and could reproduce the error by opening the database and selecting menu items. I then did a repair on the database and got the following errors:
1. Table <Large Values> was truncated: data lost.
2. Some Memo or OLE objects values from table MSysObjects couldn't be repaired and were deleted.
After this the repair continued and eventually reported that it was repaired successfully. (somehow I don't believe that).
In any case, there is no such table or query or any other object called <Large Values>, so I don't really know what that message means.
Once repaired, I was able to run the database application without the #3040 error. Everything appeared to be normal, but I did not exhaustively test the application, there could well be some impact from the stuff deleted during the repair.

oops, hopefully you made a copy of the file before running the repair/compact..

well, anyway sounds like (as long as everything gets tested alright), that simply adding a repair/compact shortcut into the Win3.1 environment will work, and when they experience the problem they can run the shortcut