Evitare duplicazione record

Anonimo
2014-02-15T23:39:30+00:00

Ciao a tutti

ho creato una tabella per inserire i nominativi dei progettisti composto dai seguenti campi:

ID_Tecnico (campo contatore)

Titolo

Cognome

Nome

Num_Iscrizione

Albo

Residenza

Per fare in modo che non si creino duplicati degli stessi nominativi, ho impostato come

chiave primaria i campi: Titolo, Cognome, Nome, Num_Iscrizione.

Quindi ho creato una maschera con i campi di cui sopra per inserire i dati.

Quello che non so fare è gestire l'errore che si genera quando inserisco uno

stesso nominativo.

Mi spiego meglio: quando inserisco un nominativo già presente, esce l'errore che mi

informa che si è cercato di duplicare la chiave primaria e quindi i dati non possono essere salvati.

Io vorrei intercettare tale errore prima del salvataggio, in modo da cancellare i campi

 ed inserire un nuovo nominativo.

Grazie per l'aiuto

Roberto

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

10 risposte

Ordina per: Più utili
  1. Anonimo
    2014-02-16T17:59:01+00:00

    Ciao Roberto,

    certo se avessi ad es. il codice fiscale :-)

    Non penso ci siano alternative nel verificare nell'evento Before_Update la presenza di un record con quelle caratteristiche (stessa chiave univoca).

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-02-16T17:45:06+00:00

    Ciao Roberto

    puoi utilizzare l'evento "su errore"della tua maschera: in caso di chiave duplicata verrà restituito un codice di errore 3022.

    Al seguente link troverai una spiegazione esauriente e un esempio di routine.

    Error Event

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-02-16T11:59:10+00:00

    Scusa Sandro, ho riflettuto un attimo e penso che non si possa

    fare come dici tu, in quanto possono esistere tecnici diversi

    per esempio (Ing, Arch, Geom, ecc) che appartengono ad Ordini

    diversi, ma possono avere lo stesso numero. Inoltre possono esistere tecnici

    con lo stesso numero appartenenti a province diverse.

    (esempio: ING n° 250 albo Roma - ARCH n°250 albo Roma - ING n°250 albo Milano, ecc.)

    Quindi per evitare duplicati in assoluto occorre necessariamente combinare

    tutti i campi che ho impostato io, oppure escogitare qualcosa che io non so.

    Grazie e resto in attesa di suggerimenti.

    Ciao e di nuovo buona domenica

    Roberto

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-02-16T11:49:48+00:00

    Grazie Sandro

    ora provo e poi ti faccio sapere

    Ciao e buona domenica anche a te

    Roberto

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2014-02-16T09:08:56+00:00

    ciao Roberto,

    io non imposterei una chiave primaria multicampo, è un po' difficile da gestire.

    se il campo Num_Iscrizione è univoco per ogni progettista su evento prima di aggiornare del controllo num_iscrizione prova con :

    If DCount("Num_Iscrizione ", "tuaTabellaProgesttisti", "Num_Iscrizione ='" & Me.Num_Iscrizione  & "'") Then MsgBox "Hai già inserito " & me.Num_Iscrizione , vbCritical, "Avviso!"

    togli dalla tabella l'opzione duplicati non ammessi, il controllo lo fai con il suddetto codice.

    se Num_Iscrizione non è stringa puoi scrivere :

    If DCount("Num_Iscrizione ", "tuaTabellaProgesttisti", "Num_Iscrizione =" & Me.Num_Iscrizione ) Then MsgBox "Hai già inserito " & me.Num_Iscrizione , vbCritical, "Avviso!"

    tuaTabellaProgesttisti è il nome della tabella popolata dai progettisti, cambiala opportunamente qualora sia diverso.

    ciao e buona domenica.

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento