Newsgroup: it.comp.appl.access
Titolo: Filtrare con due caselle combinate

Ho un problema di poter filtrare in una maschera continua con due filtri da
due caselle combinate.
Con una casella riesco a filtrare un campo voluto, ma non riesco con due.
In sostanza oltre al passaggio sottoriportato, che gira con una query di
selezione con valori univoci, vorrei scegliere anche l'anno.
Cioe oltre a sceglire l'allevatore frà tutti i record vari inseriti, vorrei
scegliere per quei record appoggiati a detto allevatore anchhe l'annata
interessata.
*****************
Private Sub FiltraAllevatore_AfterUpdate()
DoCmd.ApplyFilter , "[DESTINAZIONE]='" & [FiltraAllevatore] & "'"
End Sub
*************
Un ringraziamento a chi potrà rispondermi.
Valter

 ha scritto nel messaggio
news:Pe4X7.1469$8D5....@news2.tin.it...

Hai affrontato il problema nel modo più complesso.
Invece di realizzare il filtro in quel modo perchè non crei una stringa di
filtro e l'aggiorni solo su evento After Update:
Dim strFiltro1, strFiltro2 as string
Private Sub FiltraAllevatore_AfterUpdate()
  If Me.ComboFiltraAllevatore<>"" then
    strFiltro1="[DESTINAZIONE]='" & Me.ComboFiltraAllevatore & "' AND "
  Else
    strFiltro1=""
  End if
  Filtra
End Sub
Private Sub FiltraData_AfterUpdate()
  If Me.ComboFiltraData<>"" then
    strFiltro2="[Data]=#" & Me.ComboFiltraData & "#"
  Else
    strFiltro2=""
  End if
  Filtra
End Sub
Private Sub Filtra()
  Dim strFiltroTot as string
  If strFiltro2<>"" then
     strFiltroTOT=strFiltro1 &  strFiltro2
  Else
     strFiltroTOT=Right$(strFiltro1,Len(strFiltro1)-5)
  End if
  Me.FilterOn=true
  Me.Filter=strFiltroTOT
End sub
--
@Alex
*--------------------------------------------------------------------------*
Alessandro B.
Sito Comune      :   
http://www.sitocomune.com
Sito Personale   :   
http://digilander.iol.it/ik2zok/
*--------------------------------------------------------------------------*

 ha scritto nel messaggio
news:UR6X7.559$uJ4....@twister1.libero.it...

Ringraziandoti della risposta e dell'esempio ho provato a farlo però mi dà
un errore che non riesco a risolverlo.
L'errore è il seguente:
Errore di sintassi (operatore mancante) nell'espressione della query
'[ALLEVATORE]='BIANCHI'AND'.
e si ferma alla penultima riga del private Filtra.
Dove sto sbagliando Ti ringrazio. Ti mando anche i tre passaggi.
Private Sub FiltraAllevatore_AfterUpdate()
If Me.FiltraAllevatore <> "" Then
strFiltro1 = "[ALLEVATORE]='" & Me.FiltraAllevatore & "'AND"
Else
strFiltro1 = ""
End If
Filtra
End Sub
Private Sub FiltraAnno_AfterUpdate()
If Me.FiltraAnno <> "" Then
strFiltro2 = "[ANNO]=#" & Me.FiltraAnno & "#"
Else
strFiltro2 = ""
End If
Filtra
End Sub
Private Sub Filtra()
Dim strFiltroTOT As String
If strFiltro2 <> "" Then
strFiltroTOT = strFiltro1 & strFiltro2
Else
strFiltroTOT = Right$(strFiltro1, Len(strFiltro1))
End If
Me.FilterOn = True
Me.Filter = strFiltroTOT      (nel DEBUG che lancia il programma si ferma in
questa riga )
End Sub

>>strFiltroTOT = Right$(strFiltro1, Len(strFiltro1))
con questa:
strFiltro1 = "[ALLEVATORE]='" & Me.FiltraAllevatore & "' AND "
 (Ho solo aggiunto gli spazzi prima e dopo AND alla fine...!
strFiltroTOT = Right$(strFiltro1, Len(strFiltro1)-5)
(Serve per togliere la Stringa AND alla fine del Filtro nel caso sia l'unica
condizione)
Ciao


 ha scritto nel messaggio
news:iSrX7.1624$%B.6...@twister2.libero.it...

Ringraziandoti dell'attenzione, in questi passaggi ho imparato cose nuove,
ho fatto come mi hai scritto pero' l'errore persiste.
Mi sono accorto, passando col mouse sopra i passaggi, che se c'è il -5
posizionandomi sopra il Me.Filter mancano le prime 5 lettere del campo
"allevatore" e se levo l'AND (pero non può agganciarmi il secondo filtro) il
primo filtro funziona.
Sperando di averti fatto capire l'inghippo mi auguro che possa darmi
l'ultimo passaggio e non disturbarti ancora

 l'ultimo passaggio e non disturbarti ancora
In realtà sono proprio DORMIENTE...!
Hai ragione, ma perdonami il fatto che il codice che ti posto è
frutto solo di applicazione mnemonica, non l'ho provato....!
L'istruzione che come hai notato tronca di 5 caratteri serve proprio
ad eliminare " AND " nel caso non ci sia il secondo criterio.
Il problema che invece di usare Left ho usato Right(che non va bene)
Quindi ricapitoliamo...!
Nel codice assicurati che AND sia preceduto e seguito dallo spazio
così: 
strFiltro1 = "[ALLEVATORE]='" & Me.FiltraAllevatore & "' AND "
Poi l'istruzione di TRONCAMENTO sarà:
strFiltroTOT = Left$(strFiltro1, len(stfiltro1)-5) 
Spero bene, altrimenti la provo e ti riposto il tutto....!
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:fe5e663389f13d5ac7...@mygate.mailgate.org...

Ti ringrazio della Tua cortese pazienza ma l'errore che ti segnalvao
persitste pertanto ti mando i tre passaggi per vedere dove sbaglio.
Grazie della tua attenzione
Valter
Private Sub FiltraAllevatore_AfterUpdate()
     If Me.FiltraAllevatore <> "" Then
        strFiltro1 = "[ALLEVATORE]= " & Me.[FiltraAllevatore] & "' AND "
      Else
        strFiltro1 = ""
     End If
 Filtra
End Sub
Private Sub FiltraAnno_AfterUpdate()
     If Me.FiltraAnno <> "" Then
        strFiltro2 = "[ANNO]=#" & Me.FiltraAnno & "#"
     Else
        strFiltro2 = ""
     End If
  Filtra
End Sub
Private Sub Filtra()
Dim strFiltroTOT As String
    If strFiltro2 <> "" Then
        strFiltroTOT = strFiltro1 & strFiltro2
     Else
        strFiltroTOT = Left$(strFiltro1, Len(strFiltro1) - 5)
     End If
    Me.FilterOn = True
    Me.Filter = strFiltroTOT
End Sub

         strFiltro1 = "[ALLEVATORE]= " & Me.[FiltraAllevatore] & "' AND "
Dopo l'uguale ci vuole l'apice
"[ALLEVATORE]= '" & Me.[FiltraAllevatore] & "' AND "
Antonio

 ha scritto nel messaggio
news:k1LX7.3366$%B.12...@twister2.libero.it...

Grazie Antonio ed Alex un passo l'ho fatto pero' adesso mi da' l'errore
seguente:
Errore di sintassi nella data nell'espressione della query' [ANNO]=#2000#'.
Scusatemi ma vi chiedo oramai l'ultimo sostegno dell'anno perchè oramai sono
fuso
Grazie Valter

 ha scritto nel messaggio
news:WbLX7.5231$8D5.2...@news2.tin.it...

Sempre i soliti errori di disattenzione....!
Se la data da filtrare non è campo data non servono i caratteri "#"
 Private Sub FiltraAnno_AfterUpdate()
 If Me.FiltraAnno <> "" Then
 strFiltro2 = "[ANNO]=" & Me.FiltraAnno
 Else
 strFiltro2 = ""
 End If
 Filtra
 End Sub
--


 ha scritto nel messaggio
news:pcNX7.3657$SE3.1...@twister1.libero.it...

Ho messo le parentesi quadre su FiltraAnno e funziona
Grazie
e Auguri