插入问题(access / vb)

时间:2014-05-14 13:46:14

标签: vba ms-access access-vba

我已经尝试解决这个问题两天了,我不会再进一步​​了解它。

我的访问应用程序中有两个表:其中一个名为tabDerroga,其中保存了一些文档的数据(主要是其协议号或“Protocolo”)。另一个称为tabLog,它用于存储日志。我还有一个查询,检查是否有与Derroga相关的日志。如果确实如此,则无需再使用它了。但如果没有,我需要处理它,然后我保存日志条目详细说明我做了什么。 tabLog表有[Protocolo Derroga]外键/字段,指向tabDerroga。[Protocolo]。根本没问题。

在创建表格和查询时,我已经广泛测试了所有手动,并且它可以完美地运行。如果我在tabLog中创建任何条目,其中“外地字段”引用tabDerroga条目,则该条目将在查询中省略。

当我通过VBA向tabLog添加行时,我的问题就出现了。如果我在它之后手动检查表格,我可以确认它已成功添加。 但查询无法查看

我可以运行代码数百次,使用相同的数据创建数百行,但不知何故,它似​​乎与数据库的其余部分“不同”或“不可见”。如果我复制这些行中的任何一行并粘贴到新条目上,则手动添加的内容将立即对查询“可见”,但所有其他行都不会。他们都有相同的数据

这是我尝试完成任务的方法之一:

MyRS.MoveFirst

MyRS.AddNew
    MyRS![Descrição] = "10 dias antes de vencer"
    MyRS![Protocolo derroga] = Protocolo
MyRS.Update

MyRS.Close

这给了我完全相同的结果

DoCmd.RunSQL "INSERT INTO tabLog ([Protocolo derroga],[Descrição]) VALUES ('" & Protocolo & "','10 dias antes de vencer')"

这样做:

CurrentDb.Execute "INSERT INTO tabLog ([Protocolo derroga],[Descrição]) VALUES ('" & Protocolo & "','10 dias antes de vencer')"

顺便说一句,我已经通过先组合整个字符串来检查问题是否与任何sql注入问题有关。得到了相同的结果。

我错过了什么?在数据准备就绪之前,我是否需要“更新”任何内容?如果是这样,为什么它通常出现在表格中?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我多么愚蠢。我完全忘记了处理计算机的第一个也是唯一的普遍规则:如果它不起作用,重启一切。

昨天回到家,今天一切正常。没有代码更改。

感谢@TimLentine,@ JohnnyBones,@ MurDeR和@ MP24!