>ma non mi filtra nulla
Scusatemi se mi intrometto 
Ma devi filtrare oppure trovare il primo record che risponde ai requisiti senza filtrare nulla ???????
poi devi gestire anche il caso che uno o entrambi i controlli di ricerca siano Null ........
poi l'evento deve essere lanciato da AfterUpdate di entrambi i controlli .........
Prova a vedere se ti funziona cosi( nell'ipotesi che devi trovare il primo record senza filtrare )
se invece non ti funziona postaci il DB come consiglia Alex 
Private Sub txtDatFat_AfterUpdate()
Call Ricerca
End Sub
Private Sub txtNumFat_AfterUpdate()
Call Ricerca
End Sub
Private Sub Ricerca()
If Len(Me!txtNumFat.Value & Me!txtDatFat.Value & "") = 0 Then Exit Sub
Dim rs As DAO.Recordset
Dim strCriteria As String
strCriteria = ""
If Len(Me!txtNumFat.Value & "") > 0.5 Then
strCriteria = strCriteria & "numfatt=" & Me!txtNumFat.Value & " "
strCriteria = strCriteria & "And "
End If
If Len(Me!txtDatFat.Value & "") > 0.5 Then
strCriteria = strCriteria & "datafatt=#" & Me!txtDatFat.Value & "# "
strCriteria = strCriteria & "And "
End If
strCriteria = Left(strCriteria, Len(strCriteria) - 5)
Set rs = Me.Recordset.Clone
rs.FindFirst strCriteria
Me.Bookmark = rs.Bookmark
' mi sta venendo il dubbio se bisogna chiudere il Recordset ???
' direi he è meglio chiuderlo
rs.Close
Set rs = Nothing
End Sub
Dove nella tabella hai i campi:
- numfatt ------ numerico
- datafatt ------ data/ora
e nella maschera hai i controlli:
- txtNumFat
- txtDatFat