这其实并不难,楼主且看我的实现方法。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分可不厚道哦。
界面是这样的;
上半部分是录入数据区:有很多控件,如文本框,下拉框等。
下半部分是MSF控件。里面是录入数据的集合。
在MSF控件中点击,详细信息会出现在上面的录入数据区,然后可以在录入数据区修改。不好弄,点击一下MSF(没有修改数据)就会触发录入数据区的文本框的CHANGE,为了解决这个问题可能还要定义变量。
晕啊
比如: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分可不厚道哦。
上半部分是录入数据区:有很多控件,如文本框,下拉框等。
下半部分是MSF控件。里面是录入数据的集合。
在MSF控件中点击,详细信息会出现在上面的录入数据区,然后可以在录入数据区修改
当我在MSF中先后点击两条记录时,录入数据区的同一个文本框的数据会变化,会触发它的CHANGE事件,这就使得窗体变量Saved = False ,但事实上我并没有修改数据,结果也会提示让我保存。不知道我这么说楼上的能明白吗?