Newsgroup: it.comp.appl.access
Titolo: maschera per cambio password

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

 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 ?

 & "'"
 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

 & "'"
 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

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