NewPassword Method

Applies To   Database object, User object.

Description

Changes the password of an existing user account or Microsoft Jet database (Microsoft Jet workspaces only).

Syntax

object.NewPassword oldpassword, newpassword

The NewPassword method syntax has these parts.

Part

Description

object

An object variable that represents the User object or a Microsoft Jet 3.x Database object whose Password property you want to change.

oldpassword

A String that is the current setting of the Password property of the User or Jet 3.x Database object.

newpassword

A String that is the new setting of the Password property of the User or Jet 3.x Database object.


Remarks   The oldpassword and newpassword strings can be up to 14 characters long and can include any characters except the ASCII character 0 (null). To clear the password, use a zero-length string (" ") for newpassword.

Passwords are case-sensitive.

If object refers to a User object that is not yet appended to a Users collection, an error occurs. To set a new password, you must either log on as the user whose account you're changing, or you must be a member of the Admins group. The Password property of a User object is write-only — users can't read the current value.

If object refers to a Microsoft Jet version 3.0 or later Database object, this method offers some security by means of password protection. When you create or open a Microsoft Jet 3.x .mdb file, part of the Connect connection string can describe the password.

If a database has no password, Microsoft Jet will automatically create one by passing a zero-length string (" ") for the old password.


Caution   If you lose your password, you can never open the database again.


See Also

Name property, PID property.

Example

This example asks the user for a new password for user Pat Smith. If the input is a string between 1 and 14 characters long, the example uses the NewPassword method to change the password. The user must be logged on as Pat Smith or as a member of the Admins group.

Sub NewPasswordX()

    Dim wrkDefault As Workspace
    Dim usrNew As User
    Dim grpNew As Group
    Dim grpMember As Group
    Dim strPassword As String

    ' Get default workspace.
    Set wrkDefault = DBEngine.Workspaces(0)

    With wrkDefault

        ' Create and append new user.
        Set usrNew = .CreateUser("Pat Smith", _
            "abc123DEF456", "Password1")
        .Users.Append usrNew

        ' Create and append new group.
        Set grpNew = .CreateGroup("Accounting", _
            "UVW987xyz654")
        .Groups.Append grpNew

        ' Make the new user a member of the new group.
        Set grpMember = usrNew.CreateGroup("Accounting")
        usrNew.Groups.Append grpMember

        ' Ask user for new password. If input is too long, ask
        ' again.
        Do While True
            strPassword = InputBox("Enter new password:")
            Select Case Len(strPassword)
                Case 1 To 14
                    usrNew.NewPassword "Password1", strPassword
                    MsgBox "Password changed!"
                    Exit Do
                Case Is > 14
                    MsgBox "Password too long!"
                Case 0
                    Exit Do
            End Select
        Loop

        ' Delete new User and Group objects because this
        ' is only a demonstration.
        .Users.Delete "Pat Smith"
        .Groups.Delete "Accounting"

    End With

End Sub