Controllo nomi in un campo di testo

di il
12 risposte

Controllo nomi in un campo di testo

Buongiorno a tutti,
mi presento sono nuovo in questo bel forum.
Ho una richiesta se qualcuno può aiutarmi, vorrei tramite VBA controllare mentre digito all'interno di una casella di testo se quel nome esiste già e nel caso avvisarmi in modo da non scriverlo due volte, è vero che l'unico campo univoco è il codice fiscale, ma non ho tale informazione.

Grazie a tutti, per l'interessamento.

12 Risposte

  • Re: Controllo nomi in un campo di testo

    Il campo è univoco solo concettualmente oppure lo è realmente, nel senso che è stato impostato con la proprietà Indicizzato: Sì (Duplicati non ammessi)?
    Intanto controlla se c'è questa impostazione. Ciò permette ad Access di inviarti un messaggio di errore qualora digiti un valore duplicato, in questo modo risolvi rapidamente, senza mettere mano al VBA.
  • Re: Controllo nomi in un campo di testo

    Credo tu debba controllare la contemporaneità di NOME+COGNOME...!
    Dovresti quindi usare una verifica con DCOUNT costruendo un CRITERIO concatenato in AND il confronto di Nome e Cognome...!

    Il problema è che questo avverrebbe su BEFOREUPDATE e non BEFOREINSERT, di conseguenza il record sarebbe già stato creato.
    Quando accade questo, devi slegarti dalla maschera di immissione standard e sfruttare una sorta di PREINSERIMENTO... di verifica... che non produca un INSERT del dato.
    Di norma lo puoi fare con 2 CONTROLLI non associati ed un Button check di test, alla fine della verifica se OK, vai a copiare i dati PREINSERITI nei controlli associati... altrimenti messaggio di DUPLICATO e gestione...!
  • Re: Controllo nomi in un campo di testo

    Vi ringrazio innanzitutto per la risposta,
    proverò tutti e due i metodi e vedrò qual'è la soluzione che si addice più alle mie esigenze, è chiaro che la prima soluzione quella dei duplicati non ammessi può essere valida ma se c'è un caso di omonimia, non me lo fa inserire? Però è quella più veloce.
    Per la soluzione proposta da Alex che ringrazio fin da subito è un pò laboriosa, perchè se ho tanti nomi da scrivere, ogni volta devo fare il controllo tramite un check quindi devo mettere un pulsante di controllo e un pop up che mi avverte che il nome è duplicato/omonimo.
    Esiste qualche soluzione come per esempio nelle registrazioni degli username che mentre scrivo lateralmente mi compare nome già esistente?

    Grazie comunque per il supporto.
  • Re: Controllo nomi in un campo di testo

    Luca77462 ha scritto:


    ma se c'è un caso di omonimia, non me lo fa inserire?
    Hai parlato del campo CodiceFiscale. In questo caso è assolutamente impossibile avere lo stesso CF per due persone diverse. @Alex ha ipotizzato i campi Cognome e Nome uniti, ma tu non hai specificato esattamente quali. Nel caso di più campi che insieme devono essere univoci, la proprietà Indicizzato: Sì (Duplicati non ammessi) non funziona proprio perchè se ti capitano Rossi Mario e Rossi Carlo, tu devi poterli inserire ugualmente. In questo caso devi togliere tale proprietà da un singolo campo e impostare un "Indice Multicampo Univoco" sulla coppia campi Cognome e Nome (dai un'occhiata sulla guida in linea).
  • Re: Controllo nomi in un campo di testo

    I campi cognome e nome sono in due caselle di testo separate, in effetti inserire la voce duplicati non ammessi non è la soluzione ottimale, però con un controllo dell'errore potevo risolvere il problema.
    Mi conviene unire i campi cognome e nome in una unica casella e chiamarla "nominativo"?
    Vedrò la guida e vediamo come posso risolvere il problema.
    Quella soluzione che proposto prima, che mentre digito mi controlla tutte le lettere credi che sia fattibile? Ipotizziamo che inserisco il codice su current della maschera, e gli dico attraverso un recordset di andarmi a controllare tutti i campi digitati in quel momento, credi si possa fare?

    grazie
  • Re: Controllo nomi in un campo di testo

    Luca77462 ha scritto:


    Mi conviene unire i campi cognome e nome in una unica casella e chiamarla "nominativo"?
    No, non farlo. Devi soltanto impostare un "Indice Multicampo Univoco" sulla coppia di campi.

    Luca77462 ha scritto:


    Quella soluzione che proposto prima, che mentre digito mi controlla tutte le lettere credi che sia fattibile? Ipotizziamo che inserisco il codice su current della maschera, e gli dico attraverso un recordset di andarmi a controllare tutti i campi digitati in quel momento, credi si possa fare?
    Lascia perdere.
  • Re: Controllo nomi in un campo di testo

    OsvaldoLaviosa ha scritto:


    Luca77462 ha scritto:


    ma se c'è un caso di omonimia, non me lo fa inserire?
    Hai parlato del campo CodiceFiscale. In questo caso è assolutamente impossibile avere lo stesso CF per due persone diverse. @Alex ha ipotizzato i campi Cognome e Nome uniti, ma tu non hai specificato esattamente quali. Nel caso di più campi che insieme devono essere univoci, la proprietà Indicizzato: Sì (Duplicati non ammessi) non funziona proprio perchè se ti capitano Rossi Mario e Rossi Carlo, tu devi poterli inserire ugualmente. In questo caso devi togliere tale proprietà da un singolo campo e impostare un "Indice Multicampo Univoco" sulla coppia campi Cognome e Nome (dai un'occhiata sulla guida in linea).
    Dove si evince che io abbia ipotizzato un campo unico dal momento che faccio riferimento alla concatenazione con AND di 2 condizioni..?
    Facciamo attenzione a dare interpretazione del pensiero tecnico altrui.......!!!
    Grazie

    Nello specifico se i 2 campi non costituiscono UNA PD UNIVOCA(composta dai 2 campi) definirli indici e duplicati non ammessi come campo singolo non va bene.
    La soluzione che ho dato è l'unica funzionale e semplice da usare in questo caso.... poi ognuno sceglie di farsi male come crede......
  • Re: Controllo nomi in un campo di testo

    Salve.
    Scusate, forse sono troppo stanco o comunque mi è sembrato che l'amico Luca77462 NON ha chiarito se i nominativi che inserisce potrebbero teoricamente avere omonimi...?.
    Nel senso, potrebbe esistere l'omonimia, oppure non può esistere nella casistica degli inserimenti e quindi vorresti solo essere avvisato che quel nome lo hai già inserito...?.
    Perché sono 2 aspetti sensibilmente differenti.
    Un salutone a tutti.
    Luciano.
  • Re: Controllo nomi in un campo di testo

    Questo è evidentemente un modo poco funzionale per gestire Anagrafiche. .. ma credo che a prescindere dal finale, il problema principale per lui è intercettare il CRITERIO nel modo giusto. ... poi vedrà lui se scegliere avviso o azione...
  • Re: Controllo nomi in un campo di testo

    Scusa @Alex, quando ho detto "Cognome e Nome uniti" (ammetto di essermi espresso malissimo), non intendevo un unico campo concatenato ma 2 campi presi insieme per focalizzarne l'attenzione ai fini di un Indice Multicampo Univoco o qualcosaltro di simile.
  • Re: Controllo nomi in un campo di testo

    OsvaldoLaviosa ha scritto:


    Scusa @Alex, quando ho detto "Cognome e Nome uniti" (ammetto di essermi espresso malissimo), non intendevo un unico campo concatenato ma 2 campi presi insieme per focalizzarne l'attenzione ai fini di un Indice Multicampo Univoco o qualcosaltro di simile.
    Ci siamo confusi in 2....
    Poco male.
  • Re: Controllo nomi in un campo di testo

    Grazie Alex per la tua risposta, ho fatto come hai detto, un bel check di controllo con l'operatore AND tra cognome e nome, un pò più lunga perchè ogni volta devo premere il pulsantino, mi gestisco così l'omonimia come hai detto tu, quindi non posso avere errori.

    Grazie
Devi accedere o registrarti per scrivere nel forum
12 risposte