VBA - 检查多个组合框

时间:2014-06-06 01:33:58

标签: vba ms-access if-statement combobox

我有以下代码,我试图检查组合框以确保它们不为空

我有一个核心组合框--cmbHierarchy - 与商店,零售商,地区,区和二级组合框架选择商店,零售商,地区,地区(每个一个)

我希望VBA检查cmbHierarchy以确保它已填充,然后根据其填充的内容,确保它的相应组合框具有选定的值。

当前代码正在检查以确保填充所有5个。我需要的是cmbHierarchy = store然后检查cmbStore,如果cmbHierarchy = retailer然后检查零售商,依此类推。

Private Sub btnQryTermCount_Click()

 Dim strQueryName As String

 If Me.cmbHierarchy.Value = Store Or IsNull(Me.cmbStore.Value) Then
 MsgBox "Please choose a Store"
 Me.cmbStore.SetFocus

 ElseIf Me.cmbHierarchy.Value = Retailer Or IsNull(Me.cmbRetailer.Value) Then
 MsgBox "Please choose a Retailer"
 Me.cmbRetailer.SetFocus

 Else: strQueryName = "TERM_Count_" & Me.cmbHierarchy
 MsgBox "Query Ready: " & strQueryName
 DoCmd.OpenQuery strQueryName

End If
End Sub

非常感谢任何帮助。 谢谢!

1 个答案:

答案 0 :(得分:0)

由于您的控件名称很方便,您可以执行以下操作:

If Nz(Me.cmbHierarchy.Value, "") <> "" Then
    If Nz(Me.Controls("cmb" & Me.cmbHierarchy.Value).Value) = "" Then
        MsgBox "Please choose a " & Me.cmbHierarchy.Value & "."
    Else
        strQueryName = "TERM_Count_" & Me.cmbHierarchy.Value
        MsgBox "Query Ready: " & strQueryName
        DoCmd.OpenQuery strQueryName
    End If
Else
     'cmbHierarchy validation failed logic here.
End if

IsNull而不是Nz也许没问题,但我总是习惯于把价值放在安全的地方。