ciao ManuelePD,
ho estratto il codice che segue da una classe specifica realizzata per la gestione customizzata di pulsanti.
Prova a vedere se riesci a adattarla al tuo scenario....servono solo minime modifiche.
imposta i command buttons nella mail form e personalizza i nomi dei controlli e della sottomaschera con quelli reali, vedi parti in grassetto.
Option Compare Database
Option Explicit
Private Sub cmdForw_Click()
On Error Resume Next
With Me.tuaSottomaschera.Form.RecordsetClone
.Bookmark = Me.tuaSottomaschera.Form.Bookmark
.MoveNext
Me.tuaSottomaschera.Form.Bookmark = .Bookmark
End With
With Me
.cmdPrev.Enabled = Not isEOF_BOF(frm:=Me.tuaSottomaschera.Form, boolMove:=0)
.cmdForw.Enabled = Not isEOF_BOF(frm:=Me.tuaSottomaschera.Form, boolMove:=-1)
End With
End Sub
Private Sub cmdPrev_Click()
On Error Resume Next
With Me.tuaSottomaschera.Form.RecordsetClone
.Bookmark = Me.tuaSottomaschera.Form.Bookmark
.MovePrevious
Me.tuaSottomaschera.Form.Bookmark = .Bookmark
End With
With Me
.cmdPrev.Enabled = Not isEOF_BOF(frm:=Me.tuaSottomaschera.Form, boolMove:=0)
.cmdForw.Enabled = Not isEOF_BOF(frm:=Me.tuaSottomaschera.Form, boolMove:=-1)
End With
End Sub
Private Sub Form_Current()
With Me
.cmdPrev.Enabled = Not isEOF_BOF(frm:=Me.tuaSottomaschera.Form, boolMove:=0)
.cmdForw.Enabled = Not isEOF_BOF(frm:=Me.tuaSottomaschera.Form, boolMove:=-1)
End With
End Sub
Private Function isEOF_BOF(ByVal frm As Access.Form, _
ByVal boolMove As Boolean) As Boolean
Dim bool As Boolean
Dim rst As DAO.Recordset
Set rst = frm.RecordsetClone
With rst
.Bookmark = frm.Bookmark
Select Case boolMove
Case 0
.MovePrevious
bool = .BOF
Case -1
.MoveNext
bool = .EOF
End Select
.Bookmark = frm.Bookmark
End With
isEOF_BOF = bool
End Function
ciao, Sandro.