Newsgroup: it.comp.appl.access
Titolo: Intercettare la rimozione di un filtro in una maschera

Ciao a tutti,
Ho un fastidioso problema che non riesco a risolvere con la gestione dei
filtri su di una maschera continua.
Dovendo applicare più filtri sulla maschera mi si è presentata la necessità
di stampare solo i record che venivano filtrati, cosa che ho risolto
mettendo nell DoCmd.OpenReport la condizione Me.Filter.
Fin qui tutto sembrava funzionare bene fin quando mi è capitato di rimuovere
un filtro appena immesso e di stampare i record visualizzati, con mio sommo
stupore la stampa è stata eseguita con i filtri che avevo precedentemente
eliminato con il rimuovi filtro/ordina.
Andando a verificare il perchè mi sono reso conto che i filtri applicati
alla maschera una volta aggiunti non si riescono a cancellare semplicemente
rimuovendoli ma bisogna eliminarli manualmente Esempio Me.Filter = "" .
Visto che la stampa mi utilizza il filtro della maschera che deve essere
sempre quello corrente, pensavo di poter intercettare la rimozione del
filtro in modo da poter azzerare contemporaneamente il Me.Filter ma non sono
riuscito proprio a trovare una soluzione.
Qualcuno ha idea di come si possa fare o come risolvere il suddetto quesito?
Grazie a tutti.
Andrea
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:217Z133Z143Z112...@usenet.libero.it...

La soluzione potrebbe risiedere nell'utilizzo del metodo ShowAllRecords
(vedi help)...
Ciao.
--
Sergio MAZZA


Grazie per il suggerimento.
Ho provato con lo ShowAllRecords ma non da risultati utili.
Sono riuscito ad intervenire confrontando i filtri precedenti con quello
appena inserito o tolto ma io devo comunque cercare di intercettare il
rimuovi filtro/ordina prima che ciò avvenga in modo da intervenire sui
filtri via codice ed eventualmente modificarli o annullare l'azione rimuovi
filtro/ordina.
Hai altri suggerimenti?
Grazie e ciao


 Andrea
Io non ho capito se il filtro applicato lo devi rimuovere o no e a che ti
serve intercettare via codice la sua rimozione.
Forse intendi dire che se io applico un filtro:
es.
citta = "Roma"
poi ne applico un altro per raffinare la selezione:
es.
citta = "Roma" e "cognome = MAZZA"
tu a questo punto, se ho intuito bene, vorresti tornare indietro di un passo
rimuovendo solo l'ultimo filtro applicato: "cognome = MAZZA".
E' cosě?
Comunque la form ha un evento "su applica filtro" che puoi gestire cosě:
es.
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
Dim messaggio As String
Select Case ApplyType
    Case 1
        messaggio = "Vuoi applicare il filtro (" & Me.Filter & ")?"
    Case 0
        messaggio = "Vuoi rimuovere il filtro (" & Me.Filter & ")?"
    Case Else
End Select
If MsgBox(messaggio & vbCrLf & "ApplyType: " & ApplyType, vbYesNo, "fitro
maschera") = vbNo Then
    Cancel = True
End If
End Sub
Ciao.
--
Sergio MAZZA

 ha
scritto:

Grazie comunque per la risposta ma io cercavo solo di intercettare la
rimozione dei filtri per applicare il filtro dato alla maschera in apertura
evitando di visualizare tutti i record che altrimenti l'azione rimuovi
filtro/ordina effettua.
Comunque sono riuscito a risolverlo confrontando il filtro precedente con
quello attuale nella Form_ApplyFilter e se risulta identico annullo l'azione
applicando il filtro iniziale.
Grazie comunque per la disponibilitŕ
Ciao Andrea
