Passare dato da casella combinata ad istruzione sql select

di mobile75 il
5 risposte
Chiedo un aiuto ma sono interessato ad una spiegazione nell'utilizzo delle parentesi e di come "passare" dati a istruzioni SQL

Nel mio caso particolare devo passare/usare un dato ricavato da una casella combinata ad una istruzione sql (per comodità e rapidità). Ho provato a generare la stringa di comando in questa maniera ma non funziona:

strsql = "UPDATE Tabelladati SET Tabelladati.IDMateriale=CasellaCombinata342.Column(3) WHERE (((Tabelladati.ID)=[Testo404]))"

anche utilizzando parentesi in maniera diversa non raggiungo il risultato, per esempio
... SET Tabelladati.IDMateriale=(CasellaCombinata342.Column(3))
... SET ((Tabelladati.IDMateriale)=(CasellaCombinata342.Column(3)))

Ho provato anche a passare il dato ad una variabile ma niente, è evidente che devo imparare la corretta sintassi.

DatoVariabile = (CasellaCombinata342.Column(3)) oppure DatoVariabile = CLng(CasellaCombinata342.Column(3))
e pertanto la stringa

strsql = "UPDATE Tabelladati SET Tabelladati.IDMateriale=DatoVariabile WHERE (((Tabelladati.ID)=[Testo404]))"

Vorrei capirne bene l'utilizzo.

Grazie per la pazienza.

5 Risposte

  • Non puoi scrivere tutto tra virgolette. C'è una parte costante, ovvero SELECT ... ma i valori contenuti nei controlli sono la parte variabile e vanno concatenati.

    strsql = "UPDATE Tabelladati SET Tabelladati.IDMateriale=" & DatoVariabile & " WHERE Tabelladati.ID= '" & Testo404.Text & "'"
  • Unica soluzione che non ho provato, semplice anche. Grazie.
  • Domanda: ma se la mia condizione è un testo, come devo fare la sintassi, anche qui problema di parentesi perché non riesco?

    strsql = "UPDATE Tabellaformati SET FlagStampa=0 WHERE Stato="0""

    Stato è un formato testo. Devo verificare che valga 0 (testo, non numero)
  • Devi usare i singoli apici non quelli doppi
    '0'
  • Suggerisco di sostituire la proprietà TEXT con la VALUE in vba contrariamente al VB6 è la default property e non genera errore.
Devi accedere o registrarti per scrivere nel forum
5 risposte