MS Access 2010 VBA:自定义LostFocus子程序上的神秘编译错误

内里奥特

在数据验证表单中,我有一个子例程,通过确保释放时间(表格中的TimeReleased;表格中的Me.txtTimeReleased)在捕获时间(表格中的ObservationTime;表格中的Me.txtObservationTime)之后检查子例程,以检查LostFocus事件上先前输入的数据。形成)。我使用LostFocus而不是BeforeUpdate,因为数据已批量导入到db中,现在正在进行错误检查。

当用户跳出该子项附加到的字段时,我的用户不断收到编译错误(找不到编译错误:方法或数据成员),但我无法在本地重现该问题。该行发生错误:

If (Me.txtTimeReleased) <= (Me.ObservationTime) Then

突出显示的部分是“ .txtTimeReleased”

完整的代码块:

Private Sub txtTimeReleased_LostFocus()

Dim badData As Variant
Dim resp As Variant

'Also check that time released is after time captured
If Not IsNull(Me.txtObservationTime) And Not IsNull(Me.txtTimeReleased) Then
     If (Me.txtTimeReleased) <= (Me.ObservationTime) Then

         resp = MsgBox("Release time must be after capture time." & vbCrLf & "Please double check this field's value: is it correct?", _
                 vbYesNo + vbExclamation + vbDefaultButton2, "Release Time Before Capture Time")

         If resp <> vbYes Then badData = True

     End If
End If

If badData = True Then
     Me.cmbTaxonId.SetFocus 'set focus away so can set focus back
     With Me.txtTimeReleased
         .SetFocus
         .SelStart = 0
         .SelLength = 10
     End With
End If

End Sub

其他注意事项:

  • 表格字段和表单控件都被格式化为“短时间”(24小时制)
  • 该表单控件上有一个输入掩码,可保留24小时。我很少使用输入掩码,因此对它们不熟悉-也许输入掩码可能会引起问题?
  • 在大多数其他控件上也有类似的LostFocus子程序,它们不会产生此(或任何其他)错误

我尝试过的事情:

  • 检查拼写
  • 完全反编译和重新编译代码:从shift开始,通过shift进行压缩和修复,在按住shift的同时使用/ decompile标志打开,使用shift进行压缩和修复,使用shift重新打开,最后进行编译(无错误)
  • 用对我来说在相同数据上运行良好的数据库替换数据库中的表单
  • 谷歌

在我看来奇怪的事情是:

  • 我无法在本地重现该错误。
  • 该错误是在Me.txtTimeReleased的第二个实例而不是第一个实例上触发的:它已经通过了Not IsNull(Me.txtTimeReleased)检查。
  • 这是一个编译错误的事实:这是否可能掩盖了其他内容?

感谢您的宝贵时间,如果还有其他有用的信息,请告诉我。任何想法都是最欢迎的!

mwolfe02

/decompile我建议首先使用标志打开.mdb ,但是您说您已经尝试过了。

这是处理VBA在后台引起的“隐藏”编译问题的另一个未公开的技巧:

首先,为了安全起见,请制作.mdb的备份副本(毕竟,这是一种未记录的技术)。

然后,使用SaveAsText将表单保存到文本文件中:

SaveAsText acForm, "MyFormName", "C:\MyFormName.txt"

最后,使用同样未记录的LoadFromText重新加载表单:

LoadFromText acForm, "MyFormName", "C:\MyFormName.txt"

编译。
紧凑。
修理。
希望最好的。

祝好运。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

导出MS Access 2010 SQL

来自分类Dev

Pyodbc和MS Access 2010连接错误

来自分类Dev

在MS Access 2010中对表单上的记录进行排序

来自分类Dev

pyodbc and ms access 2010 connection error

来自分类Dev

MS Access 2010在查询中的运行总计

来自分类Dev

在Visual Basic 2010上的INSERT INTO命令上获取语法错误到MS ACCESS 2007

来自分类Dev

MS Access 2010宏生成器:父窗体上的控件的SetProperty

来自分类Dev

在MS Access 2010中创建工具提示

来自分类Dev

将查询结果插入MS Access 2010中的表

来自分类Dev

自动将不同的Excel文件导入MS Access 2010表

来自分类Dev

SQL Server 2012 Express连接到MS Access 2010

来自分类Dev

MS Access 2010 SQL选择进入计算列问题

来自分类Dev

无法在MS Access 2010中导入SQL查询

来自分类Dev

MS Access 2010多列组合框自动完成

来自分类Dev

在MS Access 2010中创建工具提示

来自分类Dev

在MS ACCESS 2010中创建表-使用Oracle SQL查询

来自分类Dev

如何在MS Access 2010中从TextBox保存值

来自分类Dev

MS Access 2010将计数结果链接到单个记录

来自分类Dev

SQL ORDER BY在MS Access 2010报告中的行为异常

来自分类Dev

MS Access 2010会自动关闭。怎么预防?

来自分类Dev

MS Access 2010 SQL选择进入计算列问题

来自分类Dev

MS Access 2010日期范围结果不理想

来自分类Dev

MS Access 2010 - 通过时间戳过滤时出错

来自分类Dev

在 sql ms-Access-2010 中使用模块

来自分类Dev

MS Word 2010中的自定义日期格式

来自分类Dev

MS Access编译并运行

来自分类Dev

MS Access 2010-如何使用另一个表单元素中的条件为表单ComboBox设置自定义行源?

来自分类Dev

在MS Access 2010中使用VBA将第三级添加到Treeview Active X控件

来自分类Dev

在Excel 2010中隐藏MS VBA屏幕

Related 相关文章

热门标签

归档