Multi-Select ComboBox 设置 Selected 属性 True
Posted
技术标签:
【中文标题】Multi-Select ComboBox 设置 Selected 属性 True【英文标题】:Multi-Select ComboBox Set Selected Property True 【发布时间】:2014-01-08 15:31:39 【问题描述】:我想在Form_Load()
的多选组合框中从Persons_Form!ID
中选择ID
。
下面的代码执行良好。消息框确实会弹出;p 但是该值始终为 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
【问题讨论】:
在“If (.ItemData(x) Like...”行放置一个代码中断,然后将鼠标悬停在“.ItemData(x)”和“Forms!Persons_Form!ID”上.Value”。这将告诉您 Access 认为这两个值是什么。然后按 F8 单步执行代码,并检查每个循环的这些值。您可能会立即看到您做错了什么,或者 Access 没有不喜欢。 访问“喜欢”代码。 IF 语句中的代码确实在正确的时间执行。 x 被分配给正确的索引。 Selected(x) 确实返回复选框的当前状态,并且赋值语句不会导致错误。但是在赋值语句 Selected(x) 之后仍然返回 false。 所以你说它碰到了设置 .Selected(x) = true 的行,它仍然会弹出一个框,上面写着 .Selected(x) = false? 是的,这正是它的作用。 为澄清起见,您的第一行代码引用“ID.Value”,然后您引用“Forms!Persons_Form!ID.Value”。第一个参考在哪里/什么是 - 这个表格或者它应该是另一个表格 - 它是一个文本框还是什么? 【参考方案1】:抱歉,我还不能对我的低代表发表评论。但是对于 person 对象,.MultiSelect 属性显示了什么?如果它为零,则不能将多个选择设置为 true。
【讨论】:
【参考方案2】:您必须解决问题。开始简单。工作起来。离开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
【讨论】:
我明天上班的时候试试这个。我很抱歉最近没有关注这个问题。谢谢, 我想知道发生了什么。你有没有让函数按照你想要的方式工作?【参考方案3】:我想在我的计算机上复制该问题。 一旦我让它失败了,我就可以着手修复它。 我同意韦恩的观点,因为可能有一个
具有 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 next 评论中。
tkx
【讨论】:
场景是有两种形式。 “FormA”包含一个“Multiselect”“Combobox”(称为“person”),它被分配给一个表“Report”列:“Persons”(多值字段)女巫与表“Person”具有多对多关系“ID”列。用户单击加载“FormB”的“FormA”上的按钮。 “FormB” 允许用户在“人员”表中创建新人员。 "FormB" "OnClose" 会刷新 "FormA" 中的数据,然后自动选择 "person" "multiselect combobox" 中与刚刚在 "FormB" 上创建的新 "person" 的 ID 匹配的条目以上是关于Multi-Select ComboBox 设置 Selected 属性 True的主要内容,如果未能解决你的问题,请参考以下文章
jQuery Single/Multi-Select插件,几乎可以在任何设备上使用
点击事件在Kendo Multi-Select包装器上无法正常工作(仅限FireFox)
如何使用 Material-Ui Autocomplete for Multi-Select 复选框实现 Formik 的 Field 组件?