关闭 Access 并引发“无法将焦点移至控件”错误时触发加载事件
Posted
技术标签:
【中文标题】关闭 Access 并引发“无法将焦点移至控件”错误时触发加载事件【英文标题】:On Load event firing when closing Access and throwing "can't move the focus to the control" error 【发布时间】:2017-11-21 19:10:43 【问题描述】:我有一个 Access 数据库,其中我在主窗体的 On Load 事件上有代码,用于将焦点设置到文本框并加载“新”记录。代码是:
Private Sub Form_Load()
'Makes it so that when frmDiversion_Review loads, it defaults to a new record
DoCmd.GoToRecord , , acNewRec
Me!FromDate.SetFocus
End Sub
FromDate 是一个未绑定的日期字段,用于表单标题的搜索/过滤部分。
我已经拆分了数据库,并且准备好了一个 .accde 文件,但是我注意到当我在 .accde 文件中关闭 Access 时,它给了我以下错误:
“您作为事件属性设置输入的加载时表达式产生了以下错误:
****NameOfDatabase**** 无法将焦点移到控件 FromDate。"
它没有给出错误编号。
代码已编译,我只使用 .accde 文件得到此错误。我不知道为什么在我关闭 Access 时甚至会触发 On Load 事件。有什么想法吗?
【问题讨论】:
这可能是您需要De-Compile您的应用程序的标志。在重新创建.accde
之前,在主前端 .accdb
中执行此操作。有时,这种奇怪的信息可能会无缘无故地出现。
不幸的是,这不起作用。我反编译,再次进行调试/编译过程,保存,压缩和修复,然后创建一个新的 .accde 文件,我得到了同样的错误。
该表单后面还有其他代码吗?检查Form_Close()
。
有相当多的代码,但没有关于 Form_Close 事件的代码。 Form_Open 事件中的代码仅根据用户的访问级别锁定某些控件。 FromDate 控件不是该部分的一部分,无论用户的访问级别如何,都会发生错误。
我使用 Load 事件来设置焦点以控制没有问题。但是,我在引用控件时使用点而不是 bang (!):Me.FromDate.SetFocus
。但是我从来没有用过acde。
【参考方案1】:
一些奇怪的情况可能会产生这种情况(例如,当您关闭时,与其他表单相关的某些内容...)引用了导致其打开的此表单。从这里很难说。
但是有一个简单的方法......只需在例程的开头添加这一行
出错后继续下一步
如果您知道例程中没有真正的错误,这是安全的,除了这个实际上没有任何意义的烦人的错误。如果可能发生真正的错误,那么添加这个 easy-out 后您将不再看到它们。
就个人而言,我更愿意找到原因并解决它,尤其是因为在您忙于关闭应用程序时,其他表单似乎正在尝试打开此表单,这是一个令人不安的想法。但是......当所有其他方法都失败时,这是一个解决方案。
【讨论】:
我也希望能弄明白。这似乎是一个很小的问题,但您的解决方案将是一个很好的临时备份计划,而我会尝试寻求一些帮助来解决它。以上是关于关闭 Access 并引发“无法将焦点移至控件”错误时触发加载事件的主要内容,如果未能解决你的问题,请参考以下文章
Web API 2 启用 CORS 引发 Access-Control-Allow-Origin 错误
在 C# 中,我应该如何关闭正在运行的线程(Access DB)?
Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧