【问题标题】:VBA - Check multiple comboboxesVBA - 检查多个组合框
【发布时间】:2014-07-27 04:37:51
【问题描述】:

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

我有一个核心组合框 - cmbHierarchy - 包含 Store、Retailer、Territory、District 和辅助组合框来选择商店、零售商、地区、地区(每个一个)

我希望 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

任何帮助将不胜感激。 谢谢!

【问题讨论】:

    标签: vba ms-access if-statement combobox


    【解决方案1】:

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

    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 可能很好,但我总是习惯于将值转换为安全的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多