多选组合框设置选定属性为True

时间:2014-01-08 15:31:39

标签: vba ms-access

我想在ID上的多选复选框中从Persons_Form!ID中选择Form_Load()

以下代码执行正常。弹出消息框;但是值总是为false,并且即使将其设置为True,也不会在组合框中勾选复选框。

我预期的行为是在代码运行后检查它,并在MsgBox中返回True。为了达到预期的行为,我需要改变什么?

Private Sub Form_Load()
    If ID.Value >= 0 Then
        Beep
    Else
        Beep
        With person
            .SetFocus
            For x = Abs(.ColumnHeads) To (.ListCount - 1)
                If (.ItemData(x) Like Forms!Persons_Form!ID.Value) Then
                    .Selected(x) = True
                    MsgBox (.Selected(x))
                End If
            Next
        End With
    End If
End Sub

3 个答案:

答案 0 :(得分:1)

抱歉,我无法评论我的低级代表。但是对于person对象,.MultiSelect属性显示了什么?如果它为零,则您无法将多个选项设置为true。

答案 1 :(得分:1)

你必须麻烦拍摄。从简单开始。工作。暂停SetFocus,对于初学者来说!

Private Sub Form_Load()
    person.Selected(1) = True
    MsgBox (person.Selected(1))
End Sub

另外,添加一个布尔变量。使用变量可以清除许多混乱。

Private Sub Form_Load()
    Dim booSelected As Boolean
    person.Selected(1) = True
    booSelected = person.Selected(1)
    MsgBox booSelected
End Sub

答案 2 :(得分:1)

我想在我的电脑上复制这个问题。 一旦我失败了,那我就可以修复它了。 我同意Wayne,因为可能有一个

具有ID

的Persons_Form

具有Form_Load的我(表单),

哪个表格有人组合框?和 这组组合填充在哪里? 是什么触发了这个Form_Load? 这些东西不是代码片段, 你能发布一个可运行的片段吗?

我会用Northwind来填充我的人物组合, 所以不需要提供任何私人数据。 然而,了解ID中的模式类型会更好 以及组合框中的ItemData类型。

tkx,

3/15 20:40周六晚上 感谢您提高问题的可见度。 现在我对表格有疑问,所以 请运行DatabaseTools / Documenter /

on Tables:   Person  and Report
and set Include-for-fields to the last radio(all items)

and on Forms: "FormA"
and set Include-for-Sections-and-Controls  both Names&Properties

然后您可以输出输出表格信息 而只是将“人”控制信息转换为txt文件 并将其上传到某个地方   像http://www.filedropper.com/free-file-hosting.php 并将生成的url放入stackover下一条评论。

TKX