[Risolto]Blocco dell'inserimento di record doppi

Discussioni sulle caratteristiche di database
Rispondi
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

[Risolto]Blocco dell'inserimento di record doppi

Messaggio da Maurizio_senu »

Buon giorno,
Ho un problema con l'inserimento di nuovi iscritti che non siano doppioni.
Ho creato un dbase con una tabella che ha una chiave primaria, "codice", dove inserisco un alfanumerico che dovrebbe caratterizzare il record come univoco (non sono in possesso del codice fiscale di tutti i soci).
Purtroppo a volte mi comunicano dei dati non corretti di qualche socio, ad esempio "Z Gian Demetrio", che era iscritto dall'anno precedente come "Z Demetrio", quindi potrei inserire due record distinti uno con codice ZUDE64 e aggiunrere poi il record con un altro codice ZUGD64, che il Dbase non riconosce come identici, per cui vi è il rischio di inserire record doppi. Nel dbase allegato vi è l'esempio con i record 14 e 15 della tabella"Tab_Soci".

Vorrei creare un modo di evitare l'errore, ma oltre a richedere che i nominativi, che mi vengono forniti siano conformi con i dati della carta di identità, non so come procedere!

Petreste indicarmi un buon manuale o libro dove viene trattato in modo esaustivo l'uso di libreoffice base, anche per quanto riguarda le macro?
Grazie
Allegati
DATI ISCRITTI ASSOCIATI _HSQLDB.odb
(63.67 KiB) Scaricato 95 volte
Ultima modifica di Maurizio_senu il giovedì 4 novembre 2021, 14:28, modificato 1 volta in totale.
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8820
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Blocco dell'inserimento di record doppi

Messaggio da charlie »

Ciao, è difficile impedire la duplicazione dei dati.
Base effettua un controllo solo nei campi "chiave primaria" dando questo tipo di messaggio in caso di duplicato:
Violazione del vincolo di unicità in statement [UPDATE "Tab_Soci" SET "Codice" = ? WHERE "Codice" = ?]
I campi chiave primaria possono essere anche 2, es: Cognome + Nome. In questo caso si ha errore se coincidono entrambi.
Ma non sarà rilevato alcun errore per "Z Demetrio" e "Z Gian Demetrio".
Il codice fiscale ti risoverebbe il problema. Se hai data e luogo di nascita te lo puoi calcolare.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Blocco dell'inserimento di record doppi

Messaggio da Maurizio_senu »

NO, purtroppo ho solo l'anno e spesso non c'è il luogo di nascita! Quindi escludendo il Codice fiscale,
penso l'unica cosa fattibile sarebbe un controllo ad ogni nuova immissione di record...

grazie comunque
buona serata
versione Libreoffice 7.0.4.2 con windows 8.1
marcocurreli
Messaggi: 104
Iscritto il: sabato 10 aprile 2021, 13:28

Re: Blocco dell'inserimento di record doppi

Messaggio da marcocurreli »

Potresti modificare uno dei due nomi e relativo codice.
Oppure, come chiave puoi usare il cognome e la data d'iscrizione.
LibreOffice 7.3.0 -- Linux 5.16.4-arch
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8820
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Blocco dell'inserimento di record doppi

Messaggio da charlie »

Una soluzione c'è.
Fatti una query (con eventuale formulario) per la ricerca preventiva. Digiti Cognome e Nome del nuovo iscritto e vedi se qualcuno di simile è già presente nella tabella:

Codice: Seleziona tutto

SELECT "Tab_Soci".*, "Tab_Soci"."ID", "Tab_Soci"."Cognome", "Tab_Soci"."Nome" FROM "Tab_Soci" WHERE "Cognome" LIKE ( '%' || :Cognome || '%' ) AND "Nome" LIKE ( '%' || :Nome || '%' )
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Blocco dell'inserimento di record doppi

Messaggio da Maurizio_senu »

Si con la ricerca cognome e nome funziona per essere più completo potrei aggiungere la via di residenza e funziona.
Comunque nel Dbase non è presente il campo "ID", e l'ho dovuto togliere. E' importante che sia presente?

Ora se vorrei automatizzare una ricerca globale sugli eventuali doppi inserimenti facendo una scansione di tutti gli iscritti Visualizzando cognome e nome dei doppioni?
E' possibile?
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8820
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Blocco dell'inserimento di record doppi

Messaggio da charlie »

  • Sì, puoi fare a meno del campo ID.
  • La query non serve a trovare i doppioni presenti in maniera diretta e univoca, trova delle somiglianze che possono essere doppioni oppure no, da valutare di volta in volta.
    Se usata preventivamente evita di inserire doppioni.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Blocco dell'inserimento di record doppi

Messaggio da Maurizio_senu »

Buona giornata,
grazie Charlie!
Ps: penso comunque che sia possibile creare una query che serva a trovare i doppioni presenti in maniera diretta e univoca durante le fasi di inserimento di nuovi record, anche ce immagino sia una cosa ben piu' complessa... e credo non sia al mio livello di conoscenze sulle querry...
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8820
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Blocco dell'inserimento di record doppi

Messaggio da charlie »

Più che una query servirebbe una macro che confronti i vari record e segnali quelli che si assomigliano.
Se consideri il problema risolto, puoi chiudere mettendo il [Risolto]: Sistema corretto per aggiungere [Risolto] viewtopic.php?f=2&t=5661
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Blocco dell'inserimento di record doppi

Messaggio da Maurizio_senu »

Purtroppo, pur seguendo la procedura, non mi visualizza le icone argomento per cui non posso spuntarlo come risolto.
Forse perchè vi è allegato un file al post?
che faccio?
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8820
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Blocco dell'inserimento di record doppi

Messaggio da charlie »

Avevi postato l'argomento nella sezione Tutorial dove non sono previste le icone.
Ora l'ho spostato nella sezione giusta.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Blocco dell'inserimento di record doppi

Messaggio da Maurizio_senu »

GRAZIE,
scusa la mia sbadataggine
un saluto Maurizio
versione Libreoffice 7.0.4.2 con windows 8.1
Rispondi