2017-06-13 57 views
1

我正在運行一個表達式來遍歷一個記錄集,並且每個記錄中的字符串在第二個表上運行更新查詢。基於LIKE匹配,它更新一個字段以創建關係。我在CurrentDb.Execute中需要運行時錯誤'424'對象時遇到問題。訪問對象424

表: 交易(主表更新) TRANSACTIONTYPE TransSet(的類型或類別關係表)(字符串和TRANSACTIONTYPE列表設置爲)

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 & "*'") 
1

謝謝 - 我也意識到我的錯誤並修復了代碼。我也改變了表名,不要與保留字混淆。

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 
+0

所有這些嵌入式parens是不必要的。記錄集字段引用的參數確實沒有做任何事情。 – June7