你好我行对一个文本框得数据在修改时进行判断

笑虾 2008-10-25 10:36:18
我想对一个组合框的数据在修改时进行判断
本来打算在“更新钱前事件中加入if,提示Magbox提示YES 或NO 如果选YES就继续,完成更新。
如果选NO就取消本次更新,文本框的数据变会原来得不变。
听说有个取消更新事件得方法。
可是查了一下ACCESS的组合框里好象没有。
要实现这个应该如果做?谢谢
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
笑虾 2008-10-30
  • 打赏
  • 举报
回复
Private Sub 客户编号_BeforeUpdate(Cancel As Integer)
If MsgBox("您确定更改数据?", vbDefaultButton2 + vbYesNo, "更改提示!") = vbNo Then
Me.Undo
End If
End Sub


这样就搞定了.

原来我搞错对象了.一直想在组合框上调用Undo.其数据还是对应Form的所以应该用Me.Undo,而不是Me.客户编号.Undo

非常感谢
ewang11 2008-10-30
  • 打赏
  • 举报
回复
参考下面的例子
http://topic.csdn.net/u/20081012/11/c83f0178-7c73-4f46-8bef-133e4a29b78d.html
笑虾 2008-10-30
  • 打赏
  • 举报
回复
你这个用了"NotInList"事件.
但如果列表中有那,我依然想提示呢?
不一定是要输入了数据表中没有的数据才提示

比如这样,原来的组合框中已经有值.
我在组合框中输入新值,回车后.提示我是否更新数据?这时我后悔了要取消.
(因为这个组合框的值更新后它几个文本框的值:
Private Sub 客户编号_AfterUpdate()
On Error GoTo 客户编号_AfterUpdate_Err

客户全称.Value = DLookup("客户全称", "客户信息", "客户编号='" & 客户编号.Value & "'")
联系地址.Value = DLookup("联系地址", "客户信息", "客户编号='" & 客户编号.Value & "'")
联系人.Value = DLookup("联系人", "客户信息", "客户编号='" & 客户编号.Value & "'")
邮编.Value = DLookup("邮编", "客户信息", "客户编号='" & 客户编号.Value & "'")
电话.Value = DLookup("电话", "客户信息", "客户编号='" & 客户编号.Value & "'")

客户编号_AfterUpdate_Exit:
Exit Sub

客户编号_AfterUpdate_Err:
MsgBox Error$
Resume 客户编号_AfterUpdate_Exit

End Sub


因为有时是一时手快,所以常常为此后悔.
别外就是以上代代码是把其它几个文本框设置为"客户信息"表中的数据.
但这只是默认数据,经常还有是有加减的内容.如果因为一时手误,手动填写的内容一下全补刷成默认值了.
好伤心哦.

再想想办法吧
Combo0.Undo 加在更新我试过,无法中断更新.
ewang11 2008-10-26
  • 打赏
  • 举报
回复
模块代码:

Public Sub ComboBoxAppend(ByRef srcCtl As ComboBox, ByRef NewData As String, ByRef Response As Integer)
Dim adoConn As ADODB.Connection
Dim adoRs As New ADODB.Recordset

If MsgBox("您输入的值不在列表中,是否要添加到列表?", vbOKCancel) = vbCancel Then
Response = acDataErrContinue
srcCtl.Undo
Exit Sub
End If

Select Case srcCtl.RowSourceType
Case "Value List":
srcCtl.RowSource = srcCtl.RowSource & ";" & NewData
Case "Table/Query":
Set adoConn = CurrentProject.Connection
adoRs.Open srcCtl.RowSource, adoConn, adOpenDynamic, adLockOptimistic
adoRs.AddNew
adoRs(srcCtl.BoundColumn - 1) = NewData
adoRs.Update

adoRs.Close
Case "Field List":
Set adoConn = CurrentProject.Connection
adoConn.Execute "ALTER TABLE " & srcCtl.RowSource & " ADD COLUMN " & NewData & " Text"
End Select

Response = acDataErrAdded
End Sub




窗体控件的调用:



Private Sub Combo0_NotInList(NewData As String, Response As Integer)
ComboBoxAppend Combo0, NewData, Response
End Sub


7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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