>

RepairDatabase Method

Applies To

DBEngine Object.

Description

Attempts to repair a corrupted database that accesses the Microsoft Jet database engine.

Syntax

DBEngine.RepairDatabase dbname

The dbname placeholder represents a string expression that is the path and filename for an existing Jet engine database file. If you omit the path, only the current directory is searched. If your system supports the uniform naming convention (UNC), you can also specify a network path, such as: "\\MYSERVER\MYSHARE\MYDIR\MYDB.mdb".

Remarks

You must close the database specified by dbname before you repair it. In a multiuser environment, other users can't have dbname open while you're repairing it. If dbname isn't closed or isn't available for exclusive use, an error occurs.

This method attempts to repair a database that was marked as possibly corrupt by an incomplete write operation. This can occur if an application using the Jet database engine is closed unexpectedly because of a power outage or computer hardware problem. The database won't be marked as possibly corrupt if you use the Close method or if you quit your application in a usual way.

The RepairDatabase method also attempts to validate all system tables and all indexes. Any data that can't be repaired is discarded. If the database can't be repaired, a trappable error occurs.

When you attempt to open or compact a corrupted database, a trappable error usually occurs. In some situations, however, a corrupted database may not be detected, and no error occurs. It's a good idea to provide your users with a way to use the RepairDatabase method in your application if their database behaves unpredictably.

Some types of databases can become corrupted if a user ends an application without closing Database or Recordset objects and the Jet database engine; Microsoft Windows or MS-DOS® doesn't have a chance to flush data caches. To avoid corrupt databases, establish procedures for closing applications and shutting down systems that ensure that all cached pages are saved to the database. In some cases, power supplies that can't be interrupted may be necessary to prevent accidental data loss during power fluctuations.

Tip

After repairing a database, it's also a good idea to compact it using the CompactDatabase method to defragment the file and to recover disk space.

See Also

Close Method, CompactDatabase Method, Database Object.

Example

This example attempts to repair a database named Northwind.mdb.


DBEngine.RepairDatabase "C:\Northwind.mdb"