|
|
Переходы по записям формы (на следующую - предыдущую - новую…)
Код из примера:
Private Sub cmdGoNext_Click()
Form_Move "Next"
End Sub
Private Sub cmdGoPrevious_Click()
Form_Move "Previous"
End Sub
Private Sub cmdGoToFirst_Click()
Form_Move "First"
End Sub
Private Sub cmdGoToLast_Click()
Form_Move "Last"
End Sub
Private Sub cmdGoToNew_Click()
Form_Move "New"
End Sub
Private Sub Form_Move(sDirection As String)
On Error Resume Next
Select Case sDirection
Case "First"
Me.Recordset.MoveFirst
Case "Previous"
Me.Recordset.MovePrevious
Case "Next"
Me.Recordset.MoveNext
Case "Last"
Me.Recordset.MoveLast
Case "New"
Me.Recordset.AddNew
'DoCmd.GoToRecord , , acNewRec
End Select
Err.Clear
End Sub
Private Sub Form_Current()
Dim l&, bEnabled As Boolean
If Me.Recordset.EOF = False Then
Me.RecordsetClone.MoveLast
l = Me.RecordsetClone.RecordCount
End If
If l > 0 Then bEnabled = True
Me!cmdGoNext.Enabled = bEnabled
Me!cmdGoPrevious.Enabled = bEnabled
Me!cmdGoToFirst.Enabled = bEnabled
Me!cmdGoToLast.Enabled = bEnabled
End Sub

Ещё вариант
Private Sub cmdНаСледующуюЗапись_Click()
On Error GoTo cmdНаСледующуюЗапись_Click_Err
DoCmd.GoToRecord , , acNext
Me!Номенклатура.SetFocus
cmdНаСледующуюЗапись_Click_Bye:
Exit Sub
cmdНаСледующуюЗапись_Click_Err:
If Err.Number = 2105 Then
MsgBox "Переход не возможен!" & vbCrLf & "Bla-Bla-Bla ...", vbCritical, "Ошибка перехода"
GoTo cmdНаСледующуюЗапись_Click_Bye
End If
MsgBox "Ошибка " & Err.Number & vbCrLf & Err.Description & vbCrLf & "в процедуре: cmdНаСледующуюЗапись_Click", vbCritical, "Error in module Form_Приход"
Resume cmdНаСледующуюЗапись_Click_Bye
End Sub

MSA-2003 + MSA-2007 ( 98 kB) Пример
|
|