我一直在寻找一些东西,但没有找到一个好的答案。我发现我可以在 VBA 过程中生成代码并从那里运行它,但是,我正在研究其他人的设计并且不想对其进行太多更改。
在该传递查询的一部分中,我们有如下内容:
WHERE (((ID='380')
我希望 380 是查看 UserForm 组合框的代码,为我的数据库编写一个返回值的查询WHERE column = combobox.value
我希望这是有道理的,如果有人知道如何使用它,请告诉我。谢谢。
我一直在寻找一些东西,但没有找到一个好的答案。我发现我可以在 VBA 过程中生成代码并从那里运行它,但是,我正在研究其他人的设计并且不想对其进行太多更改。
在该传递查询的一部分中,我们有如下内容:
WHERE (((ID='380')
我希望 380 是查看 UserForm 组合框的代码,为我的数据库编写一个返回值的查询WHERE column = combobox.value
我希望这是有道理的,如果有人知道如何使用它,请告诉我。谢谢。
您可以将组合框设置为将所选值放入单元格中,然后通过参数将查询链接到该单元格的值。
干杯 -
在环顾四周并进行了一些研究之后,似乎只有服务器上的存储过程(我不能这样做)或创建一个字符串并将该字符串传递给传递查询是我的选择。我将追求 string 选项,因为它似乎是我的限制条件的最佳选择。如果有人后来提出任何想法会有所帮助,请告诉我。谢谢。
一种方法是将模板查询存储在传递查询中,例如:
select * from table where ID = [ID]
然后使用 VBA 读取查询,替换 ID,将其写入另一个准备好的查询,然后执行它。像这样的东西:
Sub zzz()
Dim SQL As String
With CurrentDb
SQL = .QueryDefs("PassThruQueryTemplate").SQL
.QueryDefs("PassThruQuery").SQL = Replace(SQL, "[ID]", "380")
.Execute "PassThruQuery"
End With
End Sub