访问对象 424

Posted

技术标签:

【中文标题】访问对象 424【英文标题】:Access object 424 【发布时间】:2017-06-13 01:57:15 【问题描述】:

我正在运行一个表达式来循环遍历一个记录集,并使用每个记录中的一个字符串在第二个表上运行一个更新查询。基于 LIKE 匹配,它更新字段以创建关系。我在 CurrentDb.Execute 需要运行时错误“424”对象时遇到问题。

表: 事务(要更新的主表) TransactionType(类型或类别的关系表) TransSet(要设置的字符串列表和事务类型)

Private Sub Toggle1_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset   
Set db = CurrentDb Set rst = db.OpenRecordset("TransSet")   
Do Until rst.EOF

CurrentDb.Execute ("UPDATE Transactions SET Transactions.TransactionType =" & (TransSet.TransTypeSet) & " WHERE ((Transactions.TransactionText1) Like * " &   (TransSet.TransIdent) & "*))")


rst.MoveNext Loop   
rst.Close Set rst = Nothing

End Sub

【问题讨论】:

【参考方案1】:

引用记录集对象,而不是记录集所基于的表或查询。 文本类型字段参数需要撇号分隔符。

CurrentDb.Execute ("UPDATE Transactions SET TransactionType ='" & rst!TransTypeSet & "'" & _  
" WHERE TransactionText1 Like '*" & rst!TransIdent & "*'")

【讨论】:

【参考方案2】:

谢谢 - 我也意识到了我的错误并修复了代码。我还更改了表名,以免与保留字混淆。

Private Sub Toggle1_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset

Set db = CurrentDb
Set rst = db.OpenRecordset("Select * FROM TransSet")

Do Until rst.EOF


CurrentDb.Execute ("UPDATE Trans SET trans.TransactionType =" & (rst!TransTypeSet) & " WHERE ((Trans.TransactionText1) Like '*" & (rst!TransIdent) & "*');")

' MsgBox ("UPDATE Trans SET trans.TransactionType =" & (rst!TransTypeSet) &     " WHERE ((Trans.TransactionText1) Like '*" & (rst!TransIdent) & "*');")


   rst.MoveNext
Loop

rst.Close
Set rst = Nothing

End Sub

【讨论】:

所有那些嵌入的括号都是不必要的。记录集字段引用周围的括号实际上没有任何作用。

以上是关于访问对象 424的主要内容,如果未能解决你的问题,请参考以下文章

在Excel VBA中,如何测试Excel.Range对象变量是否丢失其引用而不会引发运行时错误424 ..?

将对象粘贴到空单元格/工作表时出现错误 424 未被识别为对象

Excel VBA:运行时错误 424,需要对象

Excel VBA 424 错误对象需要,在单元格(行,列)。值

End Sub 上需要错误 424 对象

删除行时需要 Excel VBA 运行时错误“424”对象