访问2013多价值组合在表中如何使用VBA取消选中一个值



我有一个查找字段/组合框(颜色),在表格中允许使用多场(油漆)。下拉列表显示了不同颜色旁边的许多复选框。看起来像:

☑ Red
☑ Blue
☑ Green

我如何在第一次rec中找到"蓝色"的值"蓝色"并取消选中?我很难在我的表单代码中引用颜色字段:

Dim rst As Recordset
Set rst = CurrentDB.OpenRecordset("Paint", dbOpenDynaset)
With rst
.MoveFirst
MsgBox ![Color].MultiSelect
End With

我认为这会给我带来真实的价值。但是我得到该对象不支持此属性或方法

那么,如何引用颜色组合框,然后取消选中适当的值?

似乎没有您打开的记录集的"多选择"属性。有关多选择字段的文档,请参见此处。

基本上,那就是多选择字段中的值本身就是记录集。您仅获得了表的记录集,但没有获得字段的记录集。您希望您的颜色表中有一个ID字段,但是如果没有,则可能有些不同,但是基本想法应该相同。

您想要这样的东西:

Sub test()
Dim db As Database
Dim rs As Recordset
Dim childRS As Recordset
Dim valueToDelete As Long
valueToDelete = DLookup("ID", "tblColors", "Color = 'blue'")
'Obviously this depends on how your table is set up.    
Set db = CurrentDb
Set rs = db.OpenRecordset("tblPaint")
rs.MoveFirst
Do Until rs.EOF
    Set childRS = rs!Colors.Value
    childRS.MoveFirst
    Do Until childRS.EOF
        If childRS!Value.Value = valueToDelete Then
            childRS.Delete
        End If
        childRS.MoveNext
    Loop
    rs.MoveNext
Loop
End Sub

最新更新