Newsgroup: it.comp.appl.access
Titolo: confronto di due campi

Ciao a tutti,
dovrei far fare il controllo tra compo password e campo passwordverify
della maschera registrazione utente e vorrei che ci fosse il confronto
tra campo password e campo passwordverify e se i due campi concordano
che ci sia la registrazione nella campo "password" della tbl_utenti in
caso contrario vorrei il reset dei due campi per riprovare
l'inserimento.
Come al solito sono in alto mare ho provato a fare quanto sopra in
questo modo.
qualcuno può aiutarmi?
Grazie
Private Sub passwordverify_BeforeUpdate(Cancel As Integer)
   Dim password As String
    Dim passwordverify As String
    If Len(Nz(Me.password, "")) = 0 Then
        MsgBox "Inserisci la Password.", , "Password"
        Me.password.SetFocus
    ElseIf Len(Nz(Me.passwordverify, "")) = 0 Then
        MsgBox "Inserisci la password di verifica.", , "Password di
Verifica"
        Me.passwordverify.SetFocus
    Else
                If Me.password = Me.passwordverify Then
                CurrentDb.Execute "Update tbl_utenti SET password ='"
& Me.passwordverify & "' WHERE password= '" & Me.password & " '"
                ElseIf Me.password <> passwordverify Then
                    MsgBox "Attenzione,la password di verifica è stata
inserita in modo errato.", , "Password di Verifica"
                    Me.passwordverify = Null
                    Me.password = Null
                    Me.passwordverify.SetFocus
                End If
    End If
End Sub

 ... "' WHERE password= '" & Me.password & " '"
che contiene uno spazio alla fine. Dev'essere
"' WHERE password= '" & Me!password & "'"
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 - Mostra testo citato -
Ciao Karl grazie della risposta
il codice precendente presentava diversi problemi oltre a non
compilare il campo password della Tbl_utenti non mi permetteva neppure
di tornare al campo password della maschera  "registrazione"nel caso
in cui le password non fossero concordanti
ho provato questo codice che non mi da questi problemi a parte che mi
sovrascive la password sul primo record della tabella utenti e non sul
record che sta compilando per una nuova registrazione.
come posso modificare la seguente istruzione in modo che compili il
campo password della Tbl_utenti dell'utente che si sta registrando e
non del primo record?
Private Sub Comando30_Click()
Set DB = CurrentDb
Set rs = Recordset
If Len(Nz(Me.password, "")) = 0 Then
MsgBox "Inserisci la Password.", , "Password"
Me.password.SetFocus
Else
If Len(Nz(Me.passwordverify, "")) = 0 Then
MsgBox "Inserisci la password di verifica.", , "Password di Verifica "
Me.passwordverify.SetFocus
Else
If Me.passwordverify = Me.password Then
            Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_utenti
SET password ='" & Me.passwordverify & "' WHERE password= '" &
Me.password & " '")
            'Set rs = CurrentDb.OpenRecordset("SELECT * FROM
tbl_utenti WHERE password ")
            rs.Edit
            rs.Fields("password").value = Me.password
            rs.Update
            rs.Close
Else
If Me.passwordverify <> password Then
MsgBox "Attenzione,la password di verifica è stata inserita in modo
errato.", , "Password di Verifica"
Me.passwordverify = Null
Me.password = Null
Me.password.SetFocus


 - Mostra testo citato -
scusa la stringa che mi sovrascrive il primo record è questa e non
quella attiva nel codice del precendente post


 tbl_utenti WHERE password ")
Certo che ti sovrascrive il primo record se non usi un criterio
ragionevole nella stringa SQL.
Ti ho scritto che c'era uno sbaglio nella tua prima clausola WHERE
e nell'esempio attuale persino usa un criterio senza paragone.
Nella parte del codice nella quale vuoi scrivere, prova cos�:
Set rs = DB.OpenRecordset( _
    "SELECT * FROM tbl_utenti" & _
    " WHERE password = '" & Me!password & "'" _
    , dbopendynaset)
If Not rs.BOF Then
    rs.Edit
        rs!password = Me!password
    rs.Update
Else
    MsgBox "La password non esiste nella tabella."
End If


 - Mostra testo citato -
ciao karl
neppure così scrive la password
poi perchè qesto?
MsgBox "La password non esiste nella tabella."
la password non c'è sicuramente in tabella essensdo una nuova
registrazione, forse mi sono spiegato male.
Preciso che il controllo password mi serve semplicemente per dare la
certezza della password che si sta registrando e se le due password
concordano deve scrivere la password sulla tbl_utenti altrimenti darmi
il messaggio di password erratta.
Tieni presente che, essendomi avvicinato solo da poco tempo ad access,
le mie conoscenze sul vb sono molto limitate, quindi mi perdo in cose
apperantemente semplici.
ciao

 - Mostra testo citato -
Buongiorno a tutti, se dovesse servire a qualcuno ho risolto in questo
modo
Private Sub Comando30_Click()
Set DB = CurrentDb
Set rs = Recordset
If Len(Nz(Me.password, "")) = 0 Then
MsgBox "Inserisci la Password.", , "Password"
Me.password.SetFocus
Else
If Len(Nz(Me.passwordverify, "")) = 0 Then
MsgBox "Inserisci la password di verifica.", , "Password di Verifica "
Me.passwordverify.SetFocus
Else
If Me.passwordverify <> password Then
MsgBox "Attenzione,la password di verifica è stata inserita in modo
errato.", , "Password di Verifica"
Me.passwordverify = Null
Me.password = Null
Me.password.SetFocus
Else
If Me.passwordverify = Me.password Then
        If DLookup("[password]", "controllo") = Me.password Then
MsgBox ("Attenzione!!! Record gia Presente nella tabella "),
vbInformation ' controlla se il record è gia presente nella tabella
Me.passwordverify = Null
Me.password = Null
Me.password.SetFocus
     Else
     Me.refresh
CurrentDb.Execute "Update tbl_utenti SET password ='" & passwordverify
& "' WHERE utente= '" & Me!utente & "'"
   MsgBox ("Password inserita nella tabella "), vbInformation
'Me.passwordverify = Null
'Me.password = Null
'Me.password.SetFocus
End If
End If
End If
End If
End If
End Sub