Office中国论坛/Access中国论坛

标题: 版主,不好意思,再一次重复发一贴,因为没有人给我准确的答复. [打印本页]

作者: Frank    时间: 2002-6-30 20:05
标题: 版主,不好意思,再一次重复发一贴,因为没有人给我准确的答复.
怎样在录入数据时,不按保存按钮时就不保存.
现在在ACCESS里录数据时,会自动保存,比较讨厌.
作者: cattjiu    时间: 2002-6-30 20:15

1.建立的窗体输入控件均不绑定表数据源,当最后一个控件输入完时触动afterupdate程序,由程序将输入的控件值存给内存变量,当按按钮Save时存入表里。
2.建立一个与需要保存数据的表B同结构的表A,输入窗体数据源设为表A,但确认保存时用追加查询追加A到B,删除查询删除A记录。
作者: Frank    时间: 2002-6-30 20:18
有没有简单的办法,或者说用代码来控制呢
作者: cattjiu    时间: 2002-6-30 20:29
调用
BeforeInsert、AfterInsert 事件
                                


BeforeInsert 事件当用户在新记录中键入第一个字符时发生,在记录真正被创建之前发生。


AfterInsert 事件在添加新记录之后发生。
注意   通过使用宏或 Visual Basic 来设置控件值将不会触发这些事件。

说明

要在这些事件发生时运行宏或事件过程,请将 BeforeInsert 或 AfterInsert 属性设置为宏的名称或 [事件过程]。

每当添加新记录时,都可以使用 AfterInsert 事件过程或宏对记录集进行重新查询。

BeforeInsert 和 AfterInsert 事件与 BeforeUpdate 和 AfterUpdate 事件相似。这些事件按照下列顺序发生:

BeforeInsert  BeforeUpdate  AfterUpdate  AfterInsert

下列表总结了这些事件的交互作用。

事件 在以下情况发生
BeforeInsert 用户在新记录中键入第一个字符。
BeforeUpdate 用户更新记录。
AfterUpdate 记录被更新后。
AfterInsert 更新的记录是一条新记录。


如果新记录中的第一个字符键入到文本框或组合框中,则 BeforeInsert 事件将在 Change 事件之前发生。

Open、Close 事件
                                


在窗体已打开,但第一条记录尚未显示时,Open 事件发生。对于报表,事件发生在报表被预览或被打印之前。


Close 事件发生在当窗体或报表被关闭并从屏幕删除时。
说明

如果要在这些事件发生时,运行宏或事件过程,请将 OnOpen 或 OnClose 属性设置为宏的名称或 [事件过程]。

在窗体的 Open 事件发生时,运行宏或事件过程可以关闭另一个窗口,或者将焦点移动到窗体中的某一特定控件上。也可以运行宏或事件过程,在窗体或报表被打开或打印之前来询问所需信息。例如,Open 宏或事件过程能打开一个自定义对话框,在自定义对话框中用户可输入准则,以限制显示在窗体上的记录集,或报表中包含的数据范围。

在激活一个已经打开的窗体时,Open 事件不会发生。例如,在 Microsoft Access 中,从另一个窗口切换到此窗体,或使用宏中的 OpenForm 操作将开启的窗体置于顶层。但是,在这些情况下将发生 Activate 事件。

在打开基于某一基础查询的窗体时,Microsoft Access 在运行 Open 宏或事件过程之前将运行窗体的基础查询。但在打开基于该基础查询的报表时,Microsoft Access 在运行报表的基础查询之前将运行 Open 宏或事件过程,后者是为了使用户能在报表打开之前指定报表的准则,例如,当 Open 事件发生时,可显示一个自定义对话框对准则进行指定。

如果应用程序能够同时加载多个窗体,请用 Activate 和 Deactivate 事件来代替 Open 事件,以便在焦点移动到不同窗体时显示和隐藏自定义工具栏。

Open 事件发生在 Load 事件之前,在窗体打开和显示它的记录时触发该事件。

在第一次打开窗体时,事件以下列顺序发生:

Open  Load  Resize  Activate  Current

Close 事件发生在 Unload 事件之后。在窗体关闭之后,从屏幕上删除之前触发该事件。

在关闭窗体时,事件以下列顺序发生:

Unload  Deactivate  Close

当 Close 事件发生时,可以打开另一个窗口或要求输入用户名称来产生日志记录项,以指示使用此窗体或报表的用户。

如果想确定在宏或事件过程使用 Open 还是 Load 事件,那么请注意这两事件间一个显著的差别:Open 事件能被取消,而 Load 事件不能被取消。例如,如果在一个事件过程中为窗体的 Open 事件动态创建窗体的记录源,如果没有记录可显示,则可以取消窗体的打开事件。同样,Unload 事件也能被取消,但 Close 事件却不能。
---------------------
使用afterinsert & onclose

作者: zhuyiwen    时间: 2002-7-1 08:52
cattjiu的两个方法都很好。[em26]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3