Outlook VBA-无法更新数据库

Outlook VBA-无法更新数据库,vba,oracle11g,outlook,adodb,recordset,Vba,Oracle11g,Outlook,Adodb,Recordset,我在更新数据库时遇到问题。我正在使用ADODB记录集。它给了我这个错误:BOF或EOF为真,或者当前记录已被删除。请求的操作需要当前记录。但是,当我得到变量状态的结果时,查询确实会产生结果。但是,当我到达.Fields行时,它会出错 newVal= "new value" sql = "select STATUS FROM NEW_TABLE where ID = '2'" With rs .Open sql, dbs, adOpenStatic, adLockOptimistic

我在更新数据库时遇到问题。我正在使用ADODB记录集。它给了我这个错误:BOF或EOF为真,或者当前记录已被删除。请求的操作需要当前记录。但是,当我得到变量状态的结果时,查询确实会产生结果。但是,当我到达.Fields行时,它会出错

newVal= "new value"
sql = "select STATUS FROM NEW_TABLE where ID = '2'"

With rs
    .Open sql, dbs, adOpenStatic, adLockOptimistic
    status = rs.GetString
    .Fields("STATUS").Value = newVal
    .Update
    .Close

End With

cnn.Close

根据您的注释,考虑在ADODB连接上使用Actudio追加查询。无需打开记录集。实际保存对记录的删除、插入和更新所做的更改

追加查询

newVal= "new value"
sql = "INSERT INTO NEW_TABLE (ID, Status) VALUES ('2', '" & newValue & "')"
dbs.Execute sql
更新查询

newVal= "new value"
sql = "UPDATE NEW_TABLE SET Status = '" & newValue & "' WHERE ID='2'"
dbs.Execute sql

你连接到哪个数据库?微软接入?SQL Server?提及并标记db引擎非常重要。错误基本上是说查询没有返回任何记录。如果要将记录添加到表中,为什么要筛选ID='2'。我更新了Oracle DB的标记。我正在尝试更新ID=2的“状态”列