Newsgroup: it.comp.appl.access
Titolo: Filtro sulla maschera .....

Ciao a tutti,
la seguente query unisce 2 file (articoli e fornitori) ed è sorgente di una
maschera continua dove elenco tutti gli articoli compresa la ragione sociale
del fornitore.
SELECT [an_articoli].[art_cd_articolo], [an_articoli].[art_des_articolo],
[an_articoli].[art_prezzo], [an_articoli].[art_iva],
[an_articoli].[art_cliente], [an_articoli].[art_no_fatt],
[an_clienti].[ragione_ft]
FROM an_articoli RIGHT JOIN an_clienti ON
[an_articoli].[art_cliente]=[an_clienti].[codice_ft]
WHERE ((([an_articoli].[art_no_fatt])<>1))
ORDER BY [an_articoli].[art_cd_articolo], [an_clienti].[ragione_ft];
Ho creato nella testata della maschera una casella di controllo che contiene
l'elenco delle ragioni sociali, se ne scelgo una e clikko su command button
vorrei applicare il filtro alla maschera continua, ovvero che mi faccia
vedere gli articoli solo del fornitore scelto.
Il codice è il seguente :
If chk_fil_tutti = -1 And Not IsNull(cmb_flt_rag_ft) Then
Me.Filter = Me.ragione_ft = Me.cmb_flt_rag_ft.Value
Me.FilterOn = True
Me.Refresh
End If
Ma quando clikko non filtra. Dove sbaglio ???
Grazie mille a tutti.
Ronny
--------------------------------
Inviato via 
http://usenet.libero.it

 news:194Z130Z244Z250Y...@usenet.libero.it...
[...]

[...]
    Potresti rendere automatico l'aggiornamento della sottomaschera, ovvero
senza bisogno di scrivere codice, aggiungendo alla query dei parametri che
abbiano lo stesso nome dei controlli della maschera. Nell'esempio che segue
ho assegnato alla casella di controllo il nome psnTutti ed alla casella
combinata il nome pilFornitore (dove p = parametro, sn = tipo Si'/No, il =
intero lungo):
PARAMETERS [pilFornitore] Long, [psnTutti] Bit;
SELECT ...
FROM ...
WHERE ( ... ) AND (([an_clienti].[ragione_ft]=[pilFornitore]) AND
([psnTutti]=True))
ORDER BY ...;
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

 PARAMETERS [pilFornitore] Long, [psnTutti] Bit;
    Oops!... Scusa. Leggi:
        PARAMETERS [pilFornitore] Text (255), [psnTutti] Bit;



Per prima cosa non riesco a capire cosa significa che hai "una casella di
controllo che contiene l'elenco delle ragioni sociali"; immagino che tu
voglia dire che hai una casella combinata chiamata cmb_flt_rag_ft, e non una
casella di controllo.
Per seconda cosa non capisco cosa ci fai con un "command button"; il codice
VBA per filtrare la maschera lo puoi tranquillamente generare a fronte
dell'evento "Dopo aggiornamento" della casella combinata.
Per terza cosa non č che Access solo non filtra, ma penso che ti segnali un
errore di sintassi sulla riga relativa a Me.Filter.
Se la casella combinata ha una SOLA colonna nella quale visualizzi la
ragione sociale dei fornitori (altra cosa sarebbe se la casella combinata
avesse piů colonne e la sua colonna associata non fosse quella relativa alla
ragione sociale).
Prova a sostituire:
Me.Filter = Me.ragione_ft = Me.cmb_flt_rag_ft.Value
con:
Me.Filter = "Me.ragione_ft =" & Chr$(34) & _
Me.cmb_flt_rag_ft & Chr$(34)
inoltre elimina
Me.Refresh
che in questo contesto non serve a niente.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Me.cmb_flt_rag_ft & Chr$(34)
Provato, adesso mi esce una videata dove mi chiede di inserire
Me.ragione_ft, se lo inserisco a mano (es. pippo srl) il corpo della
maschera non cambia, mi fa vedere tutti i records ma mi mette la scritta
"filtrati".
E' sempre un problema di sintassi ???
Grazie mille



Ha ragione: prova cosě:
Me.Filter = "ragione_ft =" & Chr$(34) & _
Me!cmb_flt_rag_ft & Chr$(34)


 ---------------------------------------------
SEMPLICEMENTE MITICO!
Grazie mille
