最近,我遇到了 Microsoft Access 与 MySQL 集成中最让我恼火的错误之一。发生的情况是,如果您在一条记录中键入某些内容,然后快速移动到下一条记录并键入完全相同的内容,则自动增量字段似乎会重复出现。这种情况不仅会发生两次,而且会发生多次,导致多条记录的自动增量字段似乎重复。如果您编辑其中一条带有重复自动增量字段的记录,它不仅会更新该记录,还会更新所有带有重复自动增量字段的记录。如果您尝试删除其中一个重复项,它将删除该记录,然后在所有其他记录上显示 #Deleted# 错误消息。如果您关闭表格然后返回,它将显示您正在处理的所有记录的具有不同自动增量字段的单独条目。
我尝试过获取不同的 ODBC 连接器,但似乎没有任何改变。我尝试修复表,但也没有解决问题。此外,我尝试了其他表并发现了同样的问题。我注意到的一件事是,如果我在移动到下一个记录之前留出一段相当长的时间,它就不会经常出现问题。我可以最一致地重现该问题的方法是,如果我在金额字段中只输入数字“1”,然后使用键盘上的向下箭头键并输入另一个“1”,然后向下箭头并继续循环。我做得越快,错误就越一致,但即使我没有在记录之间快速移动,有时仍会发生错误。
我在 Access 2002 和 Access 2010 中都遇到了错误。我尝试了 MySQL ODBC 连接器 3.51.18 和 3.51.30。我应该注意,自动递增字段也是我的主键。
答案1
我的回答虽然有点丑陋,但足够了,那就是强制每条记录都是唯一的。在使用表格的表单上的“插入前”事件中,我输入了一个带有当前记录号的字段。我把它设为负数,这通常不会出现在该字段中,然后稍后将其清除。这对我来说目前是可行的,我打算保持这种状态,除非有人能帮助我理解导致问题的根本原因。