设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 3072|回复: 20
打印 上一主题 下一主题

[其它] 显式保存

[复制链接]
跳转到指定楼层
1#
发表于 2003-2-12 00:10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当修改一条记录之后,不让access直接保存,而是需要显式的保存。能够实现吗?怎样实现?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-2-12 01:32:00 | 只看该作者
什么是显示保存
3#
 楼主| 发表于 2003-2-12 06:24:00 | 只看该作者
由于在编辑ACCESS窗体中的记录时,当将插入点移到不同的记录,或关闭正在处理的窗体或数据表时,Microsoft Access 会自动保存所添加或编辑的记录。

   ACCESS运用自动保存记录的功能,因此会产生一些误操作,我想取消ACCESS自动保存功能,通过保存命令按钮用人工保存的方法来保存记录.
    关于以上问题特请教各路高手!望不吝赐教!
4#
发表于 2003-2-13 06:39:00 | 只看该作者
方法1:
在窗体的 BeforeUpdate 事件中加入检查语句.
如果是保存按钮产生的事件则保存,反之则 Cancel
注意是窗体的 BeforeUpdate 事件,而不是某个绑定控件的事件.

方法2:
其实用 Current 事件也能实现,只不过要麻烦一点.
5#
 楼主| 发表于 2003-2-13 07:20:00 | 只看该作者
谢谢 Roadbeg!
6#
 楼主| 发表于 2003-2-14 00:09:00 | 只看该作者
这段代码有错吗?如果用记录浏览按钮转到下一条记录,哪怕是单击的“否”也会保存。不信各位试试!
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If bleSave = False Then
       If Me.Dirty = True Then
            If MsgBox("本记录已更改,是否需要保存?", 4) = 7 Then
                SendKeys "{esc}", True
             End If
        End If
    Else
        bleSave = False
    End If
Private Sub 保存_Click()
bleSave = True
DoCmd.RunCommand acCmdSaveRecord
End Sub
7#
发表于 2003-2-14 00:14:00 | 只看该作者
反 sendkeys 改为 窗体的 undo 方法
或置 参数 cancel=-1
8#
 楼主| 发表于 2003-2-14 00:19:00 | 只看该作者
小生愚笨。Roadbeg可以清楚一点吗?
9#
发表于 2003-2-14 00:21:00 | 只看该作者
改为
Private Sub Form_BeforeUpdate(Cancel As Integer)
If bleSave = False Then
If Me.Dirty = True Then
If MsgBox("本记录已更改,是否需要保存?", 4) = 7 Then
form.undo
End If
End If
Else
bleSave = False
End If
Private Sub 保存_Click()
bleSave = True
DoCmd.RunCommand acCmdSaveRecord
End Sub
  
10#
 楼主| 发表于 2003-2-14 00:31:00 | 只看该作者
我试试!Thank you!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-2 04:38 , Processed in 0.087416 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表