CODICE VBA PER VERIFICA CODICE ESISTENTE

Anonimo
2018-08-05T08:50:10+00:00

Ciao a tutti,

volevo porvi un quesito circa la verifica, mediante codice VBA, dell'esistenza in una tabella di un codice e visualizzazione msgbox di notifica.

Ho una tabella con una colonna Cod. Fin. che è un campo testo dove inserisco un codice attribuito ad un determinato finanziamento (es. Finanziamento di Zia) Cod. Fin. = Zia).

Nella successiva immissione di un nuovo finanziamento vorrei inserire un controllo, mediante codice VBA in cui vena verificato se il codice Zia esiste. Nella ipotesi che il codice sia presente nella tabella di riferimento un msgbox si apra e mi avverta della presenza del codice.

Inoltre sempre in merito allo stesso dbase e grazie all'aiuto di Vladimiro chiedo a voi di potermi spiegare (se possibile e brevemente) quando è utile utilizzare delle variabili (esempio Dim i as long).

Grazie per il vostro prezioso aiuto.

Luca

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
2018-08-06T23:27:25+00:00

Ciao,

proverei con:

If DCount("*", "FINANZIAMENTI", "COD_FINAN='" & Me!COD_FINAN & "'") > 0 Then

        MsgBox "Il codice digitato già presente in archivio", vbInformation

        Cancel = True

        COD_FINAN.SetFocus

     End If

End Sub

Ciao Mimmo

Ciao Mimmo,

se mi posso permettere, la funzione Dcount in questo caso è un po' limitata in quanto potrebbe accadere di modificare involontariamente un nominativo già presente in tabella e non poterlo più ripristinare in quanto il codice suddetto lo vedrebbe come un nominativo già presente in tabella.

Per ovviare a questo c'è un bel sistema (reperibile, se non erro, anche su

www.donkarl.com

In cui puoi trovare tanti altri bellissimi esempi di programmaziome costruiti magnificamente dal nostro Karl Donaubauer).

Allora dicevo, al posto di usare la funzione Dcount, si potrebbe usare la funzione Dlookup

mettendo a confronto il veccho nominativo con il nuovo.

If Len( Me!COD_FINAN & "")= 0 then

    Exit Sub

End If

If Not Is Null(Dlookup("COD_FINAN"," FINANZIAMENTI",

"COD_FINAN='" & Replace(Me!COD_FINAN, "'","''") &  "'")) And Me!COD_FINAN <> Nz( Me!COD_FINAN.OldValue) Then

msgBox ecc...

Vladimiro

La risposta è stata utile?

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

Risposta accettata dall'autore della domanda

Anonimo
2018-08-06T09:44:37+00:00

Ciao Luca,

potresti utilizzare la funzione DCount per verificare la presenza di un valore in tabella (Cod. Fin. = Zia).

if dcount("*","tuaTabella","[Cod. Fin.] = 'Zia'") > 1 Then.....

Ciao Mimmo

La risposta è stata utile?

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

17 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-08-07T17:00:24+00:00

    Ciao Mimmo

    se sposto il codice nell'evento "dopo aggiornamento" lo stesso funziona senza resistuirmi l'errore finale.

    Dalle prove che ho fatto direi che funziona correttamente .... Quando mi toccerà di popolare il dbase di dati reali vi sarò sapere.

    Per il momento, grazie mille sia a te Mimmo che a Vladimiro per la soluzione.

    Ciao

    Luca

    Ciao Luca,

    io provo a darti dei consigli poi spetta a te farne tesoro.

    A prescindere da come vuoi impedire l'inserimento di un dato duplicato, anche su "Dopo aggiornamento" di una casella di testo va bene.

    Solo che...

    se avessi seguito il mio consiglio su "Dichiarazione di variabili obbligatoria" avendo in ogni modulo l'aggiunta di Option Explicit ti saresti accorto che avere alla fine della routine:

    Cancel = True

    valida solo su "Prima di aggiornare" di una maschera / casella di testo

    è sbagliato.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-08-07T13:24:23+00:00

    Ciao Mimmo

    se sposto il codice nell'evento "dopo aggiornamento" lo stesso funziona senza resistuirmi l'errore finale.

    Dalle prove che ho fatto direi che funziona correttamente .... Quando mi toccerà di popolare il dbase di dati reali vi sarò sapere.

    Per il momento, grazie mille sia a te Mimmo che a Vladimiro per la soluzione.

    Ciao

    Luca

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-08-07T13:11:41+00:00

    Ciao,

    prova a spostare il tuo codice nell'evento dopo aggiornamento del campo Cod_Finan.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento