Query di aggiornamento (UPDATE) di più campi della stessa tabella.

Anonimo
2019-01-03T20:12:42+00:00

Buonasera a tutti.

Ho bisogno del vostro aiuto per poter completare la sottoelencata query che mi permetta ( per ora riesco a farlo su di un campo della tabella) di poter variare i dati di più campi della stessa tabella.

Con il codice sottostante, ho provato a ripetere lo stesso codice cambiando i campi sui quali apportare le modifiche e mi va in errore, penso che si aggiorni un campo alla volta e non tutti quelli che desidero.

Mi aiutate a creare un codice che mi permetta in un colpo solo di modificare i dati di più campi della stessa tabella?

Questo è il codice che sono riuscito a creare per un solo campo

Sub UpdateCampi()

    Dim dbs As Database

    Dim qdf As QueryDef

    On Error GoTo ErrorHandler

        Set dbs = CurrentDb

        dbs.Execute "UPDATE tblAnagrafica2 " _

            & "SET LUOGOTABANAG = ''"

        dbs.Close

        ''dbs.Execute "UPDATE tblAnagrafica2 " _

            '& "SET ISEETBLANAGR = 1.500"

        'dbs.Close

ErrorHandler_Exit:

  Exit Sub

ErrorHandler:

  MsgBox "Error " & Err.Number & " " & Chr(13) & Err.Description

  Resume ErrorHandler_Exit

 Resume Next

    End Sub

Ciao Nicola.

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
2019-01-04T11:53:33+00:00

Probabilmente nel copia/incolla c'è stata un po' di confusione tra apici e doppi apici. Riproviamo:


dbs.execute "UPDATE tblAnagrafica2 " _

    & "SET LUOGOTABANAG = '', " _

    & "ISEETBLANAGR = 1500"


nella parte evidenziata vanno usati 2 apici singoli mentre nel resto del testo vanno usati i doppi apici.

Per le due domande:

  • l'update, fatto in questo modo, riguarda tutti i campi compresi nell'istruzione. Non puoi sapere quale, separatamente, ha fallito. Inoltre visto che gestisci tu l'update, perchè dovrebbe fallire? In alternativa dovresti gestire l'apertura di un recordset e il ciclo all'interno del recordset. Questa pratica tuttavia è sconsigliabile in quanto notevolmente più lenta del metodo Execute.
  • nel caso di campi testo devi racchiudere tra apici il valore che passi. Ad esempio, riprendendo il precedente update:

dbs.execute "UPDATE tblAnagrafica2 " _

    & "SET LUOGOTABANAG = 'PROVA', " _

    & "ISEETBLANAGR = 1500"


David

La risposta è stata utile?

3 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2019-01-04T12:00:24+00:00

    Grazie David, perfetto, ora va benissimo. Spiegazione molto intuitiva e professionale, te ne sono grato. Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-01-04T11:30:11+00:00

    Ciao David, buongiorno e grazie per il tuo cortese aiuto.

    Ho fatto come mi hai consigliato ma ottengo il messaggiio di errore che allego.

    Ti chiedo pure la gentilezza di potermi spiegare come faccio ad aver un messaggio che mi avvisi del mancato aggiornamento di  una o più colonne?

    Inoltre se ho dei campi testo come devo racchiuderli tra apici nel codice?

    Ti rinnovo il mio ringraziamento per l'aiuto che mi dai(date).

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-01-04T07:45:03+00:00

    Ciao Nicola,

    separa i vari campi da aggiornare con una virgola in questo modo:


    dbs.Execute "UPDATE tblAnagrafica2 " _

                & "SET LUOGOTABANAG = '', " _

                & "ISEETBLANAGR = 1.500"


    David

    La risposta è stata utile?

    0 commenti Nessun commento