How To Change an Access Database Password

Article translations Article translations
Article ID: 170961 - View products that this article applies to.
This article was previously published under Q170961
Expand all | Collapse all

SUMMARY

Microsoft Access 7.0 and 97 MDB files can be password protected. This article demonstrates how to change the password associated with a Microsoft Access 7.0 or 97 MDB file.

MORE INFORMATION

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 a reference to an appropriate Microsoft DAO Object Library.

The database password can be changed by using the NewPassword method. The following 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 the database with the wrong password, which would generate an error. Every application that tries to open password protected databases should be able to handle this scenario.

To remove password protection from a database, use an empty string for the second parameter of the NewPassword method. For example:
   Db.NewPassword "MyPassword2", ""
				

To assign a database password to a MDB that is currently without a password, use an empty string for the first parameter of the NewPassword method. For example:
   Db.NewPassword "", "MyPassword1"
				



You can also change, assign or remove a database password using the CompactDatabase method. When using this method on a database with a password, 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 MDB with 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
				

Properties

Article ID: 170961 - Last Review: January 20, 2007 - Revision: 4.4
APPLIES TO
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Keywords: 
kb32bitonly kbhowto KB170961

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com