1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| Private Sub cmdModifier_Click()
Dim db As DAO.Database, strDB As String
Dim strCMD As String, strOldPwd As String, NewPwd As String
Dim Tmr As Single, blnSkipErr As Boolean
strDB = Nz(Me.txtBDD, "")
strOldPwd = Nz(Me.txtOldPwd, "")
NewPwd = Nz(Me.txtNewPwd, "")
If strDB = "" Then Exit Sub
DoCmd.Hourglass True
Tmr = Timer: blnSkipErr = True
On Error GoTo Errh
Do
DoEvents
Set db = DBEngine(0).OpenDatabase(strDB, True, False, ";PWD=" & strOldPwd)
blnSkipErr = (Timer - Tmr < 2)
Loop Until (Not db Is Nothing)
blnSkipErr = False
db.NewPassword strOldPwd, NewPwd
db.Close
Set db = Nothing
strCMD = """" & Application.SysCmd(acSysCmdAccessDir) & "MSAccess.exe"" "
strCMD = strCMD & """" & strDB & """ "
Shell strCMD, vbNormalFocus
DoCmd.Quit acQuitPrompt
DoCmd.Hourglass False
Exit Sub
Errh:
Select Case Err.Number
Case 3045: If blnSkipErr Then Resume Next
Case 3356: If blnSkipErr Then Resume Next
End Select
DoCmd.Hourglass False
MsgBox Err.Description
Set db = Nothing
End Sub |
Partager