我使用当前事件根据父窗体上记录的ID更新子窗体的RecordSource属性。问题出现在新记录中,因为ID字段(它是一个自动编号)为空。我测试空ID以避免错误,但是当用户键入第一个字符时,我需要在创建记录后立即更新RecordSource。
问题是Dirty和BeforeInsert事件都是在实际创建之前触发,因此在分配ID之前。我需要一个事件,在分配ID自动编号后触发。
提前感谢您的帮助
答案 0 :(得分:1)
有一个After Insert事件可以执行您想要的操作 - 它会在插入记录后触发,因此ID存在。
答案 1 :(得分:0)
如果我了解您,您要使用的事件是Onchange事件。为了使其在您的表单上工作,获得焦点的第一个控件必须具有此事件(即文本框)。我不知道哪个控件首先在您的表单上获得焦点,但如果它有此事件,那么您可以捕获键的第一个笔划并运行您希望的那个程序。在第一次击键时,将创建ID,文本框或正在使用的任何控件都会捕获每次击键,直到退出控件。唯一需要注意的是,每次按下一个键时都会调用此事件,因此您必须创建某种类型的状态变量来设置显示您想要完成的操作,而不是再次执行此操作。
dim status as integer(must be declared at form declaration level.)
if not status then
do procedure
Status =-1
end if
答案 2 :(得分:0)
我对此有点迟了,但是如何一起使用脏记录和新记录呢?
即:
If Me.NewRecord And Me.Dirty Then
'user has created a new record that has not yet been saved
End If