标题: 更新事件发生后为什么不保存记录的? [打印本页] 作者: ycxchen 时间: 2011-12-5 16:59 标题: 更新事件发生后为什么不保存记录的? 代码如下,但不能正确运行
Private Sub 结束日期_AfterUpdate()
If IsNull([开始日期]) Then
MsgBox "请输入考勤开始日期!", vbExclamation + vbOKOnly, "温馨提示"
Me.开始日期.SetFocus
Else
If CVDate([开始日期]) > CVDate([结束日期]) Then
MsgBox "开始日期不能大于结束日期,请重新确认!", vbExclamation + vbOKOnly, "温馨提示"
Me.开始日期.SetFocus
Else
If DCount("*", "年休已满检测") > 0 Then
MsgBox "已超出年休假限休天数,请重新确认并核对后修改!", vbExclamation + vbOKOnly, "温馨提示"
DoCmd.GoToRecord , , acLast '回到最后一条记录,以便记录的修改
Me.结束日期.SetFocus
End If
End If
End If
End Sub
例子:张三的工龄为36年,年休期限为15天,现已休了13天,我在录入窗口中录入他新的年休考勤记录(2011-03-09至上011-03-15),按理2011-03-09至上011-03-15共7天,那么,张三的年休已超出15天的期限,在录入结束日期时应予以提示,即
If DCount("*", "年休已满检测") > 0 Then这句要运行,但录入后不正确运行。我认为,这是新的年休考勤记录没保存造成的,致使DCount函数不能统计最新的记录。请问,既然更新事件发生了,为什么不保存记录的?
[attach]47540[/attach]作者: Henry D. Sy 时间: 2011-12-5 22:09
谢谢版主指教!其实,我也试过用你的保存数据的类似语句:DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70;但有时候不能正确运行,提示与Calendar6_Click()有冲突,如何解决?作者: Henry D. Sy 时间: 2011-12-6 10:14
Calendar6_Click()是干嘛用的?作者: ycxchen 时间: 2011-12-6 10:42 本帖最后由 ycxchen 于 2011-12-6 10:43 编辑
不好意思,说不清楚,是说与日历控件的单击事件(Calendar6_Click())有冲突,请问,如何解决?作者: Henry D. Sy 时间: 2011-12-6 10:53
建议日期控件用下面这个
[attach]47542[/attach]作者: ycxchen 时间: 2011-12-6 11:01
谢谢版主的热心帮忙!我用的日历控件是ACCESS自带的呀,我真的不明既然更新事件发生了,为什么不保存记录的? 作者: Henry D. Sy 时间: 2011-12-6 11:04
绑定窗体要窗体更新后才保存到表,而不是某个控件更新后就自动保存,除非您用保存语句保存记录!作者: ycxchen 时间: 2011-12-6 11:53
谢谢指教!