MyTetra Share
Делитесь знаниями!
Переходы по записям формы (на следующую - предыдущую - новую…)
Время создания: 16.03.2019 23:43
Раздел: !Закладки - VBA - Access - msa.polarcom.ru - 05 Формы
Запись: xintrea/mytetra_db_adgaver_new/master/base/1531972210bhcax2ymlh/text.html на raw.githubusercontent.com

Переходы по записям формы (на следующую - предыдущую - новую…)


Код из примера:

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)

'Переходы по записям формы по аргументу: sDirection

'--------------------------------------------------------------------------

'https://msdn.microsoft.com/en-us/library/office/jj250039.aspx

'--------------------------------------------------------------------------

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 , , acPrevious 'Переход на предыдущую запись формы

DoCmd.GoToRecord , , acNext 'Переход на следующую запись формы


'DoCmd.GoToRecord , , acNewRec 'Переход на новую запись


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) Пример

Прикрепленные файлы:
Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования