|
|
Переходы по записям формы (на следующую - предыдущую - новую…)
Код из примера:
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 acDataForm, Me.Name, 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 acDataForm, Me.Name, 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) Пример
|
|