【问题标题】:Access VBA ListBox ItemData Variant is always 1访问 VBA ListBox ItemData Variant 始终为 1
【发布时间】:2016-02-19 18:00:43
【问题描述】:

我有一个包含多个列表框的表单,所有工作都很好,除了 1!这是唯一一个源为数字数据类型的列表框。我知道这无关紧要,但我看到的是对于这个列表框 only,返回的变体始终为 1,我不明白为什么其他(数据类型文本)可以正常工作而这个没有。我的所有 Google 搜索和 MSN 搜索以及 StackOverflow 上的搜索都没有帮助解决我的具体问题,尽管关于 ListBoxes 的内容很多。请帮忙!

编辑:抱歉@Mat's Mug...我希望这不是必需的,因为所有检查都需要很长时间,但这是要点。

For Each ctl In Form.Controls
       With ctl
            Select Case .ControlType

               Case acListBox

               If .Visible = True Then
                   .SetFocus
                   ItemCount = .ItemsSelected.Count

                   If .ItemsSelected.Count > 0 Then

                       For Each varItm In .ItemsSelected

                          If .Name = "lstRating" Then
                              sWhereClause = sWhereClause & "ThisRating=" & .ItemData(varItem) & " Or ThatRating = " & .ItemData(varItem)
                          Else
                              sWhereClause = sWhereClause & Mid(.Name, 4, Len(.Name)) & " = """ & .ItemData(varItm) & """"
                          End If

                       Next varItm
                   End If

               End If

           End Select
     End With
Next ctl

注意:当 .Name = "lstRating" 为 True 时,无论选择什么,varItem 返回的行都是 1。列表框以 0.5 的增量填充从 1 到 5 的值。

【问题讨论】:

  • 向我们展示一些代码可能会帮助我们在这里为您提供帮助...
  • 您在使用什么应用程序?
  • 我正在使用 MS Access。对不起,糟糕的代码输入......论坛不允许我正确地做......我试过了!
  • 感谢@Ken White 的编辑! 咧嘴

标签: vba listbox


【解决方案1】:

好吧,我不敢相信我已经忽略了几个小时......当它在 varItm 中定义时,我在违规行中使用了 varItem,没有“e”!完全是我的疏忽。感谢大家对此进行调查!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 2017-06-17
    • 2012-02-06
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多