Newsgroup: it.comp.lang.visual-basic
Titolo: Update con visual basic 6 e ADO su Access

Ciao a tutti, 
sto provando ad aggiornare un campo di una tabella in access con un valore che ottengo da un recordset. 
Si genera l'errore: Syntax error in UPDATE statement. 
Ma dov'è l'errore di sintassi? 
  While rs.EOF = False 
       MyConn.Execute ("UPDATE ASSN SET ASSN.assnActHrs =" & rs("ActHr") & _
                                 "  WHERE (((ASSN.assnID)=316))") 
 
       rs.MoveNext 
 
   Wend 
Grazie
-- 
bresso 
------------------------------------------------------------------------
View this thread: 
http://www.itsistemi.net/viewtopic-718441.html
Inviato via 
http://www.itsistemi.net

                                  "  WHERE (((ASSN.assnID)=316))") 
Cos'è rs("ActHr") ?
Immagino tu intenda:
rs.fields.item("ActHr").Value
Però lo concateni con una stringa.
Sei sicuro che sia di tipo Stringa?
Se non lo è, sei consapevole che avviene una conversione implicita?
E, se è un numerico o una data, sei sicuro che la conversione implicita 
avvenga secondo le impostazioni adeguate per la sintassi richiesta dal 
tuo db (Access)?
Siccome la conversione implicita è CStr, supponendo che ActHr sia un 
numerico, tu stai scrivendo (ma per risparmiare quattro caratteri nel 
codice alla fine si vanno a scrivere le porcherie):
MyConn.Execute ("UPDATE ASSN SET ASSN.assnActHrs =" & 
CStr(rs.fields.item("ActHr").Value) & _
                                  "  WHERE (((ASSN.assnID)=316))")
E' più chiaro, così, dov'è l'errore?
Ciao
Alberto
-- 
Si è visto di meglio,
ma si è scopato di peggio,
qualche volta a pago
e non erano neanche sempre donne
[Paolo]

 E' più chiaro, così, dov'è l'errore?
E' lo stesso che ho fatto io ieri sera. :-)
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
Se i tempi non chiedono la tua parte migliore, inventa altri tempi. 
(Baolian, libro II, vv. 16-17)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 E' lo stesso che ho fatto io ieri sera. :-)
Ma no, dai...
Tu quoque...
E dire che tu lavori con .Net, dove le conversioni implicite sono 
ancora più sbagliate che in VB6...
Comunque, è la solita solfa. Se ci si abitua, proprio come forma 
mentale, a visualizzare il tipo di ogni elemento che compare nella riga 
di codice, salta subito all'occhio quando serve una conversione.
E a questo punto si attiva la sub di 'scelta della funzione di 
conversione', considerando chi sono gli attori, ossia l'utente (che 
vuole formattazioni umane e locali, e che scrive con formattazioni più 
o meno umane e con formati più o meno locali), variabili da codice (di 
cui dovremmo sapere tutto), e il dbms (con cui in generale si dialoga 
in modalità delocalizzata).
Quando invece questo processo di esplicitazione della funzione di 
conversione viene riservato 'ai casi impegnativi', inevitabilmente 
qualcosa si perde, e l'individuazione del problema risulta più 
complessa.
Se l'OP avesse avuto l'abitudine di scrivere le cose come io le ho 
tradotte, avrebbe individuato istantaneamente che c'era un CStr.


 in modalità delocalizzata).
Effettivamente, con il codice sottostante le cose sono migliorate di
parecchio:
dim ci as new CultureInfo("")
csng(datarow.item("pippo")).ToString(ci)
