Newsgroup: it.comp.appl.access
Titolo: problema con filtro in maschera

ho una maschera associata ad una query in cui un campo ha il seguente 
criterio
Like "*" & [forms]![archiviobranilistato]![CasellaCombinata170] & "*"
appena entro nella maschera e metto qualcosa in  CasellaCombinata170
il filtro funziona mfacendo un requery mentre se richiamo una funzione che
imposta un altro filtro sulla maschera poi riutilizzando il campo 
CasellaCombinata170 non riottengo i record di prima
la funzione richiamata č questa mi sapete aiutare a capire perchč?
Function CostruisciFiltro() As String
    CostruisciFiltro = ""
    filtro = ""
    If (Forms![archiviobranilistato]![CasellaCombinata193] <> "") And 
(IsNull(Forms![archiviobranilistato]![CasellaCombinata193]) = False) Then
        CostruisciFiltro = "[GENERE] = 
forms![archiviobranilistato]![CasellaCombinata193]"
        filtro = filtro & "  GENERE = " & 
Forms![archiviobranilistato]![CasellaCombinata193]
    End If
    If (Forms![archiviobranilistato]![CasellaCombinata222] <> "") And 
(IsNull(Forms![archiviobranilistato]![CasellaCombinata222]) = False) Then
        If CostruisciFiltro = "" Then
            CostruisciFiltro = CostruisciFiltro & "[AUTORE] = 
Forms![archiviobranilistato]![CasellaCombinata222]"
        Else
            CostruisciFiltro = CostruisciFiltro & " and [AUTORE] = 
Forms![archiviobranilistato]![CasellaCombinata222]"
        End If
        filtro = filtro & "  AUTORE = " & 
Forms![archiviobranilistato]![CasellaCombinata222]
    End If
    If filtro = "" Then
        filtro = "LISTATO COMPLETO BRANI."
    End If
End Function

 la funzione richiamata è questa mi sapete aiutare a capire perchè?

Ciao Simba883,
come prima cosa mi permetto di darti un suggerimento (non richiesto!)
sull'uso dei nomi degli elementi di una maschera:
Se invece di CasellaCombnata193 o CasellaCombinata222 che sono i nomi che da
in automatico Access, rinominassi questi controlli con un nome un po' più
significativo, il codice sarebbe molto più semplice da leggere; questo te lo
dico non tanto nell'interesse di chi ti risponde ma  perchè ti accorgerai tu
stesso che se fra 6 mesi riguardi quel codice ci vorrà un po' prima di
riuscire a ricostruire cosa faceva...
Veniamo invece al tuo problema.
La funzione  sopra imposta il filtro della maschera e quindi ti seleziona un
sottoinsieme di record. La casellaCombinata170 è invece il parametro della
query che è  usata come origine dati della maschera, se tu fai un requery
dopo che hai scelto qualcosa nella casella combinata, il programma riesegue
la query che ti darebbe lo stesso risultato di prima se non ci fosse
impostato il filtro, essendoci impostato il filtro il risultato che ottieni
è un ulteriore sottoinsieme.
Sostanzialmente se vuoi che la scelta di un elemento in casellaCombinata170,
ritrovi lo stesso risultato della prima volta devi prima della requery
azzerare il filtro. (Me.filter = "")
Spero di averti aiutato a capire il problema e perdonami ancora per il
suggerimento iniziale....
Saluti
Cinzia


ti ringrazio per la delucidazione ma non resico a risolvere il problema, ho 
cambiato però strada anzichè mettere tale criterio da solo nella query lo 
incluso nella funzione filtro in questo ma non mi funziona, nella query 
c'era esattamente questa stringa qui sotto
stringa query --> Like "*" & 
[forms]![archiviobranilistato]![CasellaCombinata170] & "*"
--- CODE -----
Function CostruisciFiltro() As String
    CostruisciFiltro = ""
    filtro = ""
    If (Forms![archiviobranilistato]![CasellaCombinata193] <> "") And 
(IsNull(Forms![archiviobranilistato]![CasellaCombinata193]) = False) Then
        CostruisciFiltro = "[GENERE] = 
forms![archiviobranilistato]![CasellaCombinata193]"
        filtro = filtro & "  GENERE = " & 
Forms![archiviobranilistato]![CasellaCombinata193]
    End If
   If (Forms![archiviobranilistato]![CasellaCombinata170] <> "") And 
(IsNull(Forms![archiviobranilistato]![CasellaCombinata170]) = False) Then
        If CostruisciFiltro = "" Then
            CostruisciFiltro = CostruisciFiltro & "[TITOLO] = Like " * " & 
[forms]![archiviobranilistato]![CasellaCombinata170] & " * ""
        Else
            CostruisciFiltro = CostruisciFiltro & " and [TITOLO] = Like " * 
" & [forms]![archiviobranilistato]![CasellaCombinata170] & " * ""
        End If
        filtro = filtro & "  TITOLO = " & 
Forms![archiviobranilistato]![CasellaCombinata170]
    End If
end function

 ha scritto nel messaggio
news:cj3jil$6t6$1...@lacerta.tiscalinet.it...

Dal codice mi sembra checi sia un problema di apici o doppi apici che devono
 racchiudere il testo da cercare  prova così
 Function CostruisciFiltro() As String
     CostruisciFiltro = ""
    filtro = ""
    If (Forms![archiviobranilistato]![CasellaCombinata193] <> "") And
(IsNull(Forms![archiviobranilistato]![CasellaCombinata193]) = False) Then
       CostruisciFiltro = "[GENERE] =
forms![archiviobranilistato]![CasellaCombinata193]"
       filtro = filtro & "  GENERE = " &
Forms![archiviobranilistato]![CasellaCombinata193]
   End If
   If (Forms![archiviobranilistato]![CasellaCombinata170] <> "") And
(IsNull(Forms![archiviobranilistato]![CasellaCombinata170]) = False) Then
    If CostruisciFiltro = "" Then
           CostruisciFiltro = CostruisciFiltro & "[TITOLO] = Like '* " &
[forms]![archiviobranilistato]![CasellaCombinata170] & " * '"
       Else
         CostruisciFiltro = CostruisciFiltro & " and [TITOLO] = Like ' *  "
& [forms]![archiviobranilistato]![CasellaCombinata170] & " * '"
     End If
      filtro = filtro & "  TITOLO = " &
Forms![archiviobranilistato]![CasellaCombinata170]
  End If
 end function
Non mi è però chiaro come usi questa funzione.
Dici che non funziona, ma ottieni un errore oppure non trova quello che
dovrebbe trovare?
Qualche informazione in più non guasterebbe!
Cinzia