Office中国论坛/Access中国论坛

标题: [求助]acc+sql后,绑定数据的控件为空,可是sql表中该列为主键,错误如何处理? [打印本页]

作者: wu8313    时间: 2006-9-29 03:11
标题: [求助]acc+sql后,绑定数据的控件为空,可是sql表中该列为主键,错误如何处理?
acc通过odbc链接到sql后,当一个绑定数据的控件为空,可是sql表中该列为主键,错误如何处理?

在 acc中弹出的消息框如下:如何截获该错误,处理该错误?

[attach]20631[/attach]

作者: andymark    时间: 2006-9-29 05:19
设置为主键是不允许NULL值
作者: wu8313    时间: 2006-9-30 03:26
以下是引用andymark在2006-9-28 21:19:00的发言:
设置为主键是不允许NULL值

这是当然的事情。问题就是:


我该如何 截获并处理 上图中的消息?想要替换为自定义的消息。

还有就是我根本就看不到 odbc 错误 或者 sql update 错误消息。

可是使用 acc+sql以后,原来的方法就失效了。

==========================================================

在 acc中,我使用 绑定控件所在窗体的  error 代码可以很好地解决这个问题。


acc中我使用以下代码可以解决 主键为空的错误处理 的问题:

当清除name字段的值以后,滚动记录或者关闭窗体,可以看到自定义消息。

Private Sub Form_Error(DataErr As Integer, Response As Integer)

    Debug.Print DataErr


Select Case DataErr

   
   
    Case 2169, 3058 '捕获意外关闭窗体时,系统提示不能保存的消息
   
    Response = acDataErrContinue '注销系统消息
   
    MsgBox "主键字段为null,您的编辑将无法无法保存"

   
   
      
    Case Else  '否则显示程序中其他没有被开发者所预料到的错误
    Response = acDataErrDisplay
   
   

End Select

End Sub

相关附件如下:

[attach]20663[/attach]

===================================


[此贴子已经被作者于2006-9-29 20:25:54编辑过]


作者: wu8313    时间: 2006-10-1 01:42
仅仅在acc中我使用3楼代码可以解决 主键为空的错误处理 的问题。

可是使用 acc+odbc上面的方法就无效了,该如何解决?

[此贴子已经被作者于2006-9-30 17:43:32编辑过]


作者: wu8313    时间: 2008-8-8 17:06
请教的问题重新表述如下:

有一sql表,名称为d 。该表 中有一个名称为 a  的'列,该列被设为'不允许为空' 。
在acc中有一个窗体 ,含有一个控件 c , 控件c 绑定到表d 的 a列。
使用acc+odbc+sql的方式。

问题:当在控件c中输入一个合法值(数据类型和sql表中的a列相符),然后使用backspace清空该控件,就会有一楼贴图的错误提示。怎样截获该提示,并替换为自己定义的msgbox ?

[ 本帖最后由 wu8313 于 2008-8-8 17:14 编辑 ]
作者: wu8313    时间: 2008-8-9 09:47
dddddddddddd




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3