Newsgroup: it.comp.appl.access
Titolo: User e password

Salve ho scritto una sub per il riconoscimento di password
in sostanza ho creato una tabella Admin con du e soli campi: User e Password
Al lancio dell'applicazione viene mostrata una maschera in cui l'utnte deve 
specificare la password
a questo punto dovrei  fare un ciclo sulla tabella per vedere se la password 
inserita dall'utente figura nella tabella
se viene individuata dovrei effettuare il salvataggio di user e password in 
due variabili globali.
La cosa perà npn funziona  da cosa può dipendere?
------- 
Private Sub Comando1_Click()
On Error GoTo Err_Comando1_Click
Dim strPass As String
Dim stDocName As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim Valore As String
Dim trovato As Boolean
' Leggi la password inserita dall'utente
strPass = Me.CasellaPassword.Value
'apro una connessione con la tabella tab_Admin e verifico che la password
'inserita dall'utente sia presente tra quelle inserite nella tabella
' inizializzo la variabile con la maschera da aprire in caso di successo
stDocName = "Mask_Menu"
trovato = True
Set dbs = CurrentDb()
    Set rst = dbs.OpenRecordset("Tab_Admin", dbOpenTable)
    rst.MoveFirst
    Do While Not (rst.EOF) OR Not trovato
    With rst
       ' Assegna alla variabile globale Valore il valore del secondo campo 
della tabella Tab_Admin
       Valore = ![Password]
       ' Assegna alla variabile globale Username il valore del primo campo 
della tabella Tab_Admin
       userName = ![User]
       'effettuo il confronto con la password presa dal database
       'e quella inserita dall'utente
       If (StrComp(Valore, strPass, 1) <> 0) Then
         'ho trovato la password
         trovato = False
       End If
       'avanza al record successivo
       .MoveNext
    End With
    Loop
    'chiudi il recordset
    rst.Close
    ' chiudi il db
    dbs.Close
    If trovato = False Then
      DoCmd.OpenForm stDocName, , , stLinkCriteria
    Else
      MsgBox "Password Errata!)"
    End If
Exit_Comando1_Click:
    Exit Sub
Err_Comando1_Click:
    MsgBox Err.Description
    Resume Exit_Comando1_Click
End Sub 

 
Credo tu abbia preso la strada sbagliata.
E' assurdo Ciclare una Tabella quando c'è a disposizione
un'istruzione SQL che fà tutto lei...!
Prova questo con le opportune correzioni del 
caso che mi sono sfuggite:
 Private Sub Comando1_Click()
 
 On Error GoTo Err_Comando1_Click
 
 Dim strPass As String
 Dim stDocName As String
 Dim dbs As DAO.Database
 Dim rst As DAO.Recordset
 Dim trovato As Boolean
 Dim sSQL As String
 
 strPass = Me.CasellaPassword.Value
 stDocName = "Mask_Menu"
 trovato = False
 sSQL="SELECT COUNT(*) AS [PWDEsistente] " & _
      "FORM Tab_Admin " & _
      "WHERE [Password]=" & chr(34) strPass & chr(34)
 Set dbs = CurrentDb()
     Set rst = dbs.OpenRecordset(sSQL)
     trovato =rst.Fields(0)>0
     'chiudi il recordset
     rst.Close
     ' chiudi il db
     dbs.Close
 
     If trovato = False Then
       DoCmd.OpenForm stDocName, , , stLinkCriteria
     Else
       MsgBox "Password Errata!)"
     End If
 
 Exit_Comando1_Click:
     Exit Sub
 
 Err_Comando1_Click:
     MsgBox Err.Description
     Resume Exit_Comando1_Click
 
 End Sub
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG