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-06T06:29:20+00:00

    Ciao Vladimiro,

    goditi le ferie ed il meritato riposo ... il mio dbase può aspettare che siamo tutti tornati al lavoro e che abbiamo fatto riposare il neurone (almeno per me!!!! ahahaha).

    Una precisazione quando parlo di " un campo testo dove inserisco un codice ", non intendo codice VBA ma un codice inteso come codifica del finanziamento che, nel mio caso, può essere Zia, piuttosto che C/c Luca, Finan1; Finan2, etc. etc.

    Nel mentre, cercherò di approfondire l'argomento nella speranza che al tuo rientro poss farti domande mirate e puntuali circa l'utilizzo delle variabili ....

    Un saluto e buone ferie

    Luca

    Ciao Luca,

    pochi minuti fa, a mente fresca e presupponendo che andassi a leggere la risposta più tardi, ho modificato l'esempio della variabile. Forse è il caso che ci dai nuovamente un'occhiata :-)

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-08-06T05:55:52+00:00

    Ciao Vladimiro,

    goditi le ferie ed il meritato riposo ... il mio dbase può aspettare che siamo tutti tornati al lavoro e che abbiamo fatto riposare il neurone (almeno per me!!!! ahahaha).

    Una precisazione quando parlo di " un campo testo dove inserisco un codice ", non intendo codice VBA ma un codice inteso come codifica del finanziamento che, nel mio caso, può essere Zia, piuttosto che C/c Luca, Finan1; Finan2, etc. etc.

    Nel mentre, cercherò di approfondire l'argomento nella speranza che al tuo rientro poss farti domande mirate e puntuali circa l'utilizzo delle variabili ....

    Un saluto e buone ferie

    Luca

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-08-05T21:29:23+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

    Ciao Luca, 

    causa ferie sto via qualche giorno.

    Appena posso, a meno che non si faccia vivo qualcun altro, provo a darti la risposta.

    Nel frattempo, riguardo le variabili, sarebbe bene che ti facessi una bella infarinatura (apertura con tasto F1) visto l'argomento abbastanza ampio che ne consegue ma che sta alla base della programmazione.

    Quello che posso anticiparti, così per sommi capi, è che dichiarare una variabile numerica Long è come avere un campo a sé stante dove memorizzi un valore numerico che puoi richiamare quando vuoi.

    Ad esempio hai una tabella con tre campi Campo1 Tipo testo, Campo2 Tipo numerico, Risultato Tipo numerico.

    Prima di aggiornare di una maschera, dopo aver dichiarato la variabile:

    Dim MiaVariabile As Long

    MiaVariabile= IIf(Me!Campo1 = "Vladimiro", 500000, 1000000)

    Inserisci il seguente codice (a proposito, rispetto a quello che hai scritto...finanziamento di zia...

    per evitare facili fraintendimenti, all'interno del campo di una tabella esiste un valore stringa o valore numerico, non codice; il codice si trova all'interno di un' espressione o di una routine) 

    Me!Risultato=MiaVariabile + Nz(Campo2, 0)

    A presto allora.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento