有没有办法使用VBA代码写入查询?

时间:2017-10-12 15:10:42

标签: database vba list ms-access access-vba

我有这个数据库项目,目前有许多大表,包含我们需要的所有数据。调用附加查询以填写临时表,该表将缩小搜索结果范围。最后,调用select查询以从临时表中获取我们想要的正确数据。填充此查询表后,它将填充用户表单上的列表。此查询附加到临时表。用户可以在列表中修改此数据。这些更改将记录到临时表中,当用户单击“保存”时,临时表将更新数据库中的数据。如果它们取消了更改,则只有临时表不会更改数据库表。问题是我想摆脱这个临时表,因为它可以保留导致错误的信息。

目前我正在尝试使用一个查询来获取我们需要的数据,并使用此查询来填充我的列表。唯一的问题是如何修改列表数据,只在用户按下save时更新数据库。换句话说,我可以用什么来替换临时表?查询是否可以获取信息,用户可以编辑查询中的数据,然后当用户选择时,此查询可以更新数据库表中的数据?查询可以充当我的临时表吗?

如果您有任何想法,请告诉我们!我还没有在互联网上发现这个问题,所以也许使用列表写一个查询,VBA是不可能的。

2 个答案:

答案 0 :(得分:0)

我认为您可以尝试断开连接的记录集 几年前我做了一些经验,然后问a question,最后得到an answer that seemed good,但我从未真正测试过。

答案 1 :(得分:0)

"我想摆脱这个临时表,因为它可以保留导致错误的信息。"

我实际建议您保留临时表。您可以轻松采取措施确保其不会保留信息。

首先,我建议您每次使用相同的临时表(即,每次执行您在问题中描述的内容时,不要创建新的临时表)。只需在每次需要使用它之前和之后清除临时表。一个简单的currentDb.execute"删除*来自TempTable"在你的程序的开始和结束时应该做到这一点。

另一件可能会有所帮助的事情: 我喜欢将表保存在单独的后端数据库中。这些表将作为前端数据库中的链接表存在。这允许我有一个VBA脚本,当第三个" shell"打开数据库,将前端数据库复制到用户本地C盘上的指定文件夹。以这种方式构建数据库将允许您将该临时表保留在前端数据库中,与后端中的实际数据库表分开。每当用户打开数据库时(通过" shell"),他们将以新的干净临时表开始。此结构还有许多其他优点(不同的用户可以同时进行更改,需要更少的压缩,运行更快)。