Newsgroup: it.comp.appl.access
Titolo: Problema Docmq.RunSQL

Ve lo piazzo qua il codice maledetto che mi stà facendo impazzire!!!
uffff
un'unica tabella con nome "tabella mq 1"
i campi sono tutti esistenti e scritti correttamente a parte "cod id"
(l'ultimo) che deve essere inserito dall'utente..
il punto è che questo l'ho copiato direttamente dalla query come me
l'ha scritta costruendola con la struttura di access, mentre in VBA
non ne vuol sapere de funzionare! uff
dove sbaglio?  Devo dichiarare qualcosa di strano?
DoCmd.RunSQL "SELECT Left([CODICE FUNZIONE],6) AS Codice,
Max(Right([CODICE FUNZIONE],2)) AS Valore FROM [tabella mq 1] GROUP BY
Left([CODICE FUNZIONE],6) HAVING (((Left([CODICE FUNZIONE],6))=[cod
id]));"
fly


codice = inputbox ("Inserisci il codice")
if codice <> "" then
DoCmd.RunSQL "SELECT Left([CODICE FUNZIONE],6) AS Codice,
Max(Right([CODICE FUNZIONE],2)) AS Valore FROM [tabella mq 1] GROUP BY
Left([CODICE FUNZIONE],6) HAVING (((Left([CODICE FUNZIONE],6))=" & codice
& "));"
Antonio

Antonio
c'avevo già provato niente da fare, mi dà:
"Un'azione EseguiSQL richiede un argomento costituito da un'istruzione
SQL"
P.S. Access 2000, VB 6.086 + SP

 HAVING (((Left([CODICE FUNZIONE],6))=[cod id]));"
Non hai spiegato bene dove ti da l'errore, (il msg box dell'errore dovrebbe
specificare il punto dell'SQL che non va).
Comuqnue, come ti ha detto Biso funziona se cod id e' numerico altrimenti
devi aggiungere gli apicetti.
Percio':
 HAVING (((Left([CODICE FUNZIONE],6))='" & codid & "'));"
dove codid sara' una variabile definita da te.
Ma aggiungerei che 'sto HAVING messo li' e' proprio brutto....usa WHERE ci
guadagnerai in velocita'.
Saluti.
Luciano

 HAVING (((Left([CODICE FUNZIONE],6))='" & codid & "'));"
Ho provato anche così.. 
codid assume la forma "PG01.1" che è definita come stringa (dato che
viene immessa da inputbox)
Stesso errore di prima, nessun punto di riferimento.
Non vaaaaaaa son proprio un imbranato ;)
Help plz :)
Fly

 Stesso errore di prima, nessun punto di riferimento.
Ho riletto l'errore che ti da...sembra che non riceva proprio la stringa.
Prova ad aggiungere le parentesi prima e dopo, cosi':
Docmd.runsql(strsql)
Saluti.
Luciano

Saluti.
ciao... 
grazie per la pasienza.. io la sto iniziando a perdere... :(

Flyzone <fly...@NOSPAMMEflyonthenet.it> wrote in message
g2s3buk765h1gh21k...@4ax.com...

Ma tu scrivi proprio così?
DoCmd.RunSQL "SELECT Left([CODICE FUNZIONE],6) AS Codice,
Max(Right([CODICE FUNZIONE],2)) AS Valore FROM [tabella mq 1] GROUP BY
Left([CODICE FUNZIONE],6) HAVING (((Left([CODICE FUNZIONE],6))=" & codice
& "));"
Cioè, ci metti i _ per andare a capo o costruisci la stringa magari così
sql_cmd = "SELECT Left([CODICE FUNZIONE],6) AS Codice, "
sql_cmd = sql_cmd & "Max(Right([CODICE FUNZIONE],2)) AS Valore "
ecc.
docmd.runsql sql_cmd
Antonio

Cioè, ci metti i _ per andare a capo o costruisci la stringa magari così
ho provato sia con i _ sia senza... stesso problema, non sò più cosa
inventarmi.....
o risolvo una query così.. oppure l'unica alternativa è riuscire a
modificare il campo dei criteri di una query già costruita... 
(perchè non riesco manco a costruirla dato che non mi tiene conto
dell'oggetto Database...)  :-(
Fly