各位老师,这个功能如何实现:如果对文本框等控件进行过修改,关闭窗体是会提示是否保存?
一个窗体是对记录进行编辑修改等操作。用户修改后要按下保存按钮进行保存,后台是sql server 2000,用户抱怨,如果忘点保存按扭就坏了。要求增加一个自动保存的功能,可是我说没有办法实现,因为保存操作必须要用操作者进行确认,可是我回来想想,用户说的也有道理,所以想增加一个功能,在窗口退出时,如果用户进行过修改但没有保存,就增加一个提示,谢询问是否保存,但是关键是如何判断用户是否进行过修改却没有保存呢?如果每次关闭窗口时都提示,用户更是有意见。所以想听听各位老师的高见。
谢谢先。
一个窗体是对记录进行编辑修改等操作。用户修改后要按下保存按钮进行保存,后台是sql server 2000,用户抱怨,如果忘点保存按扭就坏了。要求增加一个自动保存的功能,可是我说没有办法实现,因为保存操作必须要用操作者进行确认,可是我回来想想,用户说的也有道理,所以想增加一个功能,在窗口退出时,如果用户进行过修改但没有保存,就增加一个提示,谢询问是否保存,但是关键是如何判断用户是否进行过修改却没有保存呢?如果每次关闭窗口时都提示,用户更是有意见。所以想听听各位老师的高见。
谢谢先。
不知道你能听明白没有!
--------------------
是不是要检测每一个控件呀?如果值有变化就说明修改过了。对吗?
在编辑控件内容更改后 = True.
在窗体启动、记录集显示刷新和记录保存后 = False.
---------------------
好象不是这样的,word中,你打个空格再删了,关闭时也提示保存,其实内容一点没变。
建立一个全局变量(窗体级也好模块级也好都一样)
写个大概框架给楼主看看:OPTIONAL EXPLICIT
DIM SAVED AS BOOLEAN
...
SUB TEXT_CHANGE()
SAVED = FAUSE '只要一改,就是“未保存”了
END SUBSUB SAVE()
... '保存文件
SAVED = TRUE '保存了,当然就是“已保存”咯
END SUBSUB FORM_UNLOAD(CANCEL AS LONG)
DIM A AS LONG
IF SAVED THEN END SUB '保存了,继续退出。
A = MSGBOX("文件未保存,要保存么?",,VBYESNOCANCEL)
SELECT CASE A
CASE VBYES: CALL SAVE
CASE VBNO: '什么也不干
CASE VBCANCEL: CANCEL = -1
END SELCET
END SUB大概就是这么个样子,楼主仔细看看就明白了,中间的功能语句自己添上去。