记录集 - 没有当前记录

时间:2018-01-04 11:37:31

标签: ms-access access-vba ms-access-2010

我在录制集方面遇到了一些困难。

CODE:

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM tbl_Suggestions_Historic WHERE ID = ' " & ID & " '")

    rs.Edit
    rs("Status") = "Closed By User"
    rs("ReasonClosed") = ClosedWhy
    rs.Update

Set rs = Nothing

问题: 我有一个列表框,其中包含一个帐户列表。单击一个帐户时,文本框将填充记录ID,我希望更改更新该特定记录。

错误: 收到的消息是“No Current Record'

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

可能的错误是您的ID列是数字,而不是字符串,因此您应该删除引号:

Set rs = db.OpenRecordset("SELECT * FROM tbl_Suggestions_Historic WHERE ID = " & ID)

如果是字符串,您需要注意自己的空间。您在ID之前包含一个空格。

但是,这是更新查询而不是记录集的一个很好的用例。 Imo,你应该删除所有的记录集代码,然后使用它:

CurrentDb.Execute "UPDATE tbl_Suggestions_Historic SET [Status] = 'Closed By User', [ReasonClosed] = '" & ClosedWhy & "' WHERE ID = " & ID

或者,如果要正确执行,请使用参数。我没有使用它们,因为你没有

请参阅下文,了解使用参数的示例

Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = CurrentDb
Set qdf = db.CreateQueryDef("","UPDATE tbl_Suggestions_Historic SET [Status] = 'Closed By User', [ReasonClosed] = ? WHERE ID = ?" )
qdf.Parameters(1) = ClosedWhy
qdf.Parameters(2) = ID
qdf.Execute