Microsoft Access 7.0 and 97 MDB files can be password protected. Thisarticle demonstrates how to change the password associated with a MicrosoftAccess 7.0 or 97 MDB file.
Microsoft Access 7.0 and 97 use Jet 3.0 and Jet 3.5 MDB files,respectively. For the code below to work correctly, you must have areference to an appropriate Microsoft DAO Object Library.
The database password can be changed by using the NewPassword method. Thefollowing example changes the password of the MyDB.mdb database from"MyPassword1" to "MyPassword2":
Sub ChangeDBPassword () Dim Db As Database Set Db = OpenDatabase("C:\My Documents\MyDB.mdb",True, _ False,";pwd=MyPassword1") Db.NewPassword "MyPassword1","MyPassword2" Db.Close End Sub
The code above does not handle the possibility of trying to open thedatabase with the wrong password, which would generate an error. Everyapplication that tries to open password protected databases should be ableto handle this scenario.
To remove password protection from a database, use an empty string for thesecond parameter of the NewPassword method. For example:
Db.NewPassword "MyPassword2", ""
To assign a database password to a MDB that is currently without apassword, use an empty string for the first parameter of the NewPasswordmethod. For example:
Db.NewPassword "", "MyPassword1"
You can also change, assign or remove a database password using theCompactDatabase method. When using this method on a database with apassword, the Optional arguments must be provided:
Sub CompactDB () ' Compact the database, supplying the password DBEngine.CompactDatabase "C:\My Documents\MyDB.mdb", _ "C:\My Documents\Test.MDB", dbLangGeneral, dbVersion30, _ ";pwd=MyPassword1" End Sub
The new database has the same password as the old. Here you compact a MDBwith a password of "MyPassword1" and give the new database a password of"MyNewPWD":
DBEngine.CompactDatabase "C:\My Documents\Test.mdb", _ "C:\My Documents\TestII.MDB", dbLangGeneral & ";pwd=MyNewPWD", _ dbVersion30, ";pwd=MyPassword1"
With this line, you can remove the database password:
DBEngine.CompactDatabase "C:\My Documents\TestII.mdb", _ "C:\My Documents\TestIII.MDB", dbLangGeneral & ";pwd=", _ dbVersion30, ";pwd=MyNewPWD"
This line compacts a database without a password and assigns a password of"NewPassword" to the new database:
DBEngine.CompactDatabase "C:\My Documents\TestIII.mdb", _ "C:\My Documents\TestIV.mdb", dbLangGeneral & _ ";pwd=NewPassword", dbVersion30