Newsgroup: it.comp.appl.access
Titolo: +++AIUTO: filtri su valori multipli

Come faccio ad impostare dei filtri su valori multipli?
(si dirŕ cosě?)
MI SPIEGO MEGLIO CON UN ESEMPIO.
Ho una tabella con il nome DOCUMENTI.
Ho creato una query con il nome QueryDocumenti
Ho creato una maschera con il nome FormDocumenti e inserito i campi nel 
corpo della maschera
La maschera č del tipo "maschere continue"
Sulla intestazione della maschera ho inserito una casella combinata che 
chiamo CasellaTipoDocumento
Nella proprieta origine riga ho inserito il select che fa riferimento ad una 
tabella che mi descrive il tipo di documento:
1:corrispondenza
2:fatture
3:pagamenti
e cosě via
Nella QueryDocumenti ho impostato il criterio al campo TipoDocumento il 
valore della CasellaTipoDocumento
TABELLA: documenti
 id_documento     DATA          TipoDocumento     DESCRIZIONE 
NumeroFORNITORE    VALORE_DOC
118                     14/02/2004   2                            Fattura 
materiali           111                                -33,56
135                     05/01/2004   2                            Fattura 
gasolio             11                                  -1732,8
255                     19/05/2004   2                            Fornitura 
caldaie          0                                   -2912,06
305                     01/04/2004   2                            Conto 
acqua ufficio      204                               -33,47
218                     14/02/2004   1                            Lettera di 
assunzione    0
235                     05/01/2004   1                            Estratto 
conto              0
432                     19/05/2004   1                            Fornitura 
caldaie          15                                 -2912,06
308                     01/04/2004   2                            Conto 
acqua ufficio     204                               -33,47
518                     14/02/2004   3                            Busta paga 
0
535                     05/01/2004   3                            Pagata 
fattura n.118    111                                -33.56
532                     19/05/2004   3                            Pagata 
fattura n.432    15                                  -2912,06
508                     01/04/2004   3                            Pagata 
assicurazione   204                               -155.56
605                     01/04/2004   2                            Rapporto 
n.1              0
018                     14/02/2004   1                            Rapporto 
n.2              0
155                     05/01/2004   1                            Rapporto 
n.2              0
725                     19/05/2004   1                            Rapporto 
n.4              0
Selezionando sulla maschera la casella CasellaTipoDocumento il valore 1 
mediante la funzione requery, sulla maschera mi compariranno
solo i record con valore 1 al campo TipoDocumento. Cosě con gli altri 
valori.
Avendo necessitŕ di impostare un filtro non a valore univoco come sopra 
descritto, ma a piů valori come debbo fare?
Ovvero se io volessi filtrare i record della tabella documenti che hanno 
come valore sia 1 che 2 che 3 al campo Tipo Documento come bisognerebbe 
impostare la casella ed il relativo criterio nella query?
Resto in attesa e ringrazio anticipatamente.

 Resto in attesa e ringrazio anticipatamente.
Nell'intestazione della maschera inserisci tante caselle combinate quanti
sono i vlaori che vuoi scegliere, quindi nei criteri della query metti in OR
i valori delle caselle combinate.
In alternativa inserisci nell'intestazione della maschera una casella di
riepilogo con possibilità di selezione multipla più un pulsante di comando
al posto della casella combinata, quindi elimina la query di selezione
parametrica ed usa direttamente la tabella come origine record della
maschera con visualizzazione a maschere continue; infine, a fronte
dell'evento "Su clic" del pulsante di comando, filtra direttamente la
maschera  impostando le proprietà Filter e FilterOn della maschera in base
alle scelte multiple o semplici fatte con la casella di riepilogo.
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

Roberto da casa ha scritto:

Che potrebbe essere questa soluzione:
Private Sub Elenco0_Click()
' Elenco0 casella di riepilogo a selezione multipla
Dim ctlList As Control, varItem As Variant
Dim StrSql1 As String
     ' Restituisce la variabile dell'oggetto Control che punta alla 
casella di riepilogo.
     Set ctlList = Me.Elenco0
     ' Enumera le voci selezionate.
     StrSql1 = "WHERE "
     For Each varItem In ctlList.ItemsSelected
         ' Stampa il valore della colonna associata.
         Select Case Len(StrSql1)
             Case 6
                 StrSql1 = StrSql1 & "Campo_Tabella = " & 
ctlList.ItemData(varItem)
             Case Else
                 StrSql1 = StrSql1 & " OR Campo_Tabella = " & 
ctlList.ItemData(varItem)
         End Select
     Next varItem
     If Len(StrSql1) = 6 Then StrSql1 = ""
     MsgBox StrSql1
End Sub
Spero di esserti stato di aiuto .....

 alle scelte multiple o semplici fatte con la casella di riepilogo.
Scusami ti chiedo di essere più chiaro. Magari con un 
esempio.<<<<<<<<<<<<<<<<<<<<<


 ha scritto nel messaggio
news:4374cc8b$0$27599$4faf...@reader1.news.tin.it...

A me sicuramente no, non so se sei stato di aiuto a dbM ;-)


 esempio.<<<<<<<<<<<<<<<<<<<<<
Visto che hai deciso di continuare a filtrare la maschera con una query di
selezione parametrica: devi realizzare la mia prima soluzione, ovvero
inserire nell'intestazione della maschera due o più caselle combinate i cui
valori filtreranno in OR la query.
Onestamente non vedo qualse esmpio devo farti.


 Onestamente non vedo qualse esmpio devo farti.
Il numero di condizioni non è limitato a due.
potrebbero essere infinite.
Bisognerebbe filtrare la query attraverso una box a selezione multipla, ma 
non so
come si fa.

 ha scritto nel messaggio
news:38Ddf.35856$65.10...@twister1.libero.it...

Una query di selezione parametrica registrata non può essere filtra con la
selezione multipla di una casella di riepilogo, a meno che invece di una
query registrata non gestisci dinamicamente da VBA una stringa SQL e poi con
essa aprire un recordset.
Penso che allora la cosa migliore sarebbe la seconda mia ipotesi, ovvero
filtrare la maschera da VBA impostando adeguatamente le sue proprietà Filter
e FilterOn in base alla selezione multipla di una casella di riepilogo ed
eliminando ogni filtro della query.
Un esempio di questa tecnica la trovi sul Sito Comune (link qui sotto),
nella Sezione Reports, nella FAQ intitolata "4.11 Come si può filtrare un
report in base alla selezione multipla effettuata su una casella di
riepilogo?". In quella FAQ con la selezione multipla si filtra un report,
comunque poche sono le modifiche da fare per filtrare una maschera invece
che un report.


 ha scritto nel messaggio 
news:ciJdf.36432$65.11...@twister1.libero.it...

OK provo così.