Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: controllo dati immessi

  1. #1

    controllo dati immessi

    Per entrare nel database di access 2007 ho creato una maschera in cui l'utente deve inserire nome utente e password . Quando preme il pulsante entra bisogna controlare se i dati inseriti sono uguali ai campi della tabella Utenti dove risiedono Nome Utente e password.

    Qualche consiglio su come eseguire il controllo

  2. #2
    chiamando la tabella utenti e i campi utente e passw:

    codice:
    DoCmd.RunCommand acCmdSaveRecord 'salvo i dati inseriti per renderli disponibili
        
    'elaboro query per confrontare quanto inserito nella maschera con i dati in tabelli
        sql = "SELECT * FROM Utenti WHERE (((Utenti.UTENTE) = '" & Forms!logon!UTENTE & "') AND ((StrComp([PASSW],'" & Forms!logon!pwd & "',0))=0))"
        
    'apro recorset
    Set rst = CurrentDb.OpenRecordset(sql)
    
    'verifico recorset
        If Not rst.BOF Then 'se il recordset non è vuoto
        DoCmd.OpenForm "tuamaschera"
            
        DoCmd.Close acForm, "tuamascheralogon", acSavePrompt
        Else 'se è vuoto
            MsgBox "ATTENZIONE!!!!!" & Chr(13) & "Nome utente o password errata - verificare i dati", vbExclamation, MyTitoloMessaggio
            Me!pwd = Null
        End If 'Not Rst.BOF
      
      'chiudi e azzera il recordset
            rst.Close: Set rst = Nothing

  3. #3
    codice:
    'elaboro query per confrontare quanto inserito nella maschera con i dati in tabelli
        sql = "SELECT * FROM Utenti WHERE (((Utenti.UTENTE) = '" & Forms!logon!UTENTE & "') AND ((StrComp([PASSW],'" & Forms!logon!pwd & "',0))=0))"
    scusa se chiedo troppo, ma mi potete spiegre l'istruizone sopra citata.
    so che mi dice di selezionare tutto dalla tabella utenti. La cosa che non è chiara è la condizione where.

  4. #4
    Ho provato a fare così:
    da un pulsante richiamo i valori nome utente e password e li passo alla fuzione queryUtente
    ecco la funzione
    codice:
    Public Function QueryUtenti(nomeutente As String, password As String)
        Dim connessione As ADODB.Connection
        Set connessione = CurrentProject.Connection
        
        Dim utenti As New ADOX.Catalog
        Dim cmd As ADODB.Command
        
        utenti.ActiveConnection = connessione
        Set cmd = utenti.Procedures("Autorizzazioni").Command 
        cmd.CommandText = "SELECT * FROM Utenti WHERE (((Utenti.UTENTE) = '" & Forms!Autorizzazione!Nome_utente & "') AND ((StrComp([password],'" & Forms!Autorizzazione!password & "',0))=0))"
        Set utenti.Procedures("Utenti").Command = cmd
        Set utenti = Nothing
    la riga di codice rossa mi da il seguente errore:
    errore di run-time '3265'
    Impossibile trovare l'oggetto nell' insieme corrispondente o al numero richiesto


  5. #5
    Originariamente inviato da lucavalentino
    codice:
    'elaboro query per confrontare quanto inserito nella maschera con i dati in tabelli
        sql = "SELECT * FROM Utenti WHERE (((Utenti.UTENTE) = '" & Forms!logon!UTENTE & "') AND ((StrComp([PASSW],'" & Forms!logon!pwd & "',0))=0))"
    scusa se chiedo troppo, ma mi potete spiegre l'istruizone sopra citata.
    so che mi dice di selezionare tutto dalla tabella utenti. La cosa che non è chiara è la condizione where.
    ponendo una form (maschera) chiamata logon che contiene i campi di testo utente e pwd seleziona il recorset (se esiste) che abbia nella tabella utenti il campo utente uguale a logon utente e il campo passw uguale a logon pwd. la funzione strcomp verifica tra maiuscole e minuscole (esempio la password memorizzata in utenti.utente è esempio, se tu scrivi in logon.utente ESEMPIO non ti riconosce la paasword come valida, se elimini tale funzione non farà differenza tra maiuscole e minuscole.

    Originariamente inviato da lucavalentino Ho provato a fare così:
    da un pulsante richiamo i valori nome utente e password e li passo alla fuzione queryUtente
    ecco la funzione codice:
    non riporto anche il codice che hai scritto ma mi puoi dire come si chiama la tabella in cui memorizzi utenti e password (comprensiva dei nomi dei campi) e la mascherache usi per il logon (comprensiva dei nomi dei campi) in modo tale da farti un esempio ad hoc?

  6. #6
    Originariamente inviato da borgodiavalon
    non riporto anche il codice che hai scritto ma mi puoi dire come si chiama la tabella in cui memorizzi utenti e password (comprensiva dei nomi dei campi) e la mascherache usi per il logon (comprensiva dei nomi dei campi) in modo tale da farti un esempio ad hoc?
    Tabella tblUtenti
    ID Nome nome_Utente Password Tipo

    Maschera Autorizzazione
    nome utente si cihiama nome_utente
    password si cihiama password

  7. #7
    codice:
    dim sql as string
    
    DoCmd.RunCommand acCmdSaveRecord 'salvo i dati inseriti per renderli disponibili
        
    'elaboro query per confrontare quanto inserito nella maschera con i dati in tabelli
        sql = "SELECT * FROM  tblUtenti WHERE ((( tblUtenti. nome_Utente) = '" & Forms!Autorizzazione!nome_Utente & "') AND ((StrComp([ tblUtenti.Password],'" & Forms!Autorizzazione!Password& "',0))=0))"
        
    'apro recorset
    Set rst = CurrentDb.OpenRecordset(sql)
    
    'verifico recorset
        If Not rst.BOF Then 'se il recordset non è vuoto
        DoCmd.OpenForm "tuamaschera"
            
        DoCmd.Close acForm, "tuamascheralogon", acSavePrompt
        Else 'se è vuoto
            MsgBox "ATTENZIONE!!!!!" & Chr(13) & "Nome utente o password errata - verificare i dati", vbExclamation
            Me!Password= Null
        End If 'Not Rst.BOF
     'chiudi e azzera il recordset
            rst.Close: Set rst = Nothing

    dimenticavo di dire che la maschera autorizzazione non deve avere origine dati e i campi Password e nome_utente della maschera devono essere non associati.

    ps: ho come l'impressione di aver dimenticato qualcosa ma ora mi sfugge.

    ora sono un pò cotto e non ho nessuna versione di access installata, domani in ufficio verifico, intanto prova così.

  8. #8
    Il tutto è fatto tramite DAO o ADO.
    Sai io vorrei fare il tutto tramite ADO. Però intanto...

  9. #9
    ecco cosa mancava:
    dim rst As DAO.Recordset

    come puoi vedere uso DAO.

  10. #10
    Vorrei fare quello che ha detto borgodiavalon tramite gli ADO.
    Aiutooooo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.