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