Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

maschera per cambio password

13 views
Skip to first unread message

marco veronesi

unread,
Nov 28, 2009, 7:34:41 AM11/28/09
to
Ciao a tutti, vorrei chiedere aiuto per quanto segue:
sto cercando di costruire una maschera che mi consenta all’utente
loggato di cambiare la sua password che si trova nel campo password
nella tbl_utenti .
la maschera è composta di tre campi:
vecchia password
nuova password
conferma nuova password
ed un pulsante ok

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

Antonio

unread,
Nov 28, 2009, 12:28:47 PM11/28/09
to

"marco veronesi" <spazio...@gmail.com> ha scritto nel messaggio
news:8df013c5-ea88-4b59...@r5g2000yqb.googlegroups.com...

Ciao a tutti, vorrei chiedere aiuto per quanto segue:
sto cercando di costruire una maschera che mi consenta all�utente
loggato di cambiare la sua password che si trova nel campo password
nella tbl_utenti .
la maschera � composta di tre campi:

vecchia password
nuova password
conferma nuova password
ed un pulsante ok

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 ?


marco veronesi

unread,
Nov 28, 2009, 12:54:01 PM11/28/09
to
On 28 Nov, 18:28, "Antonio" <antonewsgr...@tiscali.it> wrote:
> "marco veronesi" <spazionew...@gmail.com> ha scritto nel messaggionews:8df013c5-ea88-4b59...@r5g2000yqb.googlegroups.com...

> Ciao a tutti, vorrei chiedere aiuto per quanto segue:
> sto cercando di costruire una maschera che mi consenta all’utente
> loggato di cambiare la sua password che si trova nel campo password
> nella tbl_utenti .
> la maschera è composta di tre campi:

> vecchia password
> nuova password
> conferma nuova password
> ed  un pulsante ok
>
> 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
>                     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

Antonio

unread,
Nov 28, 2009, 1:29:20 PM11/28/09
to
[CUT]
> --------- 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

----------- 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


marco veronesi

unread,
Nov 29, 2009, 2:22:47 AM11/29/09
to
On 28 Nov, 19:29, "Antonio" <antonewsgr...@tiscali.it> wrote:
> [CUT]
>
>
>
>
>
> > --------- 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
>
> -----------  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- Nascondi testo citato
>
> - Mostra testo citato -

Ok Angelo ho risolto semplicemente modificando la stringa erratta,
grazie lo stesso :-)

0 new messages