使用VBA查询记录集对象

时间:2012-08-06 20:56:21

标签: ms-access ms-access-2003 recordset

我正在使用Access 2003,并且有一个允许用户从各种过滤器中选择的表单,我使用VBA来更新基于这些过滤器的子表单的记录集(我在VBA中生成一个SQL语句)。此子表单可能有重复的客户端ID,现在我正在尝试访问唯一的客户端ID列表。

如果我有子窗体的源SQL,有没有简单的方法可以使用VBA查询唯一的客户端ID?我想到了这些选择:

  • 将所有ID写入临时表,然后查询该表(似乎 比起必要的工作/资源更多)
  • 以某种方式将查询应用于VBA中的记录集对象(这可能吗?);我将记录集对象设置为等于SQL查询,然后尝试运行SELECT DISTINCT client_id FROM <the recordset object>,但我找不到任何可以让我相信这是可能的信息
  • 基于原始SQL查询生成一个新的SQL查询(我希望SELECT DISTINCT client_id FROM ('original select query text here')可以工作,但它在FROM语句中给了我一个语法错误

1 个答案:

答案 0 :(得分:1)

瞄准第三种选择。如果您对子查询进行别名,那么这应该有效,并且'original select query text here'可以适合。

SELECT DISTINCT sub.client_id
FROM
    (
        'original select query text here'
    ) AS sub

如果Access仍然窒息,请告诉我们您对'original select query text here'的所作所为。

对于替代#1你是对的......这很浪费。

替代#2是不可能的,因为Access不允许您使用记录集对象作为FROM源运行查询。