CODICE DOPPIO

Anonimo
2022-04-12T14:33:59+00:00

Salve a tutti

devo immettere dei dati in una tabella dove, uno dei campi deve rimanere univoco, quindi è stato impostato come "Indicizzato (duplicati non ammessi)".

Attraverso una maschera vado a inserire i dati ma, se nel campo di ci sopra inserisco un valore già precedentemente inserito, il programma, una vola chiusa la maschera non salva i dati ma non avverte dell'errore.

Ho provato con la gestione "Evento su errore" della maschera ma continua a non salvare il record e a non avvisare.

Esiste una procedura, anche in VBA che mi permetta di gestire il tutto con un messaggio che avverta l'utente che sta tentando di inserire un valore doppio nel campo?

Grazie a tutti per l'aiuto

Ciro

Microsoft 365 e Office | Access | Per il lavoro | 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

Risposta accettata dall'autore della domanda

Anonimo
2022-04-12T20:09:19+00:00

ciao Ing, come butta ? :-)

spero tutto bene.

Puoi gestire il duplicato lato db o client.

Per il primo devi intercettare l'errore del dbengine nell'evento su errore gestendo il valore parametro dataerr, per il secondo, opterei per l'evento before insert o before update, intercettando il duplicato con dcount ed il parametro cancel.

fai qualche tentativo nulla di complicato.

un saluto, ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

domenico laurenza 9,900 Punti di reputazione Moderatore volontario
2022-04-12T15:25:10+00:00

Ciao Ciro,

il sistema dovrebbe darti un messaggio almeno che tu non abbia un On Error Resume Next in precedenza.

Comunque, visto che il messaggio che ti darebbe non è proprio il massimo, potresti gestire il tutto da codice, ad es.

If Dcount("*", "tuaTabella","Id <> " & Me.Id & " And tuoCampo = " & me.Campo) > 0 Then

msgBox "Tuo messaggio"

ovviamente se il campo è testuale avrai gli apici

If Dcount("*", "tuaTabella","Id <> " & Me.Id & " And tuoCampo = '" & me.Campo & "'") > 0 Then

Ciao Mimmo

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2022-04-13T07:39:23+00:00

    ciao Ciro,

    ultimamente poco presente nella community, davvero poco....altri impegni...ma quando vedo qualche "vecchio" amico cerco di ritrovare qualche minuto :-).

    Estero ? wow bene direi, complimenti, significa che il lavoro gira a dovere.

    un saluto, a presto.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2022-04-13T06:51:01+00:00

    Ciao Sandro, sono felice di ritrovarti, sono stato per tanto tempo all'estero per lavoro e non ho avuto più modo di continuare con Access, come saprai il mio lavoro è ben altro e, Access è (purtroppo) solo una piccola parte di questo, di conseguenza sono molto arrugginito.

    Tu come stai? sempre pronto a dare una mano a noi poveri mortali :-).

    Ti ringrazio come sempre per l'aiuto che ho già messo in pratica grazie anche all'aiuto ricevuto da Mimmo che, come sempre ringrazio tantissimo.

    Spero di trovarti ancora e presto

    Ancora grazie

    Ciro

    La risposta è stata utile?

    0 commenti Nessun commento