VBA代码停止按预期工作

时间:2015-08-27 21:24:27

标签: vba ms-access access-vba

我有一个奇怪的问题,工作的代码突然开始产生问题(我不知道如何绕过它)

我在Form1上有List Box(List2),它由以下人员填充:

SELECT [queryFormyTradycyjne].[Nr Maszyny], [queryFormyTradycyjne].[UID], [queryFormyTradycyjne].[Nazwa], [queryFormyTradycyjne].[UAP], [queryFormyTradycyjne].[Linia], [queryFormyTradycyjne].[GAP], [queryFormyTradycyjne].[Status] FROM queryFormyTradycyjne ORDER BY [Nr Maszyny]; 

queryFormyTradycyjne代码:

SELECT Lista.[Nr Maszyny], Lista.[Nazwa], Lista.[UAP], Lista.[Linia], Lista.[GAP], Lista.[Status], Lista.[UID]
FROM Lista
WHERE Lista.isValid=False And Lista.UID Like 'FF*';

如果我双击List2中的某个项目,它会将值传递给另一个表单(AwariaZgloszenieNew),并将其传递给名为 txtNrMaszyny 的文本字段。

从2个小时前开始,工作正常。我实际上没有触及代码中的任何东西或任何这些形式。我检查了几台装有不同Access版本的PC。 相同的结果:错误对象“表单”的方法“项目”失败( - 2146500594(800f000e))

我的双击事件的VBA代码:

Public strSelectedItem As String

Private Sub List2_DblClick(Cancel As Integer)
Dim varItem As Variant

With Me.List2
    For Each varItem In .ItemsSelected
    strSelectedItem = .ItemData(varItem)
    Next
End With

DoCmd.OpenForm "AwariaZgloszenieNew"

[Forms]![AwariaZgloszenieNew].[txtNrMaszyny] = strSelectedItem

End Sub

有任何想法的人吗?

1 个答案:

答案 0 :(得分:1)

If "Compact and repair" doesn't help, there are two more things you can try.

  • Decompile

How does one decompile and recompile a database application?
按照David-W-Fenton对这封信的回答中的步骤进行操作。

  • 创建一个新数据库并导入旧数据库中的所有对象。

编辑 - 刚刚看到您的最新评论 如果VBA代码消失,并且没有可用的备份,则某些部分可能会丢失。对于未来:在开发过程中,“压缩和修复”和(在较小程度上)反编译应该是常规任务。

我不知道Decompile如何使用受密码保护的代码 恕我直言,更好的选择来保护Access中的代码是通过分发.mde前端而不是.mdb