我正在MS Access 2013中开发数据库。
我有一个带有列表框的表单,以及两个按钮,btnNext和btnPrev - 这些按钮用于更改列表框中当前选定的项目。用户还可以单击列表框以更改所选项目;
我想停用以前的'当用户选择列表中的第一个项目时按钮,并禁用“下一个”按钮。用户选择列表中的最后一项时的按钮。为此,我有以下子;
Private Sub UpdateNavigationButtons()
If lstBox.Selected(0) Then
btnPrev.Enabled = False
Else
btnPrev.Enabled = True
End If
If lstBox.Selected(lstBox.ListCount - 1) Then
btnNext.Enabled = False
Else
btnNext.Enabled = True
End If
End Sub
当我从任意按钮的Click
事件处理程序或直接窗口调用它时,此Sub工作正常,但是当我从ListBox AfterUpdate
调用它时或Click
事件处理程序,.Selected
数组始终用零填充。我无法在MSDN文档中找到有关此限制的任何文档。
当用户更改当前列表框选择时,有人可以建议我禁用这些按钮吗?
答案 0 :(得分:1)
为了简单地启用/禁用记录选择器按钮,我尝试了以下代码,它对我有用。当列表框同时具有值列表和表/查询作为rowsource时,它也有效。您只需为处理程序调用此代码即可进行设置。希望有所帮助!
Private Sub UpdateListboxRecordSelectorButtons()
Dim strMinValue As String
Dim strMaxValue As String
strMinValue = Me.lstResults.ItemData(0)
strMaxValue = Me.lstResults.ItemData(Me.lstResults.ListCount - 1)
Select Case Me.lstResults.Value
Case strMinValue
Me.cmdPrevious.Enabled = False
Me.cmdNext.Enabled = True
Case strMaxValue
Me.cmdNext.Enabled = False
Me.cmdPrevious.Enabled = True
Case Else
Me.cmdNext.Enabled = True
Me.cmdPrevious.Enabled = True
End Select
End Sub
答案 1 :(得分:0)
ListBox.Selected与Listbox.ItemsSelected之间存在明显差异。
Listbox.Selected:https://msdn.microsoft.com/en-us/library/office/ff835338.aspx
ListBox.ItemsSelected:https://msdn.microsoft.com/en-us/library/office/ff823015.aspx
你是否使用了错误的功能?不确定是不是这样。