我有一个连续的表单(表单X),它显示表格中的行(表A)。在Dbl上单击一行,单独的表单(表单Y)允许修改关联的行。这个单独的表单有一个子表单,允许输入子表(表B)数据。表B上有一个带有约束的列,指向表A的主键。对于任何给定的表A行,表B上可能没有任何行。
到目前为止一切都非常普通。现在出现问题:
如果表B为空,那我就得到......
" Microsoft数据库引擎无法在表格中找到记录'表A'使用密钥匹配字段'表B约束列名称'
...表格Y关闭后。如果表B上有任何行(不一定是当前的表A行),那么没有问题。我没有故意尝试写一个没有表A条目的表B行。
有趣的是,如果我把一个' msgbox' (我通常的第一次调试方法)在表格Y关闭之后进入表单X然后问题就消失了。我试图在表单X中捕获表单错误3101,但没有用。我甚至尝试通过SQL格式删除约束并设置子表单记录源。
这一切都很奇怪,我可能做了些蠢事但我无法看到它。非常感谢那些聪明人的帮助 - 我对那个只是模拟一个" msgbox"的问题感到沮丧。没有输入会做!
答案 0 :(得分:0)
虽然这似乎不是一个非常好的问题,但我的解决方案也不是很好。我不希望每个父项的子表记录,所以我删除了子表单插入表单的父/子链接,我在需要记录时设置子表子表单的记录源。
虽然我在其他地方做过类似的事情没有问题,但这似乎是我遇到困难的根本原因。我恢复了父/子链接,删除了我的手动记录源,并将子表单的记录源设置为子表。我必须做的只是手动处理我不想要的子表行,而且事情似乎正常。
确实......对一个看似愚蠢的问题的回答。