Ms access 使用Dlookup设置子窗体多选字段

Ms access 使用Dlookup设置子窗体多选字段,ms-access,sharepoint,vba,ms-access-2010,Ms Access,Sharepoint,Vba,Ms Access 2010,我有一个表,其中有分配给流程的多个展位,以及该流程的主展位的“是/否”字段 工艺|展位|初级 Buff1 | 8 |否 Buff1 | 5 |是 等等 我正在尝试自动生成一个表单,以便在使用Dlookup选择流程时在multiselect字段上选择主展位 这是我正在使用的代码: Me.Booth.Value = DLookup("Booth", "BoothSource", "BoothSource.Process = '" & Me.Process & "' AND Booth

我有一个表,其中有分配给流程的多个展位,以及该流程的主展位的“是/否”字段

工艺|展位|初级

Buff1 | 8 |否

Buff1 | 5 |是

等等

我正在尝试自动生成一个表单,以便在使用Dlookup选择流程时在multiselect字段上选择主展位

这是我正在使用的代码:

Me.Booth.Value = DLookup("Booth", "BoothSource", "BoothSource.Process = '" & Me.Process & "' AND BoothSource.Primary = True")
展位字段是一个多选字段。当我尝试测试时,出现错误3032,无法执行此操作。请帮忙。

多选字段和组合框很难使用

多值组合框的
.Value
属性显然是一个可变数组,并且是可写的。您可以将
.Value
属性设置为包含您的值的数组,而不仅仅是您的值

请注意,即使不允许对列表进行值编辑,这也会绕过许多检查,例如
限制到列表
属性。您应该手动检查输入,因为这可能会导致错误。避免在数组中包含除字符串以外的任何内容(数字、日期),因为它们不会触发错误,但可以将
Null
到列表中某个项目的任何内容插入伪随机unicode字符

Dim varValue作为变量
varValue=DLookup(“Booth”、“BoothSource”、“BoothSource.Process=””&Me.Process&“”和BoothSource.Primary=True”)
Me.Booth.Value=数组(CStr(varValue))

请注意,我强烈建议不要使用多选字段,这样可以避免这种混乱。

多选字段不是这样工作的。
Booth
是一个列表框吗?您可能需要一些更复杂的VBA。它是一个多值字段。类似于列表框,但不同。请参见上面的链接图像。“多选示例”呃。。。这是数据表视图中的表单吗?如果您使用的是数据表视图,这是一个非常相关的细节,并且使所有进一步的代码都变得更加困难。为什么?我过去从来没有遇到过问题?我遗漏了什么?我得到错误3061:参数太少。预期1。rs=当我查看调试器时,什么都没有。如果有帮助的话,查找和表单源是不同的表。表单基于表“Booth\u Process\u Multi”这是具有multiselect字段的表。表BoothSource没有。听起来您的输入参数(
Me.Process
)的计算结果不是有效值。它包含撇号吗?不,它是用组合框选择的。我为该字段添加了debug.print,并按预期填充了该字段。。。。如果这也是一个多选字段,我将放弃它。你能不能
Debug.Print Me.Process
?我是在你发布的时候输入的。:)它不是多选字段