Error: Database can't be repaired or isn't MS Access DB file

J

Jeffery Hawkins

Hi, and thanks for reading/replying.

We have several tiers of Access DB's in production, and in the past 6 weeks
have had this problem about 5 times. A user all of a sudden can't connect
to the main database ("common.mdb"). When we try to open up Common, we get
the error: "The database [mapped drive]\Common.mdb can't be repaired or
isn't a Microsoft Access database file." We can only click OK. Then we get
an error saying: "You or another user may have unexpectedly quit MS Access
while a MS Access database was open. Do you want MS Access to attempt to
repair the database?" We click yes and get a message: You attempted to open
a database that is already opened exclusively by user 'Admin' on machine
'[username]'. Try again when the database is available." Problem is, that
user really is not connected to the database. There is a Common.ldb file,
which we can't delete and have to reboot the server on which Common resides.
When we reboot the server, then we can delete the Common.ldb file and Access
will repair the database, and all is well with the world. We rebuilt the
Common.mdb (copied all objects -- just tables -- into a new Access DB about
3 weeks ago). Is the Jet engine going corrupt on the server? Any
suggestions? Specifics on the configuration below:

OS on Server: Windows 2000 Server
Application: MS Access 2000
Access 2K DB "Associates" (one table only) is linked into "Common.mdb".
From there, we have FingoodsDB.mdb with many linked tables from Common.mdb,
and a few of it's own. From there we have FingoodsClient.mdb which is the
user db with the forms and reports (front-end), with links from Associates,
Common, and FingoodsDB. The only DB that gives these errors, however, is
Common.mdb. We also connect websites using ColdFusion and EasySoft.

Associates.mdb, Common.mdb, FingoodsDB.mdb all reside on the server,
FingoodsClient.mdb is on the client machines. Interestingly, while other
users are not able to connect to the database (and the websites are down),
the users who are already connected with forms open to the tables, have no
problem reading and writing to the database. When they do close out of the
application, they then cannot reconnect without getting an error: "Cannot
execute the command."

Sounds like the Jet engine is creating exclusive connection(s) to the
connected Access client all of a sudden. Jet Engine corruption? Need to
reinstall Access on the Server? Need to replace the Msjter40.dll?

Thanks, and sorry this is so long.

Jeff Hawkins
 
T

Tony Toews

Jeffery Hawkins said:
We have several tiers of Access DB's in production, and in the past 6 weeks
have had this problem about 5 times.

What changed six weeks ago? New Access SP? Ie, Jet 4.0 SP7 or SP8?
New clients? New server?
A user all of a sudden can't connect
to the main database ("common.mdb"). When we try to open up Common, we get
the error: "The database [mapped drive]\Common.mdb can't be repaired or
isn't a Microsoft Access database file." We can only click OK. Then we get
an error saying: "You or another user may have unexpectedly quit MS Access
while a MS Access database was open. Do you want MS Access to attempt to
repair the database?" We click yes and get a message: You attempted to open
a database that is already opened exclusively by user 'Admin' on machine
'[username]'. Try again when the database is available." Problem is, that
user really is not connected to the database. There is a Common.ldb file,
which we can't delete and have to reboot the server on which Common resides.

Sometimes this lock which the server retains which clients disconnect
abnormally is released after 10 or 20 minutes.
Associates.mdb, Common.mdb, FingoodsDB.mdb all reside on the server,
FingoodsClient.mdb is on the client machines.

Good. You are running the standard FE/BE configuration.
Interestingly, while other
users are not able to connect to the database (and the websites are down),
the users who are already connected with forms open to the tables, have no
problem reading and writing to the database. When they do close out of the
application, they then cannot reconnect without getting an error: "Cannot
execute the command."

This is typical behavior. Access only checks the corrupt flag when
opening the BE MDB for the first time.
Sounds like the Jet engine is creating exclusive connection(s) to the
connected Access client all of a sudden. Jet Engine corruption?
Need to
reinstall Access on the Server?

No, because Access, and no applications for that matter should be on
the server. The server is just serving pages of the MDB. It's the
client which is doing all the work.
Need to replace the Msjter40.dll?

Not one specific file. It would usually be msjet40.dll anyhow. But
if you are installing a new SP you *REALLY, REALLY* want to install
all the files. Not one or two.
Thanks, and sorry this is so long.

Long is far, far better than too short. And yours was just about
right I'd say.

Now, some other things you can do.

1) See the "Determining the workstation which caused the corruption"
page at the Corruptions FAQ at my website to see if it's one
particular client which is causing your troubles.

2) See the causes page and start going through the list of items.
Some are easier to do than others. For example inserting code in your
FE to verify that all your clients are running the same version of
msjet40.dll.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
 
J

Jeffery Hawkins

Actually, nothing changed 6 weeks ago. Absolutely nothing. I will go
through your entire response, and let you know how things turn out. Thank
you VERY much for your time and effort on this!!

Jeff.

Tony Toews said:
Jeffery Hawkins said:
We have several tiers of Access DB's in production, and in the past 6 weeks
have had this problem about 5 times.

What changed six weeks ago? New Access SP? Ie, Jet 4.0 SP7 or SP8?
New clients? New server?
A user all of a sudden can't connect
to the main database ("common.mdb"). When we try to open up Common, we get
the error: "The database [mapped drive]\Common.mdb can't be repaired or
isn't a Microsoft Access database file." We can only click OK. Then we get
an error saying: "You or another user may have unexpectedly quit MS Access
while a MS Access database was open. Do you want MS Access to attempt to
repair the database?" We click yes and get a message: You attempted to open
a database that is already opened exclusively by user 'Admin' on machine
'[username]'. Try again when the database is available." Problem is, that
user really is not connected to the database. There is a Common.ldb file,
which we can't delete and have to reboot the server on which Common
resides.

Sometimes this lock which the server retains which clients disconnect
abnormally is released after 10 or 20 minutes.
Associates.mdb, Common.mdb, FingoodsDB.mdb all reside on the server,
FingoodsClient.mdb is on the client machines.

Good. You are running the standard FE/BE configuration.
Interestingly, while other
users are not able to connect to the database (and the websites are down),
the users who are already connected with forms open to the tables, have no
problem reading and writing to the database. When they do close out of the
application, they then cannot reconnect without getting an error: "Cannot
execute the command."

This is typical behavior. Access only checks the corrupt flag when
opening the BE MDB for the first time.
Sounds like the Jet engine is creating exclusive connection(s) to the
connected Access client all of a sudden. Jet Engine corruption?
Need to
reinstall Access on the Server?

No, because Access, and no applications for that matter should be on
the server. The server is just serving pages of the MDB. It's the
client which is doing all the work.
Need to replace the Msjter40.dll?

Not one specific file. It would usually be msjet40.dll anyhow. But
if you are installing a new SP you *REALLY, REALLY* want to install
all the files. Not one or two.
Thanks, and sorry this is so long.

Long is far, far better than too short. And yours was just about
right I'd say.

Now, some other things you can do.

1) See the "Determining the workstation which caused the corruption"
page at the Corruptions FAQ at my website to see if it's one
particular client which is causing your troubles.

2) See the causes page and start going through the list of items.
Some are easier to do than others. For example inserting code in your
FE to verify that all your clients are running the same version of
msjet40.dll.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top