我的MS Access数据库中有一个表单有问题,奇怪的是它是唯一有这个问题的表单。
表单具有典型的Master / Detail结构,子表单绑定到表。子表单记录源包括一个外键,该外键从另一个表中提取信息,并根据键值填充其余字段。此外键是一个材料编号,用于定义清单中的特定对象,子窗体中的其他字段显示此对象的详细信息。
标志表中的示例:
材料编号:116063175
StorageBin:A116
材料描述:停止标志
尺寸:48x48
所有这些信息都包含在同一张表格中,但表格中的表格用于填写特定道路上的标志(停靠点,限速等)。
在我所有其他表格中,当我输入材料编号并将焦点移到其他位置时,其余表格将自动填写。此过程也适用于此,但由于某些原因,Access在完成键入材料编号之前想要尝试填写其余的字段数据。我将输入“1”,访问将抛出一个错误,它无法在外键表的Signs表中找到匹配的记录。拒绝错误两次后,数据输入可以恢复正常,这也很奇怪。
我希望我已经足够清楚,这是我第一次在这里提问。
提前致谢!
编辑:尝试重新构建表单,同样的问题。建立了另一种形式相似,但没有我的多个组合框,没有问题!这可能是由于我的组合框的Afterupdate事件中的底层重新查询代码?我在表单上有一个级联组合框设置,数据输入是否可以触发重新查询?
Edit2:暂时,我正在使用的修复是将材质编号和数量(此表单的两个重要字段)放入子窗体外的文本框中,用户可以编辑然后放在子窗体中单击按钮,编码如下:
Private Sub Command1_Click()
If Me!PrimaryRoadInventorySubform.Form.Dirty Then
Me!PrimaryRoadInventorySubform.Form.Dirty = False
End If
Me!PrimaryRoadInventorySubform.SetFocus
DoCmd.GoToRecord , , acNewRec
Me!PrimaryRoadInventorySubform.Form!MaterialNumber = MaterialNumtxt
Me!PrimaryRoadInventorySubform.Form!Quantity = Quantitytxt
End Sub