You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VBS中打开ADODB.Recordset?WSF转VBS遇参数报错

WSF转VBS后ADODB.Recordset操作报错的解决方法

问题现象

在WSF引用的VBS文件中,以下操作ADODB记录集的代码可正常运行,用于向提前创建的空白文本文件写入数据:

Set objRS = CreateObject("ADODB.Recordset")
objRS.Open "SELECT * FROM " & strTableName2, objConnection, adOpenStatic, adLockOptimistic, adCmdText

但将代码迁移到纯VBS文件后,objRS.Open抛出错误:参数类型错误、超出范围或相互冲突。

连接对象的创建代码如下:

strConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & destinationFolder & ";" & "Extended Properties=""text"""   
objConnection.Open strConnectionString

注意:WSF文件中包含以下引用标签,迁移到VBS时未被复制:

<reference object="ADODB.Recordset" />
<reference object="Atoll.Application" />

尝试移除adOpenStatic、adLockOptimistic、adCmdText这三个参数后,代码可执行更多步骤,但会出现记录集无法更新的错误。

根因分析

WSF通过<reference>标签可以自动加载ADODB库的内置常量,而纯VBS脚本没有默认加载这些常量定义,导致代码中使用的ad开头常量未被识别,进而引发参数不匹配或无效的问题。

解决方案

在纯VBS脚本的开头添加所需的ADODB常量定义:

Const adCmdText = 1
Const adLockOptimistic = 3
Const adOpenStatic = 3
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2

内容的提问来源于stack exchange,提问作者Bryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:46:07