Newsgroup: it.comp.appl.access
Titolo: Filtro su maschera e risultato nullo

Buonasera a tutti,
sto cercando di applicare un filtro alla maschera principale del mio database,
ma sto avendo qualche difficolta'.
Come mi hanno consigliato un paio di settimane fa Sandro e Gaspare (ancora
grazie per l'aiuto sull'altro problema!) mi sono studiata la proprieta'
recordset, ho capito come funziona, ma ho ancora qualche difficolta'
nell'applicazione pratica...
Questo è il codice che uso per filtrare la maschera:
  Private Sub Filtro_AfterUpdate()
    Me.FilterOn = False 	'annulla eventuali filtri precedenti
    If Me.Dirty Then	'salva il record se hai fatto modifiche
    Me.Dirty = False
    End If
    Dim rs As Object
    Set rs = Me.RecordsetClone 	'memorizza il record corrente
    Me.Filter = "[Title] Like " & Chr(34) & "*" & Me![Filtro] & "*" & Chr(34)
    Me.FilterOn = True
    If Me.RecordsetClone.EOF Then	'se nessun record corrisponde
    MsgBox "Non ci sono risultati utili"
    DoCmd.RunCommand acCmdUndo	'annulla il filtro
    DoCmd.ShowAllRecords
End If
End Sub
Cosi' com'e' funziona perfettamente, ma quando vado a togliere il filtro - nel
caso il risultato della ricerca sia nullo - mi restituisce sempre il primo
record.
Se cambio il codice in questo modo:
da
    DoCmd.RunCommand acCmdUndo
    DoCmd.ShowAllRecords
a
Me.filter = ""
Me.filter = vbnullstring
Mi restitutisce un nuovo record e non riesco a vedere gli altri records senza
aprire e chiudere la maschera.
Ho provato con bookmark, ma mi da' errore...
Come posso fare per ritornare all'ultimo record usato prima di applicare il
filtro, invece che al primo?
Molte grazie in anticipo
Erika
-- 
Per rispondermi... Togli "nospam"
To send me an email... take out "nospam"

 Questo č il codice che uso per filtrare la maschera:

Io dopo il Test che fai del RecordsetClone farei cosě:
If Me.RecordsetClone.EOF
Me.FilterOn=Not(Me.RecordsetClone.EOF)
Ma per memorizzare il Record prima di tutto l'ambaradan
devi memorizzare il BookMark del RecordsetClone
Dim varBook    as Variant
varBook=Me.RecordsetClone.Bookmark
'quě metti tutti i controlli e se EOF per ripristinare
Me.Bookmark=varBook
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

Me.Bookmark=varBook
Grazie per l'aiuto!
Se modifico come suggerisci tu, mi riporta all'ultimo record, invece che al
primo, ma cmq non al precedente. Boh...
Grazie comunque!!




io la cambierei cosi:
Private Sub Filtro_AfterUpdate()
Dim OldFiltro as string
Dim RecordCorrente as Variant
    Oldfiltro=Me.Filter
     Me.FilterOn = False 'annulla eventuali filtri precedenti
   If Me.Dirty Then 'salva il record se hai fatto modifiche
     Me.Dirty = False
   End If
     Dim rs As Object
    RecordCorrente=Me.recordsetclone.bookmark
     Me.Filter = "[Title] Like " & Chr(34) & "*" & Me![Filtro] & "*" &
Chr(34)
     Me.FilterOn = True
 If Me.RecordsetClone.EOF Then 'se nessun record corrisponde
     MsgBox "Non ci sono risultati utili"
     DoCmd.RunCommand acCmdremoveFilterSort
     Me.Filter=OldFiltro
     Me.FilterOn = True
     Me.RecordsetClone.Bookmark=RecordCorrente
 End If
 End Sub
Prova e fai sapere
bye :o)

bye :o)
Provato e... non funge. Mi restituisce il solito record nullo, nemmeno il primo.
Bah ^_^
Grazie, comunque!!
