【发布时间】:2012-10-03 22:06:48
【问题描述】:
我正在尝试在保存新记录后获取它的 ID。 因为我需要它来保存未绑定到记录的控件。
所以我就这样做了。
Private Sub cmdSave_Click()
If IsNull(SalesCallID) Then
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
SalesCallID.Requery
MsgBox SalesCallID
End If
SalesCallID 是一个绑定在记录 id 上的文本框。
所以如果是null,我会保存并更新它。
但是如果这个人只改变了未绑定的控件,它就不会保存。那我就拿不到身份证了。
我试图像这样将表单设置为脏Me.Dirty = true
但它不起作用。
我可以在open form 事件的评论字段中插入一个空格...但是有没有更优雅的方法来解决这个问题?
谢谢
【问题讨论】:
-
在大多数情况下,更新日期是很有用的,您可以包含一个日期并使用保存按钮通过代码更新它。你必须至少完成一个表字段才能获得一条新记录,除非你想通过sql或记录集添加一条记录,这可能会导致更多问题。
-
你说得对,我已经明白了。
createdBy和createdDate为什么它没有保存。它应该保存,因为它们被绑定了 -
我想你已经为它们设置了一个默认值,而不是通过代码完成它们。
Me.txtCreateBy = "Marc" -
哦,是的,对于默认值,我调用了 GetUser() 方法。所以我应该在代码中做呢?
-
默认值很好,但是您正在寻找表单上的小提琴,用户可以在不完成任何条目的情况下逃脱,因此对于小提琴,完成代码应该可以工作。