访问 VBA 表单控件已禁用
Access VBA Form Controls Disabled
我有一个图书数据库和一个简单的表格来浏览它并编辑或创建新记录。我有一个 'Go to first'、'Go to previous'、'Go to next' 和一个 'Go to last' 按钮。我想要的是在用户查看第一条记录时禁用 'first' 和 'previous',在查看最后一条记录时禁用 'next' 和 'last' .
我在表单的 'On Current' 事件中使用此代码:
Private Sub Form_Current()
If Me.CurrentRecord = 1 Then
Me.Prev_Rec.Enabled = False
Me.First_Rec.Enabled = False
Else
Me.Prev_Rec.Enabled = True
Me.First_Rec.Enabled = True
End If
If Me.CurrentRecord = Me.RecordsetClone.RecordCount Then
Me.Next_Rec.Enabled = False
Me.Last_Rec.Enabled = False
Else
Me.Next_Rec.Enabled = True
Me.Last_Rec.Enabled = True
End If
End Sub
当我打开表格时(它打开到第一条记录),所有的按钮都是灰色的;但是,如果我在设计模式下 fiddle 使用控件(只需单击它们 and/or 移动它们),然后切换回来, 'next' 和 'last' 按钮将再次启用(我在第一条记录上,所以 'first' 和 'previous' 按钮被禁用,它们应该被禁用)。我做错了什么?
我怀疑最初的 RecordCount
不可靠,因为当您第一次检查 RecordCount
时表单尚未将所有行加载到其记录集中。
您可以在检查 RecordCount
之前强制记录集完成加载,方法是将其作为过程的第一行插入...
Me.RecordsetClone.MoveLast
我有一个图书数据库和一个简单的表格来浏览它并编辑或创建新记录。我有一个 'Go to first'、'Go to previous'、'Go to next' 和一个 'Go to last' 按钮。我想要的是在用户查看第一条记录时禁用 'first' 和 'previous',在查看最后一条记录时禁用 'next' 和 'last' .
我在表单的 'On Current' 事件中使用此代码:
Private Sub Form_Current()
If Me.CurrentRecord = 1 Then
Me.Prev_Rec.Enabled = False
Me.First_Rec.Enabled = False
Else
Me.Prev_Rec.Enabled = True
Me.First_Rec.Enabled = True
End If
If Me.CurrentRecord = Me.RecordsetClone.RecordCount Then
Me.Next_Rec.Enabled = False
Me.Last_Rec.Enabled = False
Else
Me.Next_Rec.Enabled = True
Me.Last_Rec.Enabled = True
End If
End Sub
当我打开表格时(它打开到第一条记录),所有的按钮都是灰色的;但是,如果我在设计模式下 fiddle 使用控件(只需单击它们 and/or 移动它们),然后切换回来, 'next' 和 'last' 按钮将再次启用(我在第一条记录上,所以 'first' 和 'previous' 按钮被禁用,它们应该被禁用)。我做错了什么?
我怀疑最初的 RecordCount
不可靠,因为当您第一次检查 RecordCount
时表单尚未将所有行加载到其记录集中。
您可以在检查 RecordCount
之前强制记录集完成加载,方法是将其作为过程的第一行插入...
Me.RecordsetClone.MoveLast