Newsgroup: it.comp.appl.access
Titolo: query da codice

ciao todos,
ho bisogno di un piccolo aiuto/suggerimento
sono in una form senza alcun collegamento con alcuna tabella/query/etc
tramite vba, faccio varie cose in questa form... una di queste dovrebbe
essere controllare un valore in una tabella e se e' giusto, inserire una
stringa all'interno dello stesso record... 
dim id as string
id = dlookup("id","tabella","user='pippo'")
if id <> null then
  ' aggiorna tabella
  dim sql as string
  sql = "update tabella set campo='Y' where id=" & id
else
 msgbox "errore",vbOkOnly,"Info"
lo so e' banale... ma come faccio ad eseguire l'sql?
grazie a tutti./
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
DoCmd.RunSQL "update tabella set campo='Y' where id=" & id

 ha scritto nel messaggio
news:ebvc9e$s0b$1...@news.newsland.it...

 docmd.runsql = "update...... "
Ciao
Paolo

  msgbox "errore",vbOkOnly,"Info"
DoCmd.RunSQL sql_cmd
dove č meglio che sostituisci con il mio sql_cmd il tuo sql, parola chiave
da lasciar stare
Antonio

 pubinn ha scritto:


interessante.. ma mi da un bel data type mismatch .....
la stringa sql e' scritta bene... non ci sono errori
anche perche' e' molto banale e piccola.. quindi difficile contenitore di
errori...
idee? suggerimenti??
grazie ancora.



prova così (cambiando id con me.tuocampoinmaschera)
Dim strSQl As String
strSQl = "UPDATE Tabella SET Tabella.campo = ""y"" WHERE
(((Tabella.id)='" & id & "'));"
DoCmd.SetWarnings False
DoCmd.RunSQL strSQl
DoCmd.SetWarnings True

 grazie a tutti./
Prima di tutto io userei il metodo Execute al posto di RunSQL per
evitare i Warning
poi mi pare realmente banale...!
Dim sSQL
sSQL="UPDATE T1 SET [Campo]='Y' WHERE [id]=" & id & ";"
Currentdb.Execute sSQL,dbFailOnError
Ho messo le parentesi Quadre non sapendo i nomi corretti, se ci sono
spazzi
possono dare anomalie...!
Devi chiarire però il FieldType del Campo che devi modificare...!!!
Ovviamente da come lo hai scritto è di tipo TESTO.
@Alex

 DoCmd.SetWarnings True
provato...
ma niente da fare, continua a dare 
Run-time error '3464': Data Type Mistmatch in criteria expression
il debug si ferma sulla riga DoCmd.RunSQL strSQL
altre idee?
quando ci sono questi errori del piffero... mi passa la voglia di
programmare..


 ha scritto nel messaggio
news:ec190d$hse$1...@news.newsland.it...

Scusa una domanda:
cosa vuol dire:  Tabella.campo = ""y"" ?
Ciao,
Paolo

 cosa vuol dire:  Tabella.campo = ""y"" ?
significa che al posto di tabella devo mettere il nome della mia tabella,
e cosi' anche per il campo....
le doppie virgolette sono equivalenti a tabella.campo="y" 
nel caso in cui hai una stringa tipo: str = "tabella.campo=y" 
e vuoi racchiudere y tra virgoletti anziche' apici.. metti la doppia
virgoletta.. (i hope so)


 > > il debug si ferma sulla riga DoCmd.RunSQL strSQL
finalmente ho risolto...
l'sql che accetta e' questo:
strSQL = "UPDATE tblUsers SET tblUsers.logged = 'Y' WHERE
tblUsers.idUsers=" & id
hmm... non e' molto standard compliant ...ma vabbe'... funzia...
grazie del prezioso aiuto a tutti..


 ha scritto nel messaggio
news:ec1c4q$p0e$1...@news.newsland.it...

Scusami ancora, hai provato a fare la query ?
Poi puoi copiarti il codice, cosě č un po' difficile capire cosa vuoi fare
esattamente,
Ciao
Paolo

 grazie del prezioso aiuto a tutti..
Secondo me non hai ancora risolto, nel senso che non hai capito dove
stava il problema, e sinceramente nemmeno io...
Questo è l'originale del 1° post:
sql = "update tabella set campo='Y' where id=" & id
ed a mio avviso è esattamente identico a quello che dichiari essere
funzionante.....
provati da me funzionano entrambi.......
Saluti
@Alex

 sql = "update tabella set campo='Y' where id=" & id
.l'unica differenza sta nell'uso esteso dei nomi di campo.. con la
specifica del nome tabella... ma, ripeto, non si capisce perche' in un
senso funzia nell'altro no.. visto che i due sql sono equivalenti..
bah...
chi lo capisce e' bravo.. ;)
