【发布时间】:2021-01-11 22:14:59
【问题描述】:
我们有一个绑定到后端 SQL Server 数据库的 Access 表单。当用户输入的文本超出绑定到该表单控件的相应数据列的数据限制时,Access 会显示“文本太长,无法编辑”错误。我认为(但无法验证)这是错误 #2221。
我希望能够捕获此错误以提供对用户更友好的消息。在研究中(发现 this 和 this),一些编码人员提到能够在 Form_Error 事件中捕获该错误,我发现了一篇支持文章,其中包含使用 Form_Error 事件捕获错误 here 的一个不错的示例。但这对我不起作用。 Form_Error 事件似乎不会在此错误期间触发,尽管它似乎在先前引用的线程中以这种方式成功捕获错误时触发。线程中有人提到该错误在 Access 2002 之前无法捕获,但自 Access 2002 以来。我有 Access 365!
了解此错误是否实际上是可捕获的,或者我如何在 Form_Error 事件或其他事件中处理此问题?
【问题讨论】:
-
您的链接几乎总是有用的,但是 Solvusoft 页面是垃圾。只是一些通用的绒毛和他们产品的广告。 @June7
-
您已经有证据表明该错误是可捕获的。这表明此错误消息有多模糊,并且 Access 不一定是我在该链接中发现的有趣来源。坦率地说,找不到太多。如果我们无法重现以及没有代码可分析,则问题可能会被关闭。
-
我只记得很久以前处理过这个问题,至少看起来是一样的。我尽量防止错误,而不是尽可能地陷入困境。在 SQL UPDATE 操作编辑记录之前,我使用代码测试 UNBOUND 控件的输入长度。代码在按钮单击事件中。在您的情况下,也许可以使用控件 BeforeUpdate。在提交输入之前验证数据,在输入满足要求之前不要让用户离开控制权。
-
我也刚刚想到,可以使用 ValidationRule 和 ValidationText 属性。规则如:
Len([myControl])<=25 Or Is Null.