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-06T16:10:15+00:00

    Ovviamente il test è per > 0.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-08-06T15:48:37+00:00

    Ciao,

    prova :

    DCount("*", "FINANZIAMENTI", "COD_FINAN='" & ME!COD_FINAN & "'")

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-08-06T13:34:43+00:00

    Ciao Mimmo,

    vorrei precisare che il campo COD_FINAN è un campo testo.

    Ho seguito il tuo consiglio ed ho scritto il codice in questo modo

    Private Sub Form_BeforeUpdate(Cancel As Integer)

    If DCount("*", "FINANZIAMENTI", "COD_FINAN='ME!COD_FINAN'") = 0 Then

        MsgBox "Il codice finanziamento è già presente in archivio.", vbInformation

        Cancel = True

        Me.Undo

    End If

    End Sub

    Così come l'ho scritto io non funziona

    Luca

    La risposta è stata utile?

    0 commenti Nessun commento