在表单上记录导航

时间:2017-11-18 08:09:21

标签: ms-access access-vba

所以我的任务是创建一个跟踪数据库&我有一个让我发疯的问题。

我创建了一个输入表单,为了便于使用,我需要创建自定义导航按钮,我已经完成了这个并且它们工作正常。 我已经在当前事件中添加了代码,以便在第一条记录/最后一条记录时禁用按钮 - 再次这样可以正常工作。

这是我遇到困难的地方,一旦我禁用内置导航按钮,它就会禁用我创建的自定义按钮。如果我删除当前的事件代码,它们会再次起作用,但不是我想要的。

我很感激您提供的任何帮助,因为我还是新手学习Access&我相信这是一个简单的解决方案。我做得不对的东西 - 但我无法弄清楚,我已将下面的代码包括在内。

提前感谢您的协助。

Option Compare Database
Option Explicit

Private Sub cmdBack_Click()

    On Error Resume Next

    DoCmd.GoToRecord , , acPrevious
End Sub

Private Sub cmdNew_Click()

    On Error Resume Next

    DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub cmdNext_Click()

    On Error Resume Next

    DoCmd.GoToRecord , , acNext

End Sub

Private Sub Form_Current()

    On Error Resume Next

    If Me.CurrentRecord = 1 Then

        Me.cmdBack.Enabled = False

    Else
        Me.cmdBack.Enabled = True

    End If

    If Me.CurrentRecord >= Me.Recordset.RecordCount Then

        Me.cmdNext.Enabled = False

    Else
        Me.cmdNext.Enabled = True

    End If

    If Me.NewRecord Then

        Me.cmdNew.Enabled = False

    Else
        Me.cmdNew.Enabled = True

    End If

End Sub

2 个答案:

答案 0 :(得分:0)

您可以使用表单记录集替换DoCmd.个电话。

Me.Recordset.MoveNext 'alternative to DoCmd.GoToRecord , , acNext
Me.RecordSet.MovePrevious 'alternative to DoCmd.GoToRecord , , acPrevious
Me.RecordSet.AddNew 'alternative to DoCmd.GoToRecord , , acNewRec

答案 1 :(得分:0)

非常感谢您更新的代码 - 我必须添加以下代码才能让它们按照我的意图工作。

Me.RecordsetClone.MoveLast