Funzione dlookup in form login

di danielefioretti il
4 risposte
Buona sera ho creato un db access.
ho creato una tabella chiamata tblpassword e una maschera con una txt chiamata cbopass e un pulsante.
ora nel pulsante provo a dire ad access che se la password e quella scritta nella cbo allora aprimi la pagina Home.
quindi comando il pulsante in questo modo.
Dim password ad string
If password = Dlookup ("password","tblpassword","password=" & [cbopass]'"") Then DoCmd.OpenForm (Home)
End If
mi fa sempre errore. operando senza operatore oppure il codice non è parte di una macro o non valido all'esterno di una routine. grazie a tutti

4 Risposte

  • Non funziona per diversi motivi:

    1) cbopass è una casella di testo... tu devi concatenare il "contenuto" della casella di testo.
    2) Ti manca una '&' nell'ultima concatenazione
    3) password è nullo quindi non ha senso confrontarlo con ciò che viene restituito dalla DLokkup.

    Questo funziona (l'ho commentato in modo da farti capire come lavora):
    
    ' Il tipo di dato restituito da DLookup è Variant
    Dim strPass As Variant
    
    ' Per poter accedere alle proprietà di un controllo, questo
    ' deve avere lo stato attivo    
    cbopassword.SetFocus
    
    ' Valorizzo strPass col valore restituito dalla funzione DLookup
    strPass = DLookup("[password]", "[tblpassword]", "[password] = '" & cbopassword.Text & "'")
    
    ' Verifico se la funzione ha trovato una corrispondenza
    ' Se l'ha trovata, apro la form
    If (strPass <> Empty) Then
       DoCmd.OpenForm ...
    End If
    
  • Grazie mille penso di aver capito tutto il codice che hai scritto. faro così . grazie
  • Buongiorno tutto funziona perfettamente. grazie. vorrei migliorare l'app con una funzione carina all'apertura della maschera home vorrei che mi dice il nome di chi ha aperto- quindi ripeto il codice che mi hai scritto dicendo che mi deve tirare fuori il campo nome dalla tblpassword se la password è quella scritta nella txtpass. mi dice sempre errore operando senza operatore.
    grazie
  • Ciao vorrei inserire un messaggio di benvenuto all'utente che entra quindi dopo aver inserito la passwor mi dice benvenuto.....
    uso lo stesso metodo e scrivo if (strpass<>empty)then MsgBox "ciao "nome_utente)
    non funziona. dove sbaglio?
Devi accedere o registrarti per scrivere nel forum
4 risposte