Newsgroup: it.comp.appl.access
Titolo: filtrare casella riepilogo con altra casella di riepilogo

Salve a tutti.
Ho una maschera con una casella di riepilogo dove sono elencate i
numeri fattura che io seleziono per stampare un report.
Ora volevo filtrare questa lista che mi si presenta in base all'anno
(altrimenti bisogna scorrere una lista ogni volta interminabile).
Dato che il numero fattura è in questo formato: 1251/2007, nella query
che alimenta la mascera in questione ho creato un campo con la
funzione Right, così estrapolo l'anno e come criterio ho messo
"[Forms]![Seleziona Fatture Calcolo Provvigioni]![SelezionaAnno]".
A fianco di questa casella di riepilogo, nella stessa maschera ne ho
creata un altra con elenco valori nell'origine riga poi ho inserito i
vari anni di interesse.
Dopodichè in quest'ultima ho messo nell'evento clic un bel
"Me.nomedell'altracasella.Requery".
Pensavo così di filtrare la casella principale invece mi esce vuota.
se nella casella "modifica voci di elenco" metto 2007 come
predefinito, quando apro la meschera c'è il 2007 (tutto bene, cos' lo
vorrei) il problema è che se clicco su un altro anno la casella
principale si svuota (bene ammettiamo che l'anno selezionato non
contenga fatture), ma se clicco di nuovo su 2007 rimane comunque
vuota. Ogni clic che effettuo dopo non ha nessun effetto.
cosa sto sbagliando?
Grazie a tutti. Mauro.

 Mauro.
-- 
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------

 numerico o di tipo testo.
Questo è l'SQL:
SELECT DISTINCT Ordini.NFattura, Ordini.DataConsegna,
Mandatari.RagioneSociale, Right([DataConsegna],4) AS Anno
FROM Ordini INNER JOIN (Mandatari INNER JOIN ([Assortimento Prodotti]
INNER JOIN [Dettaglio Ordine] ON [Assortimento Prodotti].CodProdotto =
[Dettaglio Ordine].Prodotto) ON Mandatari.CodMandatario =
[Assortimento Prodotti].Mandatario) ON Ordini.N°Ordine = [Dettaglio
Ordine].N°Ordine
WHERE (((Right([DataConsegna],4))=[Forms]![Seleziona Fatture Calcolo
Provvigioni]![SelezionaAnno]));
Grazie. Mauro.

Grazie.


 "2005";"2006";"2007";"2008"
Nell'origine riga è scritto "2005";"2006";"2007";"2008" ma non so che
formato è perchè li ho inseriti da maschera\modifica voci elenco e li
ho scritto semplicemente 2005 2006 ecc., nell'origine riga ci sono le
virgolette.
nella finestra proprietà non c'è un campo formato. E' una casella non
associata.
Ciao.

Ciao.


.......
Bene è fatto anche questo.
Però il problema rimane:
se nella casella di riepilogo con gli anni gli do come predefinito
2007, quando apro la maschera mi visualizza tutti i dati del 2007 ma
non appena clicco su un anno qualsiasi (comprso 2007) la casella di
riepilogo 2 mi si svuota e non c'è verso di ripopolarla.
Forse è sbagliato il criterio della query oppure è sbagliato l'evento
sul quale ho messo il requery (o magari è sbagliato proprio il
requery)?
grazie per la pazienza.
ciao, Mauro.

Altolà, sai cosa ho scoperto? Che nell'origine riga, sebbene le avessi
tolte sono tornate tutte le virgolette negli anni.
Come si spiega?

No no, dunque:
tolgo le virgolette ed è ok (nel senso che le virgolette non tornano).
Però se da maschera aggiungo un anno con il click dx\modifica voci di
elenco ecco che le virgolette riappaiono.
Comunque anche senza le virgolette il risultato non cambia.

Ho scoperto che nella casella di riepiogo di selezione anno funziona
se setto la selezione multipla su nesuna.
però così mi obbliga a visualizzare un anno per volta.
Se avessi bisogno di selezionare alcune fatture di un anno ed alcune
altre dell'anno successivo (p.e. ultimi 10 gg di dicembre e primi 10
gg di gennaio) come posso fare?

ciao, Mauro.


gg di gennaio) come posso fare?
Filtrare una casella di riepilogo con la selezione multipla di un'altra 
casella di riepilogo lo puoi ottenere solo creando dinamicamente da VBA il 
codice SQL del codice riga della casella di riepilogo da filtrare nella cui 
WHERE metterai in OR tutti i valori selezionati nella selezione multipla 
della casella di riepilogo degli anni, oppure li userai con l'operatore IN, 
sempre nella WHERE; insomma non č una cosa da risolvere scrivendo in un modo 
particolare i criteri della query da filtrare, ma occore rimboccarsi le mani 
e scrivere qualche riga di bion codice VBA.
Un idea di come creare da VBA un filtro (e quindi la WHERE di una query) in 
base alla selezione multipla di una casella di riepilogo la trovi sul Sito 
Comune (link qui sotto), nella Sezione Reports, nella mia FAQ intitolata 
"4.11 Come si puň filtrare un report in base alla selezione multipla 
effettuata su una casella di riepilogo?".


 e scrivere qualche riga di bion codice VBA.
Ecco proprio VBA è il mio problema!
Mi sono studiato il tuo esempio sul sito comune.
Sono riuscito a modificarlo escludendo la lista nascosta che a me non
serve e funziona.
Però io non devo aprire il report da li e non riesco a integrarlo con
il mio problema.
Ho studiato nell'Help l'ItemSelected, ma non riesco a capire come fare
in maniera di "creare dinamicamente da VBA il
codice SQL del codice riga della casella di riepilogo da filtrare".
Riassumendo io devo "solo" filtrare una casella di riepilogo che
contiene un campo anno e la selezione multipla da un'altra casella di
ripeilogo con una lista valori (gli anni).
Sorry.

P.S. con la selezione multipla anche in quest'ultima.
Grazie.

Sorry.
