设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: 小何
打印 上一主题 下一主题

[窗体] 主子窗体修改数据后提示问题?

[复制链接]
11#
 楼主| 发表于 2008-2-19 13:09:26 | 只看该作者
fswxs  你好!
你做的我试了一下,发现两问题:
1、没有修改数据时,也会提示是否保存?
2、我修改数据后,在提示是否保存时,我点击否也会保存?
这两个问题如何处理呢?
12#
发表于 2008-2-19 13:19:38 | 只看该作者
那是因为我删除了你的变量,你用回你以前的代码就是了
13#
发表于 2008-2-19 13:36:03 | 只看该作者
没看清楚,说的仔细点
14#
 楼主| 发表于 2008-2-19 14:31:51 | 只看该作者
主窗体解决了

[ 本帖最后由 小何 于 2008-2-19 15:21 编辑 ]
15#
 楼主| 发表于 2008-2-19 15:21:44 | 只看该作者
现在新问题:
当主窗体内有子窗体时,修改了子窗体内容,如何得到同样的提示?(或主窗体和子窗体一起修改了数据又怎么提示呢?)

[ 本帖最后由 小何 于 2008-2-19 15:27 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

16#
发表于 2008-2-19 15:32:57 | 只看该作者
原帖由 小何 于 2008-2-19 08:10 发表
如果按你这个的话,我一次性全部项目都修改后就会一个一个的提示,变的很麻烦.最好修改多个项目后一次性提示.

我在6楼的例子只是告诉你使用OldValue属性,如果你要一次性提示,就把代码放在窗体的更新前事件中,也不要放在保存按钮的单击事件,因为是绑定窗体,只要移动记录就保存数据了。
完整代码是这样的(无需公共变量):
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim st1 As String
st1 = "产品名称由 " & Me.产品名称.OldValue & " 修改成 " & Me.产品名称 & Chr(13)
st1 = st1 & "单位数量由 " & Me.单位数量.OldValue & " 修改成 " & Me.单位数量 & Chr(13)
st1 = st1 & "单价由 " & Me.单价.OldValue & " 修改成 " & Me.单价 & Chr(13)
st1 = st1 & "库存量由 " & Me.库存量.OldValue & " 修改成 " & Me.库存量 & Chr(13)
st1 = st1 & "订购量由 " & Me.订购量.OldValue & " 修改成 " & Me.订购量 & Chr(13)
st1 = st1 & "再订购量由 " & Me.再订购量.OldValue & " 修改成 " & Me.再订购量 & Chr(13)
st1 = st1 & "中止由 " & IIf(Me.中止.OldValue, "是", "否") & " 修改成 " & IIf(Me.中止, "是","否") & Chr(13)
If MsgBox("数据已经修改" & Chr(13) & Chr(13) & st1 & Chr(13) & Chr(13) & "是否保存?" & _
    Chr(13) & "单击是保存,单击否取消修改。", vbInformation + vbYesNo, "修改提示") = vbNo Then
    Cancel = True
    Me.Undo
End If
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点击这里给我发消息

17#
发表于 2008-2-19 15:34:44 | 只看该作者
原帖由 小何 于 2008-2-19 15:21 发表
现在新问题:
当主窗体内有子窗体时,修改了子窗体内容,如何得到同样的提示?(或主窗体和子窗体一起修改了数据又怎么提示呢?)

子窗体按上面的如法炮制
18#
发表于 2008-2-19 15:43:19 | 只看该作者
不用公共变量不行,他要求是没修改的不提示
对于子窗体也一样啊,最多弄个全局变量

点击这里给我发消息

19#
发表于 2008-2-19 15:46:15 | 只看该作者
不须要公共变量呀!再完善一下代码。

  1. Private Sub Form_BeforeUpdate(Cancel As Integer)
  2. Dim st1 As String
  3. If Me.产品名称.OldValue <> Me.产品名称 Then st1 = "产品名称由 " & Me.产品名称.OldValue & " 修改成 " & Me.产品名称 & Chr(13)
  4. If Me.单位数量.OldValue <> Me.单位数量 Then st1 = st1 & "单位数量由 " & Me.单位数量.OldValue & " 修改成 " & Me.单位数量 & Chr(13)
  5. If Me.单价.OldValue <> Me.单价 Then st1 = st1 & "单价由 " & Me.单价.OldValue & " 修改成 " & Me.单价 & Chr(13)
  6. If Me.库存量.OldValue <> Me.库存量 Then st1 = st1 & "库存量由 " & Me.库存量.OldValue & " 修改成 " & Me.库存量 & Chr(13)
  7. If Me.订购量.OldValue <> Me.订购量 Then st1 = st1 & "订购量由 " & Me.订购量.OldValue & " 修改成 " & Me.订购量 & Chr(13)
  8. If Me.再订购量.OldValue <> Me.再订购量 Then st1 = st1 & "再订购量由 " & Me.再订购量.OldValue & " 修改成 " & Me.再订购量 & Chr(13)
  9. If Me.中止.OldValue <> Me.中止 Then st1 = st1 & "中止由 " & IIf(Me.中止.OldValue, "是", "否") & " 修改成 " & IIf(Me.中止, "否", "是") & Chr(13)
  10. If Len(Trim(st1)) = 0 Then
  11.     Me.Undo
  12.     Exit Sub
  13. End If
  14. If MsgBox("数据已经修改" & Chr(13) & Chr(13) & st1 & Chr(13) & Chr(13) & "是否保存?" & _
  15.     Chr(13) & "单击是保存,单击否取消修改。", vbInformation + vbYesNo, "修改提示") = vbNo Then
  16.     Cancel = True
  17.     Me.Undo
  18. End If
  19. End Sub
复制代码
20#
发表于 2008-2-19 15:50:03 | 只看该作者
楼上正解 学习啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-28 11:15 , Processed in 0.121275 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表