如何确保访问ComboBox有值?

时间:2016-01-05 12:25:42

标签: vba ms-access combobox

我有一个带有ComboBox和按钮的表单。单击该按钮时,它的事件应该在继续之前检查ComboBox是否有值。 ComboBox具有默认值集:

  • Name = cmbName,
  • 默认值=“Joe”,
  • 行来源= SELECT name FROM table ORDER BY name;

这就是我的尝试:

Private Sub btnOk_Click()
    If (CmbName.ListIndex = -1)Then
        Exit Sub
    End If
    'Do Something
End Sub 

但是每次单击按钮时,cmbName.ListIndex都会等于-1,即使存在默认值,也会退出该子。

2 个答案:

答案 0 :(得分:1)

不确定我是否误解了某些事情;你可以使用IsNull()函数。

如果用户已将值更改为默认值,则返回空值,然后返回True

Private Sub btnOk_Click()
    If IsNull(CmbName.Value) Then
        Exit Sub
    End If
    'Do Something
End Sub 

答案 1 :(得分:0)

ListIndex是ComboBox的一个属性。它返回列表中所选值的索引。例如:如果选择了第一个值,comboBox.listIndex = 0。如果没有值,则为comboBox.listIndex = -1

如果用户未从列表中选择值,则该值为默认值“joe”。

如果查询SELECT name FROM table ORDER BY name返回没有值“joe”的列表,则listIdex仍为-1。

尝试:

If (CmbName.ListIndex = -1) And (Trim(CmbName.Value & "") = "")

如果未选择任何值并且该框为空,则返回true。