excel - 多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值
问题描述
请帮我。Excel VBA 抛出此错误:多步 OLE DB 操作生成错误
上线: cmd.Parameters("[days]") = ActiveWorkbook.Sheets("MABI_Extracts").Range("B18").Value
我正在尝试使用整数参数在名为“AGBA_Conversion”的访问中运行查询。我该如何解决?提前致谢 :)
Sub RECT_MBTCLeads2_Extracts()
Dim cmd As New ADODB.Command, rs As ADODB.Recordset
Dim sht As Worksheet
Dim b As String
Dim d As Long
Dim a As String
Set sht = ActiveWorkbook.Sheets("AGBA_Conversion")
sht.Range("B1").ClearContents
cmd.ActiveConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\nemberga\OneDrive - AXA\Documents\Automation\MBTC Conversion.accdb"
cmd.CommandType = adCmdText
cmd.CommandText = "AGBA_Conversion" '<<<--here is where you write your query sql
cmd.Parameters("[days]") = ActiveWorkbook.Sheets("MABI_Extracts").Range("B18").Value
Options = adCmdTable
Set rs = cmd.Execute
sht.Range("A1").CopyFromRecordset rs '--bulk copy to the Excel sheet
rs.Close
cmd.ActiveConnection.Close
MsgBox "All data were successfully retrieved from the queries!", vbInformation, "Done"
End Sub
解决方案
参数是参数的集合。您需要首先使用 CreateParameter 创建对象,然后使用 Append 将其添加到集合中。
代替
cmd.Parameters("[days]") = ActiveWorkbook.Sheets("MABI_Extracts").Range("B18").Value
经过
Dim p
Set p = cmd.CreateParameter("days", adInteger, adParamInput)
p.Value = ActiveWorkbook.Sheets("MABI_Extracts").Range("B18").Value
cmd.Parameters.Append p
推荐阅读
- java - Android java通过特殊字符拆分字符串失败
- javascript - 获取与按钮相同的列表项中的文本
- javafx - 设置 TableView 单元格的背景颜色
- asp.net-core - Html.BeginForm 使用 Html.HiddenFor 将空对象发送到控制器
- c# - 创建 EF Core Include().ThenInclude() 之类的函数?
- design-patterns - 更改恢复实施
- python - 尽管空堆栈测试,递归函数不起作用
- oracle - 是否可以交换 oracle 12c PDB
- django - 在 django 生产中无法导出静态
- angular - 如何在点击时刷新页面(离子 v4)