Newsgroup: it.comp.appl.access
Titolo: Stringa SQL mi restituisce un valore numerico e non di testo

Salve a tutti,
Alessandro tempo fa mi aveva suggerito una procedura per passare ad una
query più valori di una casella di riepilogo a selezione multipla.
Questo è il codice:
Private Sub Comando56_Click()
Dim strCriterio As String
Dim varItem As Variant
For Each varItem In Me.elnloc.ItemsSelected
strCriterio = strCriterio & "'" & varItem & "',"
Next
strCriterio = Mid$(strCriterio, 1, Len(strCriterio) - 1)
strsql = "SELECT* FROM ANAGRAFICA WHERE [localita] IN (" & strCriterio & ")"
CurrentDb.QueryDefs(Query1).SQL = strsql
End Sub
Il problema è che la stringa cher si viene a creare riporta il numero
dell'Item è non il testo (es. invece di Rossi, mi appare 12 e così via) di
conseguenza quando cerca di passare i paramteri alla query mi da errore.
Cosa posso fare per ovviare a questo problema?
Grazie
Massimo Pallavicini

Next
Prova cosě:
For Each varItem In Me.elnloc.ItemsSelected
strCriterio = strCriterio & "'" & elnloc.columns(nTuaColonna,varItem)
& "',"
Next
dove nTuaColonna č l'indice della colonna nella quale č contenuto il
valore da ricercare nella tabella (ATTENZIONE: gli indici partono da
zero, quindi la prima colonna ha indice 0, la seconda 1 ...)

"VT @ Work" <V...@Work.it> ha scritto nel messaggio
news:4509001d...@firewall.regione.toscana.it...

Ora mi restituisce correttamente i valori ma comunque mi da sempre errore di
run time 3265, elemento non trovato in questo insieme .....?!!?


L'errore si verifica durante il ciclo di creazione della stringa,
oppure durante l'esecuzione dell'istruzione SQL ?

VT @ Work ha scritto:


Si verifica durante l'esecuzione dell'istruzione SQL, ovvero su questa
riga di comando:
CurrentDb.QueryDefs(Query1).SQL = strsql
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

CurrentDb.QueryDefs(Query1).SQL = strsql
Quindi il problema è da cercare nella stringa SQL generata.
Per verificare l'errore:
- esegui il codice in modalità debug
- visualizza il contenuto della stringa SQL
- apri un nuovo query
- click sul pulsante SQL in alto a sinistra nella toolbar
- copia/incolla il contenuto della stringa SQL ed esegui il query
Si verificherà l'errore, ed il cursore verrà posizionato in un punto dell'istruzione SQL oltre il quale c'è il problema
che impedisce l'esecuzione. Oltre non vuole dire "immediatamente dopo": il cursore si posiziona nel primo punto oltre il
quale l'istruzione SQL non può essere più interpretata in maniera corretta.
Vincenzo Turturro
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com/
---------------------------------------------
E quello di it.comp.as400
http://www.faq400.com/
---------------------------------------------

> >run time 3265, elemento non trovato in questo insieme .....?!!?
Ora che ci penso: "mi dà sempre errore" vuole dire che te lo dava anche prima della modifica ?
Però la query funziona ("mi restituisce correttamente i valori") ?
C'è qualcosa che non quadra ...


 ha scritto nel messaggio 
news:p00jg2ttsbfgccoeb...@4ax.com...

Vincenzo, l'errore me lo dava e me lo da sempre nella stessa riga di 
comando.
Adesso provo a fare le prove come hai detto tu, poi ti faccio sapere. 

 C'è qualcosa che non quadra ...
Ho sbagliato a scrivere: ovviamente la query non funziona ........ ma la 
stringa che si crea è corretta.
In poche parole la stringa SQl che si crea è corretta ma poi quando è ora di 
passare i parametri alla query mi da l'errore..

passare i parametri alla query mi da l'errore..
Non metterti a ridere ...
verifica che la colonna [localita] sia presente nella tabella
Anagrafica (per caso non è che si chiama località ?)
In alternativa:
costruisci manualmente la query con l'interfaccia QBE, quindi guarda
l'istruzione SQL che viene generata e confrontala con quella generata
da codice.