我正在使用 MS Access 2003,我有一个“长”查询,例如
SELECT * FROM [Table 1]
UNION ALL
SELECT * FROM [Table 2]
UNION ALL
SELECT * FROM [Table 3]
....
SELECT * FROM [Table 100]
每个表从 HTML 文件链接到某个表。有时我的 HTML 源文件包含不同数量的表 - 少于 100 个,当然我的执行查询返回错误“3078:找不到表...”。为避免此错误,我尝试使用 VBA 代码动态构建此查询。所以我有下一个逻辑:
- 检查表是否存在
- 构建查询字符串(添加到字符串“UNION ALL SELECT * FROM [Table” & i & “]”)
- On Error = 3078 执行查询(基于查询字符串)。
它可以工作,但是检查表是否存在(每次数据库尝试从源链接此表)需要花费大量时间。我有其他方法吗?是否可以从“长”查询中返回“部分”结果(仅适用于那些存在并跳过另一个表的表)并且不单独检查它们?