我试图在我的数据中防止循环(甚至级联)引用,而且它似乎只是部分时间起作用。
在 Access 2007 中,我有下表:
create table mfr (
mfr_id Autonumber,
mfr_nm Text(255),
mfr_is_alias_for_id Long Integer
)
我正在从 Excel 中导入一堆数据,而 mfr_nm 是工作表中的一列。我无法控制数据如何输入 Excel,因此我想要一种将替代拼写捕获为“真正”相同的方法。到目前为止,一切都很好(我认为......)。
现在我已经用这张表建立了一个表格。我有一个 ComboBox 作为别名——同样,到目前为止,非常好。但是,当我将此代码添加到 BeforeUpdate 事件时,事情变得“有趣”(省略了错误处理):
If Not IsNull(cboMfrAlias) Then
If Not IsNull(DLookup("mfr_is_alias_for_id", "mfr", "mfr_id=" & cboMfrAlias)) Then
MsgBox """Alias for"" must not also be an alias.", vbExclamation
Cancel = True
End If
End If
当表单在表单视图中时,这完全符合我的预期,但是如果我在数据表视图中,我的 MsgBox 紧随其后的是 Access 生成的“无当前记录”错误,该错误未被BeforeUpdate 中的错误处理捕获子。
我能抓住这个错误吗?在哪里?