我有一个 MS Access 前端应用程序,其中要打开的第一个表单(启动屏幕 - 从 Autoexec 宏打开表单)有一个 on_Load 事件,它将计时器间隔设置为 0,还有一个 on current 事件将它设置为到 100。计时器事件启动应用程序运行(附加到后端 SQL Server 数据库等)。
当应用程序的新副本被复制到新位置时——当有新版本时我们会这样做——它被复制到每个用户的机器上,应用程序的第一次调用就像计时器永远不会触发一样。换句话说,当前事件似乎永远不会触发。
我找不到导致它的原因,我能想到的唯一解释是在发布前测试启动时,我设置了表单,因此它的当前记录是启动时加载表单时设置的记录.
这是真的?是否有人知道 on_current 事件不会因此而触发的情况,或者任何其他原因。
我等到 on_current 事件的原因是表单本身有一个数据源,该数据源取决于表单过滤器设置不同数据库连接的参数(例如生产 v 测试)。一种解决方法可能是在加载事件中设置计时器间隔 - 但它会导致可能的竞争条件,其中计时器在 on_current 设置正确的数据库之前触发,我宁愿避免这种风险