Newsgroup: it.comp.appl.access
Titolo: Casella di riepilogo

In una frm ho una casella di riepilogo e la vorrei utilizzare per filtrare i
dati con una qry.
Vorrei utilizzare la selezione multipla di una casella di riepilogo per
passare i parametri ad una qry .
Fino ad ora ho provato questo(vecchio post di Roberto) che funziona
benissimo.
Sub AllSelectedData()
Dim ctl As Control
    Dim varItm As Variant
    Dim intI As Integer
    For Each varItm In Me.lstAnaliti.ItemsSelected
    Debug.Print Me!lstAnaliti.Column(0, varItm)
Next varItm
End Sub
Il problema è che non riesco a passare i parametri alla qry nel senso che
sul criterio
del campo da me scelto per il filtro dovrei passare una stringa del tipo 27
OR 28 OR 35 etc etc
Il mio approccio è quello di scrivere ad ogni For Each  il valore restituito
da Me!lstAnaliti.Column(0, varItm)
su una txtbox e metterci in mezzo gli OR.Quindi dire alla qry di andarsi a
leggere il valore della txt cioè
sul criterio del campo una cosa del tipo [Forms]![MiaForm]![txtStringa].
Probabilmente sbaglio approccio.Qualcuno a qualche consiglio?
Grazie
Ciao
Giuseppe

 Giuseppe
Immagino che la query di selezione parametrica che cerchi di realizzare la
userai poi come origine record di un report o di una maschera.
Se cosě č, la cosa migliore č basare la maschera/report direttamente sulla
tabella (eliminando cosě la query di selezione parametrica) e poi filtrare
direttamente il report/maschera con la selezione multipla della casella di
riepilogo.
Un esempio di come puoi fare ciň lo trovi nel Sito Comune (link qui sotto)
nella Sezione Reports, nella FAQ intitolata "Come si puň filtrare un report
in base alla selezione multipla effettuata su una casella di riepilogo?".
Se invece di un report devi filtrare una maschera la cosa non cambia molto:
nella routine che trovi sul Sito Comune dovrai solo sostituire la OpenReport
con una OpenForm.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Giuseppe
--


 Roberto
Penso di aver capito il problema e chiedo se qualcuno ha una soluzione.
Premessa:
In una frm ho due caselle di riepilogo.La prima casella di riepilogo è
quella dove
l'utente potrà effettuare una selezione multipla e la sua origine è una tbl
con chiave primaria tipo
contatore.La seconda casella di riepilogo è quella dove l'utente vedrà i
risultati filtrati ed è alimentata
da una qry a cui passo parametri multipli tipo 28 Or 30 Or 10 etc etc che
derivano dalla prima casella
combinata.
Seguendo i suggerimenti di Roberto la mia routine è questa:
Le due caselle di riepilogo si chiamano lstAnaliti(su cui viene effettuata
la selezione multipla) e lstPrepara(la cui origine dati
è la qry a cui passo i parametri multipli)
Option Compare Database
Option Explicit
Dim db As DAO.Database
Dim rs As DAO.Recordset
Sub AllSelectedData()
    Dim ctl As Control
    Dim varItm As Variant
    Dim strAnalitiSelezionati As String
    Dim strSQL As String
    For Each varItm In Me.lstAnaliti.ItemsSelected
    strAnalitiSelezionati = strAnalitiSelezionati & Me!lstAnaliti.Column(0,
varItm) & " Or "
    Next varItm
'Così levo l'ultimo Or dalla stringa
    strAnalitiSelezionati = Left$(strAnalitiSelezionati,
Len(strAnalitiSelezionati) - 4)
'Così passo i parametri multipli alla qry
 strSQL = ("SELECT * FROM qryPreparaConteggio WHERE IDMateriale =" &
strAnalitiSelezionati & "")
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL)
lstPrepara.RowSource = strSQL
lstPrepara.Requery
End Sub
Il problema è che finchè seleziono un elemento tutto ok ma se seleziono più
di un elemento allora
la casella di riepilogo lstPrepara (quella dove vedo i risultati) mi fa
rivedere tutti i record.Cioè è
come se non si aggiornasse.
Qualcuno ha qualche suggerimento?
Ciao
Giuseppe

 ha scritto nel messaggio
news:GQi4a.196147$0v.54...@news1.tin.it...

Non ho capito bene a cosa ti serva aprire il recordset rs o cosa sia la
variabile ctl, quindi salto tutte le righe di codice VBA che li riguarda;
per il resto prova così:
Dim varItm As Variant
Dim strAnalitiSelezionati As String
Dim strSQL As String
For Each varItm In Me.lstAnaliti.ItemsSelected
strAnalitiSelezionati = strAnalitiSelezionati & Me!lstAnaliti.Column(0,
varItm) & ","
Next varItm
strAnalitiSelezionati = Left$(strAnalitiSelezionati,
Len(strAnalitiSelezionati) - 1)
strSQL = "SELECT * FROM qryPreparaConteggio WHERE IDMateriale IN (" &
strAnalitiSelezionati & ");"
lstPrepara.RowSource = strSQL
lstPrepara.Requery
Dovrebbe funzionare.


 Giuseppe


 Roberto
Hai perfettamente ragione è che mi ero incaponito sul codice.
Il NG cmq aiuta anche a capire queste cose cioè a centrare i problemi.
Ciao ed alla prossima
Giuseppe