CCBIL
asked on
disk network error in access database
An Access 2000 database, which has worked OK, is now giving a "disk or network error" when trying to view any tables.
Access 2003
XP pro sp3
Access 2003
XP pro sp3
ASKER
Security settings all check out, that's not the problem.
Next to check out would be a corrupted database. I would not go past step 7 just suspecting a corrupted database. I include the additional steps for your future reference.
Steps (approximately in order) to use to fix a corrupted Access database. (Test after each step.)
1) CREATE A BACKUP OF THE CORRUPT DATABASE. (Just in case)
2) Compact and repair
3) Use jetcomp.exe http://support.microsoft.com/default.aspx?scid=kb;en-us;Q273956
4) decompile: in run: msaccess "dbPathName.mdb" /decompile
Compact/repair: in run: msaccess "dbPathName.mdb" /compact
compile: in VB editor: debug> compile
Compact/repair
http://www.granite.ab.ca/access/decompile.htm
5) Use a backup (you have a lot of those -- yes?)
6) If you can identify one or a few forms or reports causing problems, copy the problem form/report from a backup. Or create a new form/report and copy all the objects in the old form/report to the new one. Copy the code from the old form/report using the undocumented
Application.SaveAsText acForm, FormName, "C:\" & FormName & ".txt"
then paste that from Notepad into the new form/report. If a module, copy the code using SaveAsText, create a new module, paste the code into the new module.
7) Create a new database, use File> Get external data> Import to get all objects of the damaged database and set up the options again.
8) Try a recovery tool:
www.officerecovery.com/access/index.htm
www.mvps.org/access/tables/tbl0018.htm
9) Hire a company to repair the database http://www.pksolutions.com/services.htm
Additional information:
How to Troubleshoot/Repair Damaged Jet 3.0 and Prior Databases
http://support.microsoft.com/support/kb/articles/Q109/9/53.asp
How to Troubleshoot Corruption in a Microsoft Access Database
http://support.microsoft.com/default.aspx?scid=kb;en-us;306204
Corrupt Microsoft Access MDBs FAQ
http://www.granite.ab.ca/access/corruptmdbs.htm
Steps (approximately in order) to use to fix a corrupted Access database. (Test after each step.)
1) CREATE A BACKUP OF THE CORRUPT DATABASE. (Just in case)
2) Compact and repair
3) Use jetcomp.exe http://support.microsoft.com/default.aspx?scid=kb;en-us;Q273956
4) decompile: in run: msaccess "dbPathName.mdb" /decompile
Compact/repair: in run: msaccess "dbPathName.mdb" /compact
compile: in VB editor: debug> compile
Compact/repair
http://www.granite.ab.ca/access/decompile.htm
5) Use a backup (you have a lot of those -- yes?)
6) If you can identify one or a few forms or reports causing problems, copy the problem form/report from a backup. Or create a new form/report and copy all the objects in the old form/report to the new one. Copy the code from the old form/report using the undocumented
Application.SaveAsText acForm, FormName, "C:\" & FormName & ".txt"
then paste that from Notepad into the new form/report. If a module, copy the code using SaveAsText, create a new module, paste the code into the new module.
7) Create a new database, use File> Get external data> Import to get all objects of the damaged database and set up the options again.
8) Try a recovery tool:
www.officerecovery.com/access/index.htm
www.mvps.org/access/tables/tbl0018.htm
9) Hire a company to repair the database http://www.pksolutions.com/services.htm
Additional information:
How to Troubleshoot/Repair Damaged Jet 3.0 and Prior Databases
http://support.microsoft.com/support/kb/articles/Q109/9/53.asp
How to Troubleshoot Corruption in a Microsoft Access Database
http://support.microsoft.com/default.aspx?scid=kb;en-us;306204
Corrupt Microsoft Access MDBs FAQ
http://www.granite.ab.ca/access/corruptmdbs.htm
In many cases, that specific error actually indicates corruption and has nothing to do with a disk or network, even if you are on a network. *Usually, Decompile as recommended by nelson will fix this. Here is a detailed DeCompile procedure to try:
A **DeCompile** may help here ...
But first, if you have not already:
Open the VBA Editor and from the menu ...Tools>>References ....
If you see any listed as **Missing: <reference name>, including the asterisks and the word Missing, the
you need to fix that first.
Then, follow this procedure:
****
0) **Backup your MDB BEFORE running this procedure**
****
1) Compact and Repair the MDB, as follows:
Hold down the Shift key and open the MDB, then from the menu >>Tools>>Database Utilities>>Compact and Repair ...
Close the mdb after the Compact & Repair.
2) Execute the Decompile (See example syntax below) >> after which, your database will reopen.
3) Close the mdb
4) Open the mdb and do a Compact and Repair (#1 above).
5) Close the mdb.
6) Open the mdb:
a) Right click over a 'blank' area of the database window (container) and select Visual Basic Editor. A new window will open with the title 'Microsoft Visual Basic' ... followed by then name of your MDB.
b) From the VBA Editor Menu at the top of the window:
>>Debug>>Compile
Note ... after the word Compile ...you will see the name of your 'Project' - just an fyi.
7) Close the mdb
8) Compact and Repair one more time.
*** Executing the DeCompile **EXAMPLE**:
Here is an **example** of the command line syntax (be SURE to adjust your path and file name accordingly) before executing the decompile:
Run this from Start>>Run, enter the following command line - **all on one line** - it may appear like two lines here in the post:
Also, the double quotes are required.
"C:\Program Files\Microsoft Office\Office\Msaccess.exe " /decompile "C:\Access2003Clients\Your MdbNameHER E.mdb"
For more detail on the Decompile subject ... visit the Master on the subject (and other great stuff) Michael Kaplan:
http://www.trigeminal.com/usenet/usenet004.asp?1033
mx
A **DeCompile** may help here ...
But first, if you have not already:
Open the VBA Editor and from the menu ...Tools>>References ....
If you see any listed as **Missing: <reference name>, including the asterisks and the word Missing, the
you need to fix that first.
Then, follow this procedure:
****
0) **Backup your MDB BEFORE running this procedure**
****
1) Compact and Repair the MDB, as follows:
Hold down the Shift key and open the MDB, then from the menu >>Tools>>Database Utilities>>Compact and Repair ...
Close the mdb after the Compact & Repair.
2) Execute the Decompile (See example syntax below) >> after which, your database will reopen.
3) Close the mdb
4) Open the mdb and do a Compact and Repair (#1 above).
5) Close the mdb.
6) Open the mdb:
a) Right click over a 'blank' area of the database window (container) and select Visual Basic Editor. A new window will open with the title 'Microsoft Visual Basic' ... followed by then name of your MDB.
b) From the VBA Editor Menu at the top of the window:
>>Debug>>Compile
Note ... after the word Compile ...you will see the name of your 'Project' - just an fyi.
7) Close the mdb
8) Compact and Repair one more time.
*** Executing the DeCompile **EXAMPLE**:
Here is an **example** of the command line syntax (be SURE to adjust your path and file name accordingly) before executing the decompile:
Run this from Start>>Run, enter the following command line - **all on one line** - it may appear like two lines here in the post:
Also, the double quotes are required.
"C:\Program Files\Microsoft Office\Office\Msaccess.exe
For more detail on the Decompile subject ... visit the Master on the subject (and other great stuff) Michael Kaplan:
http://www.trigeminal.com/usenet/usenet004.asp?1033
mx
ASKER
The database was moved to a different server, and it seems that a line in the code is referencing the server (\\servername). Will a decompile allow me to change that code and recompile? The original uncompiled code is long gone.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Decompile is not a 'code changing' operation per se. And if you have an MDE instead of an MDB then you cannot Decompile anyway.
mx
mx
CCBIL:
Why did you accept an answer that is just a statement? You never indicated you had an MDE?
Nor is the answer a solution ...
mx
Why did you accept an answer that is just a statement? You never indicated you had an MDE?
Nor is the answer a solution ...
mx
For databases on network computers, go to the level that is shared. Usually that is an entire drive. Right click on it and select "sharing and security". Make sure "share this folder" is selected and there is a share name that does not have a dollar sign ($) behind it in the drop down box. (The dollar sign share is a default share for administrator only.) If there is not one, add it. Select a share without a dollar sign. Select permissions. Make sure the users that will be using the db have change and read permissions.
Then right click on the folder(s) that contain the database(s) and select "sharing and security". Select security. Make sure the users have read, write, modify, and read & execute permissions. Select advanced. Edit the users that will access the databases. Make sure they have create files and delete permissions.
Then right click on the the database(s) and select "sharing and security". Select security. Make sure the users have read, write, modify, and read & execute permissions.
All databases are heavy network users. Running a multi user access database, all workstations should be running the xp or vista pro version. If you have less than about five workstations, you might get away with the backend being on a system running pro but more than that or with a complicated database, you need a domain and the server running a server os. Get up to a dozen heavy users or a couple of dozen light users and the server should be a true server and be dedicated to only serving the one database.