首页 > 解决方案 > 访问宏创建一个重复的表,然后破坏宏

问题描述

我继承了一个基于 Access 的仪表板,它使用一系列 SQL 查询和 Make Table 操作将这些查询的结果写入位于其他两个 Access 文件中的表中。

有一个宏运行所有生成表命令,这些命令依次运行 sql 查询。当我在我的机器上运行它时,它们都在工作,但是当我从处理计划刷新的 VM 运行它时,它会为其中一个查询创建一个重复的表。

如果我从 Tables1 数据库中删除该表,查询数据库将成功运行并创建正确的表和 Tables1 中的副本。但是,随后的每一次,宏都会失败,并显示重复表已存在的错误。

这是生成表 sql:

SELECT [SQLQueryName].* 
INTO [TableName] 
IN 'filepath\Tables1.accdb'
FROM SQLQueryName;

这是所有其他生成表查询正在使用的相同结构,它们没有这个问题。我不确定这是否重要或会告诉某人某事,但重复表的名称相同,并在其末尾添加了 1。我们最近还必须获得一个新的 VM 设置,并且出现了很多奇怪的问题,这些问题无法像以前的 VM 那样正常运行,而之前的 VM 已经运行了很长时间而没有出现问题。

到目前为止,我已经尝试压缩 Query 和 Table1 Database 文件。我尝试删除生成表查询并制作新版本。我试过删除表格并从 Tables1 中复制。我已经尝试将数据库文件回滚到几周前的版本。我们还确保 Access 的版本与我的 PC 上的版本相同。

我目前正在尝试将其更改为删除行/追加行方法而不是生成表,但即使可行,我仍然很想知道为什么会这样。

编辑:

生成表中的实际代码失败,删除了文件路径。

SELECT [012_HHtoERorOBS].* 
INTO [HHtoER-Obs] 
IN '\\filepath\MiscTablesB.accdb'
FROM 012_HHtoERorOBS;

这是来自其他 2 个正在运行的生成表查询的代码。每个 make table 查询都遵循相同的 select * from sql 查询格式,以将数据放入目标 accdbs 中的表中。

SELECT [010_ScheduledVisitsQuery].* 
INTO ScheduledVisits 
IN '\\filepath\MiscTablesB.accdb'
FROM 010_ScheduledVisitsQuery;

SELECT [020_HH_HO].* 
INTO HH_Referred_to_HO 
IN '\\filepath\MiscTablesB.accdb'
FROM 020_HH_HO;

运行生成表查询时,所有这些表都存在于目标 accdbs 中。该宏不包含任何删除表的命令。这是宏顶部的屏幕截图,它重复所有生成表查询,然后以退出访问的命令结束。

宏截图

标签: sqlvbams-access

解决方案


推荐阅读