这是我的测试代码。
Private Sub test()
Dim rs As New ADODB.Recordset
Dim size As LongLong
rs.Open "Select * From LocalFiles ", _
CurrentProject.AccessConnection, adOpenKeyset, adLockOptimistic
rs.AddNew
size = 12345678912345#
rs("FileSize") = size
rs.Update <-- show error Multiple-step OLE DB operation generated errors
rs.Close
End Sub
它在 rs.Update 行中显示错误 “多步 OLE DB 操作生成错误”
在我的数据库中,字段 FileSize 是大数数据类型。 我已经启用了它。并且它有新的数据库(大量)
我在VBA中定义了LongLong类型来存储这些数据。 但是当更新这个字段时,它显示上面的错误。
我google了一下,似乎可能是因为OLE DB驱动器不支持这种数据类型。
我不确定。
如何更新数据。请推荐我。
谢谢
我尝试不为 rs("FileSize") 赋值并且它有效,因此它仅与此行相关。
我尝试用谷歌来解决问题,但没有找到任何问题。
最后我找到了2个解决方案。
使用提供商 OLEDB 12 或 OLEDB 16 注意:我发现 CurrentProject.AccessConnection 使用 OLEDB 10 Provider
私有子测试1() 调暗 rs 作为新的 ADODB.Recordset Dim 尺寸 As LongLong Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=d:\data\Make Money\Rapidgator\Rapidgator.accdb;Persist Security Info=False;"
rs.Open "Select * From LocalFiles ", _
cn, adOpenKeyset, adLockOptimistic
rs.AddNew
size = 12345678912345#
rs("FileSize") = size
rs.Update
rs.Close
cn.Close
结束子
私有子测试2() Dim 尺寸 As LongLong 首先昏暗为 DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Select * From LocalFiles ", dbOpenDynaset)
size = 12345678912345#
rst.AddNew
rst("Size1") = size
rst.Update
rst.Close
结束子