最终,我希望根据在多选查找中检查哪些值以及允许的数量来启用和解锁/禁用和锁定一大堆复选框。要做到这一点,首先我需要知道如何通过vba获取这些多选查找中的数据。我想。
我尝试将vba中的变量设置为其中一个字段的值,但它似乎接受的唯一数据类型是equals
- 即使这样我也无法获得即时窗口,告诉我我收集到该变量的内容。
如果某个标签是多选字段中列出的标签之一,我需要vba才能计算出来。
现在有了进一步的解释/背景,真实的例子:让我们说你可以根据这本书的作者和类型来选择一本书的颜色"拥有"。每个作者和流派都有可变数量的颜色,你可以选择,范围有限。
让我们说这本书是由鲍勃提供的,他被允许使用红色,蓝色,橙色和黄色2,它是一本幻想书,可以是红色,白色,灰色,黑色和紫色中的3种。
表单上所有红色,蓝色,黄色,橙色,白色,灰色,黑色和紫色的复选框都会启用和解锁,而其余所有复选框都保持锁定和禁用状态,因为它们根本不可用。
现在,如果你想让我了解它的全部工作方式,那很棒,但我现在真正要求的是如何掌握那些多选字段中的数据。其余的是上下文等。
答案 0 :(得分:1)
多选字段(记录集或控件)的.Value
属性在Access中定义为变量数组。这意味着您需要使用数组函数来获取值。
你可以读取这样的值:
rs.Fields("MyMultiValuedField").Value(0) 'First value
Join(rs.Fields("MyMultiValuedField").Value, ", ") 'Concatenated values
并设置如下值:
rs.Fields("MyMultiValuedField").Value = Array("Value1", "Value2")
请注意,在查找字段中,会存储密钥,而不是要查找的值。根据我的经验,MVF在使用VBA进行分配时具有最少的验证,您甚至可以插入错误类型的值导致垃圾。