Sintassi corretta per query di aggiornamento

di il
5 risposte

Sintassi corretta per query di aggiornamento

Salve a tutti!

Ho un piccolo problema con una Query di aggiornamento che si avvia da VBA
Il codice è il seguente:
DoCmd.RunSQL "UPDATE Riparazioni SET Riparazioni.StatusPagamento = 'ATTESA PAGAMENTO', Riparazioni.IDPagamento = 123 WHERE (((Riparazioni.Filtro)=True))"
Funziona molto bene ma io vorrei che al posto del "123" metto come valore il nome di una Variabile di tipo Long che si chiama Pippo, però se scrivo:
DoCmd.RunSQL "UPDATE Riparazioni SET Riparazioni.StatusPagamento = 'ATTESA PAGAMENTO', Riparazioni.IDPagamento = Pippo WHERE (((Riparazioni.Filtro)=True))"
Ricevo un errore.
Quale sarebbe la corretta sintassi con l'uso di una variabile?

Grazie a tutti per l'aiuto

5 Risposte

  • Re: Sintassi corretta per query di aggiornamento

    kris9951 ha scritto:


    Salve a tutti!

    Ho un piccolo problema con una Query di aggiornamento che si avvia da VBA
    Il codice è il seguente:
    DoCmd.RunSQL "UPDATE Riparazioni SET Riparazioni.StatusPagamento = 'ATTESA PAGAMENTO', Riparazioni.IDPagamento = 123 WHERE (((Riparazioni.Filtro)=True))"
    Funziona molto bene ma io vorrei che al posto del "123" metto come valore il nome di una Variabile di tipo Long che si chiama Pippo, però se scrivo:
    DoCmd.RunSQL "UPDATE Riparazioni SET Riparazioni.StatusPagamento = 'ATTESA PAGAMENTO', Riparazioni.IDPagamento = Pippo WHERE (((Riparazioni.Filtro)=True))"
    Ricevo un errore.
    Quale sarebbe la corretta sintassi con l'uso di una variabile?

    Grazie a tutti per l'aiuto
    ciao,
    passa la variabile a una function che potresti chiamare pippo_function e poi la passi come "pippo_function()"

    una soluzione che uso io è questa... ma sicuramente chi è più bravo di me ne ha di migliori
  • Re: Sintassi corretta per query di aggiornamento

    Grazie mille!
    Ci provo

    La cosa che mi da rabbia è che se io scrivo:
    DoCmd.RunSQL "UPDATE Riparazioni SET Riparazioni.StatusPagamento = 'ATTESA PAGAMENTO', Riparazioni.IDPagamento = " & Pippo
    e quindi senza:
    WHERE (((Riparazioni.Filtro)=True))
    la Query funziona, quindi deve esserci un modo per scrivere la parte che manca dopo la variabile Pippo...
  • Re: Sintassi corretta per query di aggiornamento

    Prova qui
    http://www.baldyweb.com/BuildSQL.ht

    Oppure estrapolo da miei vecchi appunti presi da un sito che non riesco più a ritrovare

    WHERE. Come scrivere le varie sintassi a seconda del tipo di dati o variabile
    Con una stringa fissa
    "WHERE tblStaff.[Office] = 'Paris';"
    Con una variabile di tipo String
    Dim strA As String
    ---
    "WHERE tblStaff.[Office] = '" & strA & "';"
    
    Con una variabile di tipo Numerico
    Dim lngIDTitolo As Long
    lngIDTitolo = DMax("[IDTitolo]", "Titoli")
    DoCmd.RunSQL "INSERT INTO IG ( Genere ) " & _
        "SELECT GeneriTitoli.[Genere] " & _
        "FROM GeneriTitoli " & _
        "WHERE GeneriTitoli.[IDTitolo] = " & lngIDTitolo
  • Re: Sintassi corretta per query di aggiornamento

    ... & Pippo & " WHERE Riparazioni.Filtro = -1"
  • Re: Sintassi corretta per query di aggiornamento

    Grazie mille a tutti

    ... & Pippo & " WHERE Riparazioni.Filtro = -1"
    Funziona!!
Devi accedere o registrarti per scrivere nel forum
5 risposte