Ho utilizzato questo codice ma non riesco a far aggiornare il campo
password della tabella tbl_utenti, (gli altri controlli come la
verifica della password corrente e se la verifica che la nuova
password sia corretta funzionano bene) qualcuno può aiutarmi? Grazie
codice:
Private Sub Button1_Click()
Dim sMsg As String
Dim iResponse As Integer
If Len(Nz(Me.oldpassword, "")) = 0 Then
MsgBox "Inserisci la Password corrente.", , "Password
Corrente"
Me.oldpassword.SetFocus
ElseIf Len(Nz(Me.NewPassword, "")) = 0 Then
MsgBox "Inserissci la nuova password.", , "Nuova Password"
Me.NewPassword.SetFocus
ElseIf Len(Nz(Me.newpasswordverify, "")) = 0 Then
MsgBox "Inserisci nuovamente la nuova password.", , "Nuova
Password di Verifica"
Me.newpasswordverify.SetFocus
Else
sMsg = "Sei sicuro di voler modificare la tua Password?"
iResponse = MsgBox(sMsg, vbYesNo + vbQuestion +
vbDefaultButton1, "Cambio Password")
Select Case iResponse
Case vbYes
iResponse = acDataErrContinue
If Me.oldpassword = Forms!mascher4!password Then
If Me.NewPassword = Me.newpasswordverify Then
Tables!tbl_utenti!password = Me.NewPassword
‘credo che l’errore sia qui ma non so come risolverlo
MsgBox "La password è stata modificata in " & Chr
(34) & Me.NewPassword & Chr(34) & ".", , "Password Cambiata"
DoCmd.Close acForm, "frmChangePassword"
'DoCmd.Close
Else
MsgBox "La nuova password è stata inserita in modo
errato.", , "Nuova Password"
Me.NewPassword = Null
Me.newpasswordverify = Null
Me.NewPassword.SetFocus
End If
Else
MsgBox "La Password corrente non è corretta.", ,
"Password Incorretta"
Me.oldpassword = Null
Me.oldpassword.SetFocus
End If
Case vbNo
iResponse = acDataErrContinue
End Select
End If
End Sub
Ho utilizzato questo codice ma non riesco a far aggiornare il campo
password della tabella tbl_utenti, (gli altri controlli come la
verifica della password corrente e se la verifica che la nuova
password sia corretta funzionano bene) qualcuno pu� aiutarmi? Grazie
codice:
MsgBox "La password � stata modificata in " & Chr
(34) & Me.NewPassword & Chr(34) & ".", , "Password Cambiata"
DoCmd.Close acForm, "frmChangePassword"
'DoCmd.Close
Else
MsgBox "La nuova password � stata inserita in modo
errato.", , "Nuova Password"
Me.NewPassword = Null
Me.newpasswordverify = Null
Me.NewPassword.SetFocus
End If
Else
MsgBox "La Password corrente non � corretta.", ,
"Password Incorretta"
Me.oldpassword = Null
Me.oldpassword.SetFocus
End If
Case vbNo
iResponse = acDataErrContinue
End Select
End If
End Sub
--------- RISPOSTA -------------
Non capisco quell'istruzione dove tu ritieni sia l'errore. Tables cos'� ?
Prova a scrivere cos� al posto di quell'istruzione:
dim dbs as database
dim tdfs as tabledefs
dim tabellautenti as tabledef
dim rstutenti as recordset
set dbs = currentdb
set tdfs = dbs.tabledefs
set tabellautenti = tdfs ("tbl_utenti")
set rstutenti = tabellautenti.openrecordset (dbopendynaset)
rstutenti.findfirst "NomeUtente = '" & nomeutentedicuivuoicambiarelapassword
& "'"
if rstutenti.nomatch then
msgbox "utente non trovato"
exit sub
end if
rstutenti.edit
rstutenti!password = me.newpassword
rstutenti.update
rstutenti.close
set rstutenti = nothing
set tabellautenti = nothing
set tdfs = nothing
set dbs = nothing
e cos� via...
Ciao
Antonio
PS: Ora dico una cosa che far� inorridire alcuni programmatori...
Invece di quegli incasinanti elseif non sono pi� comprensibili i vecchi e
bistrattati "goto fineroutine" o exit sub ?
ciao io non sono affatto un programmatore anzi ci capiscio ben
poco :-)
osservavo questa tua riga
rstutenti.findfirst "NomeUtente = '" &
nomeutentedicuivuoicambiarelapassword
> & "'"
in particolare questa istruzione
nomeutentedicuivuoicambiarelapassword
mi fa intendere che devo scriveri li il nome dell'utente a cui voglio
cambiare la password.
inoltre tutto il codice che mi hai postato deve sostitruire solo
questo?
Tables!tbl_utenti!password = Me.NewPassword
grazie per l'attenzione
ciao io non sono affatto un programmatore anzi ci capiscio ben
poco :-)
osservavo questa tua riga
rstutenti.findfirst "NomeUtente = '" &
nomeutentedicuivuoicambiarelapassword
> & "'"
in particolare questa istruzione
nomeutentedicuivuoicambiarelapassword
mi fa intendere che devo scriveri li il nome dell'utente a cui voglio
cambiare la password.
inoltre tutto il codice che mi hai postato deve sostitruire solo
questo?
Tables!tbl_utenti!password = Me.NewPassword
grazie per l'attenzione
----------- RISPOSTA --------------
Non mi risulta semplice parlare a chi non ha una base di programmazione. Ci
provo, ma non sono sicuro di riuscirci...
Tu dici di avere una tabella con gli utenti (e relative passwords) abilitati
all'uso del tuo applicativo.
(Nota: fino alla versione 2003 era Access stesso che ti offriva questa
opportunit�, ovvero gestire uteni e password per l'applicativo, in Access
2007 � stata soppiantata da qualcos'altro che non conosco).
La maschera che hai mi pareva di aver capito che non � associata a nessuna
tabella (infatti accedi al campo vecchia password con l'istruzione
forms!maschera4 etc.), quindi se vuoi scrivere qualcosa nella tabella utenti
devi prima aprirla, leggere il particolare utente e riscrivere il record
aggiornato.
Comunque, se non hai Access 2007, guarda che sul menu Strumenti e poi
Protezione c'� gi� tutto quello che ti pu� servire per abilitare o meno gli
utenti.
Ciao
Antonio
Ok Angelo ho risolto semplicemente modificando la stringa erratta,
grazie lo stesso :-)