Access 2010 - in una maschera aggiornare alcuni campi a seguito della modifica di uno tramite VBA

Anonimo
2012-03-21T11:29:26+00:00

Buongiorno,

in una maschera (di gestione di una sola tabella) di access tento di aggiornare il valore di alcuni campi al variare del campo in questione.

Ho provato ad attivare sia l'evento BeforeUpdate che Change ed immettere il seguente codice:

DoCmd.RunSQL "UPDATE Firme INNER JOIN UOG ON Firme.UOGSAP = UOG.UogCod SET Firme.codZona = UOG!Liv03, Firme.desZona = UOG!DescLiv03, Firme.codModulo = UOG!Liv02, Firme.desModulo = UOG!DescLiv02, Firme.DescUog2 = [UOG]![UogDesc]WHERE (((Firme.Flusso)=" & Flusso & ") AND ((Firme.CID)=" & CID & "));"

L'aggiornamento non avviene;  e se passo al record successivo per forzare l'aggiornamento appare un msg di copia/salvataggio record (non sempre tuttavia)

Mi potete indicare cosa manca nella stesure del codice od eventuali altre soluzioni.

Grazie fin d'ora e buona giornata.

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
2012-03-21T13:50:20+00:00

Tu hai scritto:

DoCmd.RunSQL "UPDATE Firme INNER JOIN UOG ON Firme.UOGSAP = UOG.UogCod SET Firme.codZona = UOG!Liv03, Firme.desZona = UOG!DescLiv03, Firme.codModulo = UOG!Liv02, Firme.desModulo = UOG!DescLiv02, Firme.DescUog2 = [UOG]![UogDesc]WHERE (((Firme.Flusso)=" & Flusso & ") AND ((Firme.CID)=" & CID & "));"

su dopoaggiornamento del campo X devi semplicemente impostare i campi della tabella Firme, ad es.

codZona = dlookUp("Liv03","UOG","UogCod = " & UOGSAP)

desZona = dlookup("DescLiv03","UOG","UogCod = " & UOGSAP).....

 

se UOGSAP e' un numero, altrimenti se e' un testo:

codZona = dlookUp("Liv03","UOG","UogCod = '" & UOGSAP & "'")desZona = dlookup("DescLiv03","UOG","UogCod = '" & UOGSAP & "'")..... Ciao Mimmo

Ciao Mimmo,

le soluzioni che mi proponi

se UOGSAP e' un numero, altrimenti se e' un testo:

codZona = dlookUp("Liv03","UOG","UogCod = '" & UOGSAP & "'")desZona = dlookup("DescLiv03","UOG","UogCod = '" & UOGSAP & "'").....

sono in alternativa a DoCmd.RunSQL ?

Grazie, ciao

La risposta è stata utile?

0 commenti Nessun commento

14 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-03-21T12:24:00+00:00

    Tu hai scritto:

    DoCmd.RunSQL "UPDATE Firme INNER JOIN UOG ON Firme.UOGSAP = UOG.UogCod SET Firme.codZona = UOG!Liv03, Firme.desZona = UOG!DescLiv03, Firme.codModulo = UOG!Liv02, Firme.desModulo = UOG!DescLiv02, Firme.DescUog2 = [UOG]![UogDesc]WHERE (((Firme.Flusso)=" & Flusso & ") AND ((Firme.CID)=" & CID & "));"

    su dopoaggiornamento del campo X devi semplicemente impostare i campi della tabella Firme, ad es.

    codZona = dlookUp("Liv03","UOG","UogCod = " & UOGSAP)

    desZona = dlookup("DescLiv03","UOG","UogCod = " & UOGSAP).....

    se UOGSAP e' un numero, altrimenti se e' un testo:

    codZona = dlookUp("Liv03","UOG","UogCod = '" & UOGSAP & "'")desZona = dlookup("DescLiv03","UOG","UogCod = '" & UOGSAP & "'")..... Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-03-21T12:20:01+00:00

    Ciao Carlo,

    non ho capito se vuoi effettuare l'aggiornamento nel momento in cui passi al record successivo oppure dopo che hai cambiato il valore del tuo campo.

    Nel caso la variazione debba avvenire dopo la modifica del tuo campo a mio avviso l'evento da scegliere è "Dopo Aggiornamento" del tuo campo

    Nel caso invece la variazione debba avvenire al passaggio del record successivo allora dovresti inserire il tuo codice nell'evento "Prima di Aggiornare" della maschera

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-03-21T12:14:29+00:00

    Sì l'origine dati della maschera è la medesima tb (denominata "Firme") che tento di aggiornare.

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-03-21T12:09:00+00:00

    Ciao Carlo,

    l'origine dati della maschera su quale tabella si basa?

    E' forse la tabella che tenti di aggiornare?

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento