当用户修改了数据后怎么设置系统提示保存然后才能退出程序?
我这用了不少文本框,难不成要在各个文本框的CHANGE事件里写代码吗?不知道大家怎么处理这种情况。谢谢,以前用PB时就简单设置一下数据窗口就行了,感觉VB真麻烦。

解决方案 »

  1.   

    在CHANGE事件中传出一个标记变量,这也没什么麻烦吧
      

  2.   

    关键是窗体多,控件也多。我有的窗体用了近100个文本框。
    界面是这样的;
    上半部分是录入数据区:有很多控件,如文本框,下拉框等。
    下半部分是MSF控件。里面是录入数据的集合。
    在MSF控件中点击,详细信息会出现在上面的录入数据区,然后可以在录入数据区修改。不好弄,点击一下MSF(没有修改数据)就会触发录入数据区的文本框的CHANGE,为了解决这个问题可能还要定义变量。
    晕啊
      

  3.   

    在窗体的unload事件中加代码也可以
      

  4.   

    这其实并不难,楼主且看我的实现方法。1: 每一个有修改、保存数据的窗体中定义一个窗体级全局变量 
        比如:Dim Saved as Boolean
        
    2:  在窗体加载的时候该变量设为真
        Sub Form_Load()
        Saved=True
        End Sub3:  在有数据修改的控件中发生按钮事件就将该变量设为假:
        Sub Text_change(Byval Index as Integer)
        Saved = False
        End Sub
     
    注意:这里用的是控件数组,否则的话如果有100个TEXT控件,就要加100句,那可不是什么好的编程方法。如果还有其他数据编辑控件,也要在里面加上这一句。4: 在保存数据的时候将此变量设为真:
        Sub SaveData
        ...      '保存数据的代码
        ...
        Saved = True
        End Sub5: 最重要的地方,就是在窗体退出的时候判断Saved是否为真,如果为真就退出,如果为假则提示
        Private Sub Form_Unload(Cancel As Integer)
        If Not Saved Then 
           If MsgBox("要保存数据么?", vbYesNo) = vbYes Then SaveData
        End Sub
    以上这些不算很难吧?只要有基本的VB编程能力就可以做到,楼主只放10分可不厚道哦。
      

  5.   

    谢谢楼上的,我点击一条记录时,再点另一条记录时,同一个文本框值也会变,Saved = False 虽然没有修改数据,但仍然要提示保存是不是不太好?!那么如何处理这个问题呢?
      

  6.   

    界面是这样的;
    上半部分是录入数据区:有很多控件,如文本框,下拉框等。
    下半部分是MSF控件。里面是录入数据的集合。
    在MSF控件中点击,详细信息会出现在上面的录入数据区,然后可以在录入数据区修改
    当我在MSF中先后点击两条记录时,录入数据区的同一个文本框的数据会变化,会触发它的CHANGE事件,这就使得窗体变量Saved = False ,但事实上我并没有修改数据,结果也会提示让我保存。不知道我这么说楼上的能明白吗?