各位老师,这个功能如何实现:如果对文本框等控件进行过修改,关闭窗体是会提示是否保存?
一个窗体是对记录进行编辑修改等操作。用户修改后要按下保存按钮进行保存,后台是sql server 2000,用户抱怨,如果忘点保存按扭就坏了。要求增加一个自动保存的功能,可是我说没有办法实现,因为保存操作必须要用操作者进行确认,可是我回来想想,用户说的也有道理,所以想增加一个功能,在窗口退出时,如果用户进行过修改但没有保存,就增加一个提示,谢询问是否保存,但是关键是如何判断用户是否进行过修改却没有保存呢?如果每次关闭窗口时都提示,用户更是有意见。所以想听听各位老师的高见。
谢谢先。

解决方案 »

  1.   

    加个全局变量,在change事件里赋值为true,做保存操作时赋值为false
      

  2.   

    这个问题,不难实现,举个例子,你注意到 dreamweaver 编辑文件的时候,只要你动一下,就会出现一个 “文件名*”,就表示,已经在编辑状态了!你也可以试一下呀,改变一下,你的标题栏,如果最后有一个"*",就表示,在编辑而且没有保存的状态;
        不知道你能听明白没有!
      

  3.   

    加个全局变量,在change事件里赋值为true,做保存操作时赋值为false
    --------------------
    是不是要检测每一个控件呀?如果值有变化就说明修改过了。对吗?
      

  4.   

    是的。窗体级变量就可以了。
    在编辑控件内容更改后 = True.
    在窗体启动、记录集显示刷新和记录保存后 = False.
      

  5.   

    最安全的方法就和office一样,打开文件时就创建一个副本,关闭时就比较这个文件.若是相同则没有改,否则.....
      

  6.   

    最安全的方法就和office一样,打开文件时就创建一个副本,关闭时就比较这个文件.若是相同则没有改,否则.....
    ---------------------
    好象不是这样的,word中,你打个空格再删了,关闭时也提示保存,其实内容一点没变。
      

  7.   

    我的方法和一楼,二楼,四楼说的一样:
    建立一个全局变量(窗体级也好模块级也好都一样)
    写个大概框架给楼主看看: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大概就是这么个样子,楼主仔细看看就明白了,中间的功能语句自己添上去。
      

  8.   

    你可以将text中的内容和数据库的记录比较,如果text中的内容和库中记录不一样就提示保存。