当修改后提示保存

gaojupeng 2007-03-23 09:35:36
当用户修改了数据后怎么设置系统提示保存然后才能退出程序?
我这用了不少文本框,难不成要在各个文本框的CHANGE事件里写代码吗?不知道大家怎么处理这种情况。谢谢,以前用PB时就简单设置一下数据窗口就行了,感觉VB真麻烦。
...全文
205 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
熊孩子开学喽 2007-03-23
  • 打赏
  • 举报
回复
这其实并不难,楼主且看我的实现方法。

1: 每一个有修改、保存数据的窗体中定义一个窗体级全局变量
比如:Dim Saved as Boolean

2: 在窗体加载的时候该变量设为真
Sub Form_Load()
Saved=True
End Sub

3: 在有数据修改的控件中发生按钮事件就将该变量设为假:
Sub Text_change(Byval Index as Integer)
Saved = False
End Sub

注意:这里用的是控件数组,否则的话如果有100个TEXT控件,就要加100句,那可不是什么好的编程方法。如果还有其他数据编辑控件,也要在里面加上这一句。

4: 在保存数据的时候将此变量设为真:
Sub SaveData
... '保存数据的代码
...
Saved = True
End Sub

5: 最重要的地方,就是在窗体退出的时候判断Saved是否为真,如果为真就退出,如果为假则提示
Private Sub Form_Unload(Cancel As Integer)
If Not Saved Then
If MsgBox("要保存数据么?", vbYesNo) = vbYes Then SaveData
End Sub


以上这些不算很难吧?只要有基本的VB编程能力就可以做到,楼主只放10分可不厚道哦。
gaojupeng 2007-03-23
  • 打赏
  • 举报
回复
关键如何判断数据有没有修改,
fankun 2007-03-23
  • 打赏
  • 举报
回复
在窗体的unload事件中加代码也可以
gaojupeng 2007-03-23
  • 打赏
  • 举报
回复
关键是窗体多,控件也多。我有的窗体用了近100个文本框。
界面是这样的;
上半部分是录入数据区:有很多控件,如文本框,下拉框等。
下半部分是MSF控件。里面是录入数据的集合。
在MSF控件中点击,详细信息会出现在上面的录入数据区,然后可以在录入数据区修改。

不好弄,点击一下MSF(没有修改数据)就会触发录入数据区的文本框的CHANGE,为了解决这个问题可能还要定义变量。
晕啊
zzyong00 2007-03-23
  • 打赏
  • 举报
回复
在CHANGE事件中传出一个标记变量,这也没什么麻烦吧
gaojupeng 2007-03-23
  • 打赏
  • 举报
回复
这个问题,如果单单写代码的话确实不难,但最起码思路得对然后才能编码吧。
gaojupeng 2007-03-23
  • 打赏
  • 举报
回复
界面是这样的;
上半部分是录入数据区:有很多控件,如文本框,下拉框等。
下半部分是MSF控件。里面是录入数据的集合。
在MSF控件中点击,详细信息会出现在上面的录入数据区,然后可以在录入数据区修改
当我在MSF中先后点击两条记录时,录入数据区的同一个文本框的数据会变化,会触发它的CHANGE事件,这就使得窗体变量Saved = False ,但事实上我并没有修改数据,结果也会提示让我保存。

不知道我这么说楼上的能明白吗?
datou985 2007-03-23
  • 打赏
  • 举报
回复
呵呵,这个问题应该不难吧
不明白上面提的疑问哦
按女人之美提的应该可以吧
gaojupeng 2007-03-23
  • 打赏
  • 举报
回复
谢谢楼上的,我点击一条记录时,再点另一条记录时,同一个文本框值也会变,Saved = False 虽然没有修改数据,但仍然要提示保存是不是不太好?!那么如何处理这个问题呢?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧