MS Access 中的拼写检查 VBA 子程序已停止工作

Posted

技术标签:

【中文标题】MS Access 中的拼写检查 VBA 子程序已停止工作【英文标题】:Spell checking VBA sub in MS Access has stopped working 【发布时间】:2020-11-16 10:35:08 【问题描述】:

我有一个子程序几个月来一直运行良好,但现在,代码没有任何变化,它突然开始出错。这是用于拼写检查文本框内容的 VBA 代码。代码如下:

Sub SpellCheck(ByRef YourTB As TextBox)

With YourTB
    .SetFocus
    .SelStart = 0
    .SelLength = Len(YourTB)
    DoCmd.RunCommand acCmdSpelling
    .SetFocus
    .SelStart = 0
    .SelLength = 0
End With

End Sub

我得到的错误是: 错误 2046 - 命令或操作“拼写”现在不可用。

正如我所说,它以前运行良好,但现在突然停止为数据库的所有用户工作。我的 Google 搜索只找到了一些关于此的报告,没有找到我能找到的解决方案。

仅供参考,此访问通过 Microsoft 365 E3 订阅,Win10 上的所有 PC。

有什么想法吗?提前致谢!

【问题讨论】:

【参考方案1】:

好的,我已经弄清楚出了什么问题,所以在这里发帖以防其他人有所帮助。

发现表单记录源(查询)已被修改,并且是只读的。似乎拥有只读记录源将不允许运行拼写检查(因为您可能无法更改数据)。

查询并不意味着是只读的,但由于表单上正在修改的数据未链接到查询,因此并未发现它是一个问题。

调整查询使其不是只读的,允许再次运行拼写检查。

【讨论】:

以上是关于MS Access 中的拼写检查 VBA 子程序已停止工作的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2013:通过 VBA 使用 MS Word 的语法检查

VBA 列出 MS Access 中所有打开的对象

访问 VBA 拼写检查子表单的一个字段

从 Excel VBA 的 MS Access 表单中获取价值

如何通过 MS-Access VBA 中的 TextBox.OnKeyUp 属性传递 KeyCode

如何使用查询或 VBA 和 SQL 更新 MS ACCESS 中的表