给定VBA中的Recordset是先前SQL查询的结果,如何在新SQL语句的WHERE子句中使用此Recordset的结果?
我想写这样的东西:
SELECT ID FROM MyTable WHERE ID IN <<ID column of myRecordSet>> ;
显然,这不是正确的语法。我希望它选择MyTable
ID匹配中的ID之一的所有行myRecordSet
。或换一种说法,我正在尝试执行类似SQL子查询的操作,但子查询是一个记录集。
同样显然,我可以IN (a,b,c)
通过迭代遍历来逐个元素地构建一个表达式元素myRecordSet
,但是我问这个问题是因为我认为这是不必要的。
(这个问题的根本在于,新查询的ID列表来自Recordset;我意识到可能还有其他方法可以执行这种操作,但是我需要知道如何以这种特定方式进行操作。)
如果您的记录集基于同一数据库中的其他查询,则可以使用(myQuery可能包含所有WHERE和其他任何需要的子句):
SELECT ID FROM MyTable WHERE ID IN (select ID from myQuery)
如果您的记录集是合成的或来自其他数据源,那么您只需要通过遍历记录集来构建ID列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句