Security Update for Windows XP (KB950749) affected Access 2000 Database


We have just installed the Microsoft Windows Security Update (KB950749) for Windows XP and several of our Microsoft 2000 databases are coming up with the following error message when we try to open a table:

Cannot open database “name of database”. It may not be a database that your application recognises, or the file may be corrupt.

It is really strange, because it only happens when you try and open one table in the database and it happens to all versions of this database, even those that haven’t been touched for months. We know it is to do with the security update, because the same database table opens up fine on computers that haven’t had the security update installed.

I know how to go about repairing the databases by exporting and re-importing the information into a new table, but we are just curious about what was actually affected by the security update to cause this error. Any theories would be greatly appreciated.




Maybe it’s related to the dll’s like this?:

There’s more details on the actual KB page:

It seems this update causes a problem sometimes with DAO. Possibly also access may think the target table has been opened exclusively - rebooting usually fixes this. Have you installed Jet 4.0 Service Pack 8 (SP8): if you have not it may be worth trying:

You could also try the JetComp Utility from Microsoft - I have attached it in a zip file:

If all else fails you could try a recovery tool: this one is not bad:

If you end up having to pay for a recovery tool then as an alternative it may be worth considering upgrading to Access 2003 which should also solve your problem I think.


[attachment deleted by admin]

I’ve documented some issues we’ve run into with KB950749 at

We have a lot of legacy c++ code that uses DAO, and the update broke a lot of our code. We’ve found that the CreateField method no longer seems to work when called from c++. I didn’t have the same issue with VBA in an Access module, but that code works through a different interface than the c++ code.

Good luck!

KB 950749 Contains A New Version Of Jet, Which Is The Database Engine For Access. This New Version Of Jet Handles And Detects Corruption A Bit Differently Than Previous Versions. So I Just Run A compact And Repair On The Backend File Which Removed The Corrupted Records And After That I Was Able To Run My Queries Successfully.