OVH Cloud OVH Cloud

probleme avec execute et update

1 réponse
Avatar
dav
dans mon prog je veux pouvoir changer le passe de ma base, que j'ai misd
ans une table "passe", je fais donc la prise en comtpe du nouveau passe
dans un inputbox :

ancien = InputBox("ancien passe :","","")
nouveau = InputBox ("ancien passe :","","")

If ancien = passe Then
sql = "update passe set lepasse = '" & nouveau & "'"
mabase.Execute (sql)
Else
MsgBox "Ancien passe erroné.", vbCritical, ""
Exit Sub
End If

mais si je tape tout de suite ce nouveau passe il n'ets pas reconnu,
comment faire pour que ma base soit actualisée de ce nouveau passe tout
de suite....
merci,
dav

1 réponse

Avatar
Jean-Marc
"dav" a écrit dans le message de
news:41b1c992$0$9069$
dans mon prog je veux pouvoir changer le passe de ma base, que j'ai misd
ans une table "passe", je fais donc la prise en comtpe du nouveau passe
dans un inputbox :

ancien = InputBox("ancien passe :","","")
nouveau = InputBox ("ancien passe :","","")

If ancien = passe Then
sql = "update passe set lepasse = '" & nouveau & "'"
mabase.Execute (sql)
Else
MsgBox "Ancien passe erroné.", vbCritical, ""
Exit Sub
End If

mais si je tape tout de suite ce nouveau passe il n'ets pas reconnu,
comment faire pour que ma base soit actualisée de ce nouveau passe tout
de suite....




Hello,

ça ne fonctionne pas comme ça.

Tu dois utiliser la propriété NewPassword de l'objet DB, comme ceci:

'Usage: Change DatabasePassword
'Parameters: sDBPath: Full Path to Access Database
'newPassword: the password
'oldPassword: the previous password
'returns true on success false otherwise

Public Function ChangeDatabasePassword(DBPath As String, _
newPassword As String, oldPassWord As String) As Boolean

Dim db As DAO.Database

On Error Resume Next

If Dir(DBPath) = "" Then
Exit Function
End

Set db = OpenDatabase(DBPath, True, False, ";pwd=" & oldPassWord)
If Err.Number <> 0 Then
Exit Function
endif
db.newPassword oldPassWord, newPassword
db.Close
ChangeDatabasePassword = (Err.number=0)
End Function

Note: stocker le mot de passe en table n'est pas une bonne idée. C'est
déjà fait, de façon cachée, par le système de protection de la DB. Il
vaut mieux récupérer l'erreur qui surviendra lors du "db.nexPassword
oldPassword, newPassword" si jamais oldPassword n'est pas le "bon"
ancien mot de passe.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."