【发布时间】:2014-01-22 22:02:24
【问题描述】:
我有一个访问查询,它要求在表单内的组合框中设置一个值才能工作
Criteria: Forms![_SelectCustomer]![CmbSelectCustomer]
到目前为止一切都很好,但是,我希望查询在使用宏运行时以编程方式打开、读取和关闭此表单。
我一直在关注@David-W-Fenton 在THIS similar stack overflow question 中的回答,并提出了以下代码:
Public Function rtnSelectCustomer() As Variant
DoCmd.OpenForm "_SelectCustomer", , , , , acDialog
With Forms![_SelectCustomer]
If .Tag <> "Cancel" Then
rtnSelectCustomer = Nz(!CmbSelectCustomer, "*")
Else
rtnSelectCustomer = "*"
End If
End With
Close acForm, "_SelectCustomer"
End Function
我从要在查询中过滤的属性的条件字段中调用此函数:
Like rtnSelectCustomer()
此时我遇到了几个问题:
首先,我不确定将实际代码放在哪里:我似乎无法在“Microsoft Access Class Objects”文件夹中为我的查询创建特定的类或模块,所以我已经采取了措施在 Modules 文件夹中创建我自己的模块。 (这是正确的方法吗?)
-
第二个问题是,当我使用我创建的当前模块中的代码运行查询时,出现以下错误:
运行时错误“2486”: 您目前无法执行此操作。
任何建议将不胜感激
编辑:
我应该澄清的是,在进一步测试后似乎导致运行时错误的行如下:
DoCmd.OpenForm "_SelectCustomer", , , , , acDialog
实际上调用该函数是因为用以下代码替换内部代码确实有效(尽管毫无用处)
Public Function rtnSelectCustomer() As Variant
rtnSelectCustomer
End Function
【问题讨论】:
标签: vba ms-access ms-access-2007 ms-access-2010 ms-access-2013