我已经生成了一个追加查询来打开一个名为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个查询。
在上面的查询中,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
最后我需要;
之后的FROM 1
:或FROM K;
我想创建一个包含所有Dim
等的VBA过程。
答案 0 :(得分: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]
...