Duplicati non ammessi in due campi testo con MsgBox

Anonimo
2010-11-23T19:47:00+00:00

Ciao a tutti ...

....ho una maschera con vari campi, tra cui ho due  campi formato testo ,nr_prot eazienda ; vorrei inserire una routine che in fase di aggiunta records senr_prot e azienda sono stati già  presenti  in archivio mi segnalasse con  un avviso " Dati già presenti in archivio..!" Ho provato ad inserire , nella struttura della tabella,  al campo specifico l'opzione " duplicati non ammessi " e potrebbe funzionare,  ma vorrei che l'avviso avvenga su tutti e due i campi citati prima..!

Grazie come sempre a chi mi sarà di aiuto..

Francesco Laroccia

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

Risposta accettata dall'autore della domanda

Anonimo
2010-11-24T14:52:23+00:00

Ciao Franco,

io credo che la risposta data da The Raw nel post "Impedire inserimento com maschera di valori duplicati" possa esserti di aiuto.

In sostanza dovresti impostare la chiave primaria della tua tabella sui due campi nr_prot e azienda e poi gestire sull'evento su errore della maschera con la routine suggerita da The Raw che ti riporto integralmente

Private Sub Form_Error(DataErr As Integer, Response As Integer)

    Const conErrRequiredData = 3022

    If DataErr = conErrRequiredData Then

        MsgBox ("Record già esistente")

        Response = acDataErrContinue

    Else

        'Display a standard error message

        Response = acDataErrDisplay

    End If

End Sub

David

La risposta è stata utile?

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

Risposta accettata dall'autore della domanda

Anonimo
2010-11-24T15:24:45+00:00

Ciao Francesco,

Innanzitutto, per farti stare tranquillo, lavora su una copia del db in modo tale che "alle brutte" elimini la copia di lavoro e torni allo stato di partenza.

Per evitare il problema che ti si pone, visto che hai già una chiave primaria sulla tabella, potresti creare al suo posto un indice univoco sui due campi interessati. Per fare questo vai in visualizzazione struttura della tabella, seleziona i due campi nr_prot e azienda e clicca sul pulsante Indici.

Nella mascherina che ti compare dovresti poter vedere l'indice esistente sulla chiave primaria. Spostati al primo rigo libero, metti un nome che ti pare al nuovo indice e poi imposte nella colonna nome campo i nomi dei tuoi 2 campi (ovviamente essendo un indice su due campi avrai una situazione di questo tipo

IndiceProva       nr_prot     crescente

                        azienda    crescente

Nelle opzioni del nuovo indice imposta "univoco" a SI.

In questo modo, se non usato uno dei due campi nelle relazioni, non avrai i messaggi di cui parlavi.

In caso contrario puoi tranquillamente eliminare le relazioni esistenti e ricrearle successivamente alla modifica.

David

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-11-28T14:37:05+00:00

    Ciaoo David..

    ...si ho fatto come da te detto..ed ho risolto il tutto , eliminando prima le relazioni e poi ricreandole..

    Grazie per l'aiuto

    Francesco Laroccia

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-11-24T15:12:06+00:00

    Ciao David..

    ..grazie per la risposta !... in effetti avevo già letto quello che avevi risposto a The Raw e stavo già provando ..!Il problema è che questa esigenza mi è sorta dopo aver inserito oltre 500 records, per cui quando vado a manipolare la struttura della tabella per impostare la chiave primaria  sui duecampi nr_prot e azienda mi dice che non  è possibile farlo perchè la tabella è in relazione con altre tre tabelle , per cui mi chiede di eliminare tutte le relazioni..e questo mi mette in ansia..! La tabella in questione ha già comunque un campo con chiave primaria (idcliente)...in relazione a sua volta con altri campi numerici di altre tabelle.

    Non è possibile inserire una routine sui campi in questione nella maschera , senza entrare nella struttura della tabella..??

    Ciao David e grazie

    Francesco Laroccia

    La risposta è stata utile?

    0 commenti Nessun commento