Evita duplicazone nominativo

di il
15 risposte

Evita duplicazone nominativo

Ciao a tutti,
quesito semplice ma per me di ardua soluzione.
In una maschera Anagrafe all'atto dell'inserimento dei dati Cognome e Nome come verificare che quelli immessi non siano già presenti ? Sarebbe utile se già presenti avvisare l'utente e proporgli di utilizzare quanto già immesso. Come fare ???
Ciao

15 Risposte

  • Re: Evita duplicazone nominativo

    La soluzione più semplice è quella di impostare in visualizzazione struttura TABELLA (quella che c'è sotto) un Indice Multicampo Univoco (sulla coppia campi Cognome e Nome). Dai un'occhiata alla guida in linea per come impostarlo.
  • Re: Evita duplicazone nominativo

    mazda91 ha scritto:


    Ciao a tutti,
    quesito semplice ma per me di ardua soluzione.
    In una maschera Anagrafe all'atto dell'inserimento dei dati Cognome e Nome come verificare che quelli immessi non siano già presenti ? Sarebbe utile se già presenti avvisare l'utente e proporgli di utilizzare quanto già immesso. Come fare ???
    Ciao
    A mio avviso, il concetto è sbagliato, perchè in tal modo il tuo programma non consentirà mai l'inserimento degli omonimi.
    Vi deve essere un ulteriore campo che discrimini tra due omonimi (Codice Fiscale?, data di nascita?, ...)
    E comunque, dovresti 'proporre' l'elenco degli omonimi (nel caso esistano) per dare modo all'utente di rendersi conto se ciò che sta inserendo è già presente o meno.
  • Re: Evita duplicazone nominativo

    Rispondendo a Osvaldo e GIbra, devo dire che si potrei con il codice fiscale o altro rendere univoco un nominativo.
    L'obiettivo, però, sarebbe quello di, una volta terminato l'inserimento di Cognome e Nome avvisare l'utente che c'é già uno o più nominativi presenti e proporre di scegliere tra questi oppure inserirne uno nuovo. Credo potrebbe essere molto utile.
  • Re: Evita duplicazone nominativo

    L'impostazione di Indice Multicampo Univoco sulla coppia Cognome e Nome fa sì che se hai già Rossi Mario e tu lo inserisci nuovamente, al termine dell'inserimento dati, quando vuoi passare al record successivo, Access ti invia un messaggio di errore del tipo "...stai violando l'univocità di una chiave primaria o indice univoco..." non accettando il nuovo Rossi Mario. A questo punto decidi se digitare un altra persona (perchè magari stai lavorando su una serie di nominativi) oppure digitare un valore a caso per poi eliminare il record.
    Se il messaggio di errore non salta fuori vuol dire che il nuovo nominativo non ce l'hai e puoi stare tranquillo.
  • Re: Evita duplicazone nominativo

    Ho trovato la guida per quanto riguarda la soluzione proposta da Osvaldo, la quale però non mi consentirebbe di andare a selezionare (prelevare) i dati del precedente inserimento. Per cui devo trovare un'altra strada. Pensavo ad una query attivata dopo aver aggiornato prima Cognome e poi Nome, che in caso di esito negativo prosegua posizionando il Focus su Nato_A altrimenti apra il dettaglio dell'anagrafica trovata e da questa con pulsante importare/copiare i dati. Che ne dite ??
  • Re: Evita duplicazone nominativo

    Ho capito il tuo problema.
    Ma dal tuo ultimo post ho capito anche che non si tratta dell'inserimento della semplice anagrafica, altrimenti non ci sarebbe bisogno di ricopiare i dati già immessi, ma molto probabilmente si tratta di un inserimento di altri dati riferiti al soggetto inserito nell'anagrafica.
    Penso, quindi, che dovresti meglio illustrare di cosa si tratti veramente, se la maschera di inserimento si basa su una tabella o su una query con due o più tabelle, le relazioni etc. Comunque e in attesa della tua risposta si possono anticipare alcuni metodi:
    1) il più semplice e banale potrebbe essere trasformare la casella di testo del cognome in casella combinata, la quale basandosi sulla tabella anagrafica potrebbe mostrare tutti i soggetti registrati con quel cognome, mostrando anche gli altri dati quali nome data di nascita etc.
    2) confrontare i dati digitati, sarebbe il caso però di farlo sul codice fiscale, con quelli già inseriti in tabella con la funzione DLookup.
  • Re: Evita duplicazone nominativo

    Sì bogus, avevo intuito anch'io un utilizzo improprio di un precontrollo direttamente in tabella o maschera Anagrafica. Per me il problema di mazda91 si pone o va affrontato da un'altra tabella/maschera (preferibilmente figlia) che deve guardare i valori di Anagrafica (meglio se con casella combinata). Se la Persona c'è e serve la si seleziona, se non c'è occorre un altro artificio che aggiorni la tabella/maschera Anagrafica. Posto in questi termini, si tratta di un problema classico/tipico, affrontato già altre volte. mazda91, piuttosto che fare quello che ha indicato, sarebbe meglio che dicesse "a cosa gli serve fare tutto ciò".
  • Re: Evita duplicazone nominativo

    Intanto grazie delle risposte. Cerco adesso di spiegarmi al meglio che posso.
    La maschera nella quale immetto i dati è composta da:
    Cognome-Nome-NatoA-DataNascita-Residenza-Indirizzo.
    Questi dati insieme al Sesso fanno sì che possa essere calcolato il codice fiscale che quindi avviene solo alla fine dell'inseerimento di tutti i dati (tranne ovviamente Residenza e Indirizzo). Pensavo di snellire le procedure d'inserimento facendo sì che una volta digitato Cognome e poi Nome potessi avere da una query l'elenco dei vari ROSSI PAOLO (+ gli altri suoi dati) se, ovviamente, presenti e quindi l'user potesse selezionando uno di questi Nominativi e copiare tutti i suoi dati. L'esempio potrebbe essere quello classico della biblioteca dove ROSSI PAOLO prende tante volte dei libri in prestito ma non è l'unico ROSSI PAOLO, allora l'user lo riconosce come la persona (ID 1010 per esempio) e lo seleziona. In ultimo, preciso che la maschera si appoggia a una tabella Anagrafe. Ho provato a cambiare la casella di testo in casella combinata ma non so perchè all'inserimento non mi propone quanto già inserito (??) come invece avviene quando la uso con dati presi da una tabella o query che sia. A cosa serve tutto ciò ? semplicemente a non dover riscrivere + volte i dati di una persona. Scusatemi ma credevo fosse chiaro questo punto.
    Ciao
  • Re: Evita duplicazone nominativo

    mazda91 ha scritto:


    L'esempio potrebbe essere quello classico della biblioteca dove ROSSI PAOLO prende tante volte dei libri in prestito ma non è l'unico ROSSI PAOLO, allora l'user lo riconosce come la persona (ID 1010 per esempio) e lo seleziona
    Prendo spunto da qui per farti osservare che una tabella Anagrafica serve più per questo scopo che non per sè stessa. In biblioteca tu utente devi lavorare direttamente sulla maschera PrestitiLibri e selezionare Rossi Paolo, ma la tua digitazione/selezione non si deve fermare qui. Devi sempre stuzzicare la casella combinata per vedere di quale Rossi Paolo stiamo parlando (grazie ad altri campi), allora vedi che ce ne sono 3 o 4 e decidi se sceglierne uno oppure è arrivato un nuovo Rossi Paolo. In quest'ultimo caso devi aggiornare la maschera Anagrafica ulteriormente, per poi riselezionare l'ultimo Rossi Paolo arrivato. Si può fare comodamente con accorte automatizzazioni di macro o codici VBA.
  • Re: Evita duplicazone nominativo

    Rieccomi, ho (forse) risolto l'utilizzo della casella combinata invece della casella di testo. Ho poi realizzato una query che (manualmente, una volta inserito il cognome - anche parziale) mostri se ci sono degli omonimi. Non realizzo come selezionarne uno direttamente da qui. Per quanto riguarada la casella combinata ho messo in Dati-Origine riga il campo Cognome e così sembra che funzioni.
  • Re: Evita duplicazone nominativo

    Ho paura di andare troppo veloce con i concetti, ma vorrei farti cogliere il perchè del mio ultimo ragionamento, se solo dessi un'occhiata a questi miei due documenti:
    http://www.divshare.com/download/24930879-58
    http://www.divshare.com/download/24207511-a9
    (clicca su Download).
    Penso che coglieresti meglio il corretto utilizzo di una tabella Anagrafica e di qualsiasi tabella/maschera che volesse richiamare dati da essa con casella combinata "ben congeniata".
  • Re: Evita duplicazone nominativo

    Questa volta Osvaldo ti devo un GRAZIE doppio e triplo, i due file sono molto semplici nelle spiegazioni e quindi me mi posso studiare bene. Sopratutto per quanto il relazionare maschera e sottomaschera che potrebbe ben risolvere alcune delle mie difficoltà. E' proprio qualcosa del genere che cercavo, breve e diretto. Ti farò sapere. Intanto faccio un pò di prove.
  • Re: Evita duplicazone nominativo

    Nel tentare alcuni passaggi relativi agli esercizi inviati da Osvaldo chiedo un aiuto.
    In Anagrafe ho messo MascheraPersona e SottoMascheraRecapiti.
    Sono relazionate con ID_Persona (Contatore lato MascheraPersona) e ID_Persona (Numerico lato SottoMascheraRecapiti). Una volta creata Anagrafe nel momento che inserisco Nuovo Record la MascheraPersona si dispone su Nuovo Record ma altrettanto non fa la SottoMascheraRecapiti.
    MI sembra si aver correttamente relazionato le due tabelle. Che succede ?
  • Re: Evita duplicazone nominativo

    Hai creato maschera/sottomaschera con procedura guidata oppure in visualizzazione struttura? Nel primo caso Access avrebbe dovuto individuare automaticamente la relazione che lega tabella madre con tabella figlia e organizzare tutto correttamente.
    Nel secondo caso può darsi che devi controllare le proprietà della sottomaschera:
    1. Vai in visualizzazione struttura MascheraPersone
    2. Clicca dentro il rettangolo della sottomaschera in modo che appaia evidenziato il rettangolo della cornice
    3. Dal menu Visualizza | Proprietà
    4. Collega campi secondari: IDPersona
    Collega campi master: IDPersona
    5. Salva tutto
Devi accedere o registrarti per scrivere nel forum
15 risposte