请教个思路,如何在窗体中做一个标志,用户只要进行过编辑,退出窗体时就会提示保存?
是这样的:
窗体上有很多文本框,用户在文本框中对记录字段进行修改后,有时忘了保存就退出窗体,可是我又不想设计成只要退出窗本就自动保存,[因为这样容易把错误信息保存了],我只想做一个提省的功能.当用户什么都不改,只做查询时什么也不提示.
可是这个标记如何定呀?真想不出思路.
请教各位老大了.

解决方案 »

  1.   

    很简单,设置一个全局变量:Dim Saved as boolean
    Sub form_load()
    Saved= True
    end sub
    ...
    只要你的程序中任何一个地方有修改动作就设: Saved = False
    ...然后在退出的时候检查该变量:
    Sub Form_unload(cancel as long)
    Dim I as long
    if Not Saved then
       I = msgbox("do you want to save it?",,vbyesnocancel)
       select case I
          case vbyes: 保存
          case vbno: 什么也不干
          case vbcancel: cancel = 1 '不退出程序
       end select
    end if
    end sub
          是否看明白了?很简单吧
      

  2.   

    是这样的:
    Option Explicit
    Dim isSave As Boolean '窗体需要保存标志
    Private Sub Form_Unload(Cancel As Integer)
    Dim i As Integer
    For i = 0 To 9 '假设共10个文本框 (文本框数组)
        If Text1(i).DataChanged Then '只要有1个文本框内容被修改过了
            isSave = True  '需要保存
            Exit For
        End If
    Next i
    If isSave Then
        If MsgBox("尚未保存,真的要退出吗?", vbOKCancel + vbInformation, "提示信息") = vbCancel Then
            Cancel = True
        End If
    End If
    End Sub
      

  3.   

    判断文本框是否改变,用datachanged 属性有这样一个问题,比如文本框原值为 23.232,用户把它改为45.44,然后用户又改回到23.232,按理说这个文本框并没有发生值的改变,可是这时datachanged属性也为true.
    所以判断文本框的值是否改变是一个很不好弄的问题。
      

  4.   

    你看人家微软的WORD不就行了 反正有过变化就提示下么 这个也无所谓的呀