Ricerca record in una tabella

di il
11 risposte

Ricerca record in una tabella

Ciao, sono Bruno, devo premettere che sono alle prime armi con VBA di access. Ho un problema, ho creato un piccolo programma in access, e desidero che l'accesso sia tramite nome utente e password.
Quindi ho creato una tabella con i campi NomeUtente e Password.
Di conseguenza ho creato una maschera per l'inserimento sia del nome Utente che della password.
Avendo Inserito circa 10 nomi utenti e password a caso, ho creato un altra maschera per accedere al mio programma tramite l'inserimento del codice utente e della password.
Come faccio a fare un controllo del Nome Utente?
Se non esiste mi deve apparire un messaggio di "Nome Utente inesistente", se nel caso in cui sia presente deve passare al campo successivo per l'inserimento della password.(dove in seguito dovrò fare lo stesso del nome utente).
Nome Tabella: Utenti
Nome campo: NomeUtente
Nome campo: Passord

Nome Maschera: UtenteRegistrato
Nome casella: IDCliente
Nome casella: InserimentoPassword
Mi potete aiutare per favore???
Grazie

11 Risposte

  • Re: Ricerca record in una tabella

    Devi usare la funzione Dlookup che trovi documentata nella guida in linea.

    Ovviamente farai 2 test il secondo solo se il primo è andato a buon fine.
  • Re: Ricerca record in una tabella

    Buongiorno Alex, sei stato molto gentile a rispondermi. Ho fatto delle prove,ma con un risultato disastroso, essendo alle prime armi, cortesemente potresti farmi un esempio???
    Penso che con gli esempi pratici riferiti ad un piccolo programma che sto realizzando, io possa apprendere qualcosa.
    Grazie
  • Re: Ricerca record in una tabella

    Non so dove hai cercato... ma nella guida ci sono anche gli esempi:

    https://support.office.com/it-it/article/funzione-dlookup-8896cb03-e31f-45d1-86db-bed10dca5937

    Purtroppo quello che devi fare non si fa senza basi perché l'uso del dlookup è solo una piccola parte di quanto serve... quindi nella realtà dovrai procedere a piccoli passi.

    Per esempio non basta passare il login se poi tutti hanno le medesime credenziali di modifica su tutto... a cosa serve...?
    Se non tieni traccia degli accessi...

    Diciamo che quello.che vorresti fare nella sostanza concreta non serve a nulla se non integrato in una più funzionale gestione utenti che si dovrà applicare a tutto il progetto.

    Quindi siccome immagino che in realtà tu abbia solo pensato alla LOGIN passa/non passa... con gli esempi che trovi nella guida non puoi non capire come usarlo.
  • Re: Ricerca record in una tabella

    Ok, Alex, cerco di restringere il problema, io ho usato la funzione Dlookup per la ricerca del nome utente. Vedi le istruzione qui sotto riportate, ma non riesco ad fare il contrario, cioè se non esiste, mi deve dare un messaggio di "Nome Utente inesistente", li ho provate tutte. Ti chiedo cortesemente di aiutarmi. Grazie.

    Private Sub NomeUtente_AfterUpdate()
    If Not IsNull(DLookup("Calcolato", "Utenti", _
    "Calcolato = " & Chr$(34) & Me!Calcolato & Chr$(34))) Then


    MsgBox Me!Calcolato & "Nominativo già presente in rubrica.", vbOKOnly, "Duplicati"

    Me.Undo
    DoCmd.GoToRecord , , acNewRec
    Me.NomeUtente.SetFocus
    End If

    End Sub
  • Re: Ricerca record in una tabella

    
    Private Sub NomeUtente_AfterUpdate()
    If Not IsNull(DLookup("Calcolato", "Utenti", "Calcolato = " & Chr$(34) & Me!Calcolato & Chr$(34))) Then
        MsgBox Me!Calcolato & "Nominativo già presente in rubrica.", vbOKOnly, "Duplicati"
    Else
        Me.Undo
        DoCmd.GoToRecord , , acNewRec
        Me.NomeUtente.SetFocus
    End If
    
    End Sub
    
    Impara ad INDENTARE il codice... ho solo aggiunto un ELSE....
    Saluti
  • Re: Ricerca record in una tabella

    Scusa Alex, il codice che ti avevo inviato, funziona benissimo, cioè se inserisco un nominativo esistente in archivio, mi visualizza correttamente che il nominativo esiste, cioè è un duplicato. Tutto questo funziona correttamente, il problema è all'inverso.

    Cioè se digito un nominativo che non trova nell'archivio mi deve restituire un messaggio che dirà." il nominativo non esiste, vuoi inserirlo? (SI chiude la maschera e riapre una maschera di imput, NO torna nel menu precedente ", se invece il nominativo esiste, andrà nel campo successivo.
    Scusa Alex probabilmente mi sono espresso male.
  • Re: Ricerca record in una tabella

    Il Not a cosa lo hai messo a fare...?
  • Re: Ricerca record in una tabella

    Private Sub AccediUtente_AfterUpdate()

    If IsNull(DLookup("Calcolato", "Utenti", "Calcolato = " & Chr$(34) & Me!Calcolato & Chr$(34))) Then
    MsgBox Me!Calcolato & "Nome Utente non presente.", vbOKOnly, "Duplicati"
    Else
    Me.Undo
    DoCmd.GoToRecord , , acNewRec
    Me.AccediUtente.SetFocus
    End If


    End Sub


    Ho provato con NOT e senza, con ELSE e senza
    Sempre lo stesso problema.
    In Archivio ho diversi nomi. es. bruno, pippo, pluto ecc....
    ma qualsiasi nome io possa digitare presente e non presente in archivio mi dice sempre "Nome Utente non presente"
  • Re: Ricerca record in una tabella

    Possibile che nella ricerca del duplicato funziona perfettamente????
    Ma non funziona nella ricerca dell'esistenza di un nominativo???
  • Re: Ricerca record in una tabella

    Funziona tutto... ma tu metti 2 codici che a mio avviso non sai cosa facciano dei chiedo perché li hai scritti...

    Me.Undo
    e quel comando di andare al NewRecord...

    Insomma mi pare...
  • Re: Ricerca record in una tabella

    Scusa alex tutto ok, risolto, il problema era nel nome assegnato alla casella di testo, scusa ma adesso funziona tutto
    Grazieeeeeeeeee.
Devi accedere o registrarti per scrivere nel forum
11 risposte