0

我生成了一个附加查询来打开一个名为 1 的表并将其内容附加到一个名为 Master 的主表中。

Master 的结构与表 1 完全相同。我使用查询向导 Access 2000 生成了 SQL 代码。代码如下所示:

 INSERT INTO MASTER ( IDNUM, NAME, [DOC TYPE],[PDF FILE NAME]) SELECT [1].NAME, [1].NAME, [1].[DOC TYPE], [1].[PDF FILE NAME  FROM 1;

现在我说十张桌子叫做 1,2,3,4,5,6,7,8,9,10

我想遍历每个附加到主控的表。结果,我有一个主列表。我知道我可以手动创建和执行 10 个查询。

在上面的查询 def 中,1 应该是 K,所以每个查询看起来都和上面一样,但是用 2 代替一个等等。

那么如何调用通用代码

INSERT INTO MASTER ( IDNUM, NAME, [DOC TYPE],[PDF FILE NAME]) SELECT [K].NAME, [K].NAME, [K].[DOC TYPE], [K].[PDF FILE NAME  FROM K;

Where K = 1 thru 10

最后我需要;after FROM 1: 或FROM K;

我想用所有Dim的等创建一个 VBA 过程。

4

1 回答 1

0

您不能使用变量作为表名。您能做的最好的事情就是生成一个 SQL 字符串并用 VBA 执行它。

如果我是你,我会咬紧牙关,因为桌子设计很糟糕(不是个人的),然后做一件大事UNION

INSERT INTO MASTER 
(IDNUM, NAME, [DOC TYPE],[PDF FILE NAME])
SELECT
[1].IDNUM, [1].NAME, [1].[DOC TYPE], [1].[PDF FILE NAME]
UNION
SELECT
[2].IDNUM, [2].NAME, [2].[DOC TYPE], [2].[PDF FILE NAME]
UNION
SELECT
[3].IDNUM, [3].NAME, [3].[DOC TYPE], [3].[PDF FILE NAME]
...
于 2013-10-29T21:22:42.073 回答