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

Ciao NG, ben ritrovati.
Anno nuovo problema nuovo: questa volta parliamo di caselle di riepilogo.
Ho questa benedetta casella di riepilogo inserita nel pič di pagina di una
maschera. (per intenderci dati e casella di riepilogo convivono nella stessa
maschera)
Facendo una selezione singola o multipla e premendo un pulsante, dovrebbero
essere visualizzati nel corpo della maschera i dati in dettaglio
corrispondenti agli ordini selezionati..
qui di seguito il codice da me utilizzato
'****************************
Private Sub FiltroButton_Click()
Dim ctlElenco As Control, varElemento As Variant
    ' Restituisce una variabile di oggetto Control che punta alla casella di
riepilogo.
    Set ctlElenco = Forms!Ordini!Elenco75
    ' Scorre gli elementi selezionati.
    For Each varElemento In ctlElenco.ItemsSelected
       DoCmd.ApplyFilter , "N_Ordine = " & ctlElenco.ItemData(varElemento)
'<<<< Sicuramente il problema sta qui.. ma non riesco a venirne a capo!!!
    Next varElemento
End Sub
'****************************
A sto punto spero di essermi capito, confido in voi ;)
Ciauz
Marco

 Marco
ti applica il filtro solo sull'ultimo elemento selezionato
il filtro va fuori della for 
apply filter , "N_ordine in (" & stringachecontienelalistaordini & ")"
dovrebbe
--
a.cara 
Togli qualcosa dall'email

 dovrebbe
Il fatto è che mi da errore anche in questo caso (proprietà o metodo non
supportato dall'oggetto)
Marco

 > >

Non sono un vero e proprio esperto del metodo ApplyFilter poiche' quando
devo filtrare agisco sempre attraverso la proprieta' "Filter" (e' un
vizio lo so).
Da quello che scrivi sembra quasi che sia sbagliato il comando cmq
questo dovrebbe essere
l'aspetto finale (parto dal presupposto che l'attributo ordine sia
alfanumerico)
docmd.applyfilter , "N_ordine in ('ord1','ord2','ordn')"


 Ho questa benedetta casella di riepilogo inserita nel piè di pagina di una

Se la tabella che è origine record della maschera si chiama Ordini ed ha una
struttura simile a questa:
ID                Contatore e chiave primaria
N_Ordine    Numerico
IdProdotto   Numerico
Quantità       Numerico
ecc. ecc.
Se la casella di riepilogo si chiama Elenco, ha una sola colonna ed ha come
origine riga il seguente codice SQL:
SELECT DISTINCT Ordini.N_Ordine
FROM Ordini
ORDER BY Ordini.N_Ordine;
Se la casella di riepilogo ha la proprietà Selezione multipla impostata ad
Estesa.
A fronte dell'evento "Su clic" del pulsante di comando genera il seguente
codice VBA:
    Dim strLista As String
    Dim strCriteri As String
    Dim varItem As Variant
    If Me!Elenco.ItemsSelected.Count = 0 Then Exit Sub
    For Each varItem In Me!Elenco.ItemsSelected
        strLista = strLista & _
            Me!Elenco.Column(0, varItem) & ","
    Next varItem
    strLista = Left$(strLista, Len(strLista) - 1)
    strCriteri = "[N_Ordine] IN (" & strLista & ")"
    DoCmd.ApplyFilter , strCriteri
    Dim Cont As Integer
    For Cont = 0 To Me!Elenco.ListCount - 1
        Me!Elenco.Selected(Cont) = False
    Next Cont
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Ciao Marco

 >     Next varItem
Ciaooo ;)))))))))
E mille grazie
Marco

 a.cara
Ciao e 1K grasssie
Marco


Questo significa che il campo N_Ordine non è numerico come avevo indicato io
ma è di tipo testo, pertanto il codice VBA va modificato in questa maniera:
    Dim strLista As String
    Dim strCriteri As String
    Dim varItem As Variant
    If Me!Elenco.ItemsSelected.Count = 0 Then Exit Sub
    For Each varItem In Me!Elenco.ItemsSelected
        strLista = strLista & Chr$(34) & _
        Me!Elenco.Column(0, varItem) & _
        Chr$(34) & ","
    Next varItem
    strLista = Left$(strLista, Len(strLista) - 1)
    strCriteri = "[N_Ordine] IN (" & strLista & ")"
    DoCmd.ApplyFilter , strCriteri
    Dim Cont As Integer
    For Cont = 0 To Me!Elenco.ListCount - 1
        Me!Elenco.Selected(Cont) = False
    Next Cont
--
