Newsgroup: it.comp.appl.access
Titolo: Query con in parametro proveniente da maschera

Sto creando una query semplicissima con l'istruzione in.
in questo modo funziona:
SELECT appalti.centrodicosto, appalti.dal, 
appalti.al
, appalti.IMPORTO, 
appalti.categoria
FROM appalti
WHERE (((appalti.categoria) In ("cse","cre")));
ma se cerco di parametrizzarla in funzione di un controllo contenuto in una 
maschera non funziona:
(nella controllo scelta_categoria1 c'č esattamente la stringa di cui sopra : 
"cse";"cre" ma senza le parentesi)
SELECT appalti.centrodicosto, appalti.dal, 
appalti.al
, appalti.IMPORTO, 
appalti.categoria
FROM appalti
WHERE (((appalti.categoria) In 
([Forms]![frm_stampa_appalti]![scelta_categoria1])));
ho provato a mettere anche le parentesi ma non funzia.

 ho provato a mettere anche le parentesi ma non funzia.
Ma il controllo scelta_categoria1 cos'č? Una combo?
Tra le seguenti scelte, cosa visualizza esattamente il controllo 
scelta_categoria1?
1) "cse", "cre"
2) "cse"; "cre"
3) cse, cre
4) cse; cre
5) "cse, cre"
6) "cse; cre"
7) - altro -
-- 
PBsoft di Gabriele Bertolucci
www.pbsoft.it

 ha scritto nel messaggio 
news:43feed72$0$5984$4faf...@reader2.news.tin.it...

ehehe ... č una semplice casella di testo che popolo al click di una combo 
da cui effettuo la selezione delle categorie.
non funzia la 1), la 2) ... le altre ora le provo.

 non funzia la 1), la 2) ... le altre ora le provo.
Frena.
Non volevo suggerirti di provare le 6 alternative che ti ho riportato.
Stavo chiedendoti cosa c'è nel controllo scelta_categoria1.
Ora che mi rispondi, però, non mi è chiara una cosa: tu fai la selezione di 
una categoria mediante una casella di testo nella quale si deve digitare 
manualmente la specifica della categoria?


 ha scritto nel messaggio 
news:43fef032$0$5990$4faf...@reader2.news.tin.it...

Allora, nella form ho messo una listbox (prima ho detto combo e ho 
sbagliato)
al click della combo, porto il valore nella casella scelta_categoria1 dove 
si compone la stringa delle diverse categorie che possono essere 
selezionate.
alla fine apro la query tramite docmd.openquery (e mi sa che è qui 
l'inghippo perchè forse non sente il parametro)
la query ha come sintassi quello che ho scritto in precedenza.
Risultato: nella textbox scelta_categoria1 c'è del testo (i campi sono tutti 
testo) . finora ho provato tutto parentesi, esterne, doppi apici per parola, 
doppi apici per stringa intera, virgola, punto e virgola ... ma nulla!


risolto in questo modo ...  mettendo mano ad un esempio di alex. Era un
problema di apici e di query.
Ricreandola riesce a valutare bene la stringa che gli passo, perchè
probabilmente forzo la conversione in testo.
   Dim vItm As Variant
   Dim stWhat As String
   Dim stCriteria As String
   Dim stSQL As String
   Dim sql As String
   'query originale ma con doppi apici
   sql = "SELECT appalti.* From appalti WHERE (((appalti.categoria) In
('CSE','cre'))) OR (((appalti.categoria1) In ('CSE','cre'))) OR
(((appalti.categoria2) In ('CSE','cre')));"
   Dim loqd As DAO.QueryDef
      'Me.scelta_categoria1 = CStr(Left$(stWhat, Len(stWhat) -
Len(stCriteria)))
        stSQL = " SELECT appalti.* FROM appalti" & " WHERE categoria IN (" &
CStr(Me.scelta_categoria1) & ")"
   stSQL = stSQL & " or appalti.categoria1 IN (" &
CStr(Me.scelta_categoria1) & ")"
   stSQL = stSQL & " or appalti.categoria2 IN (" &
CStr(Me.scelta_categoria1) & ");"
   Set loqd = currentdb.QueryDefs("anita_appalti")
   loqd.sql = stSQL
   loqd.Close
DoEvents
DoCmd.Minimize
DoCmd.OpenQuery "anita_appalti", acViewNormal, acReadOnly