访问VBScript ADODB.Command给出“参数类型错误”错误

时间:2013-01-30 17:02:37

标签: ms-access vbscript

我有一个打开Access数据库的VBscript,我需要从其中一个表创建一个查询,然后导出表。我需要创建查询,因为我需要格式化数字列,因为在数据库中它们有10个小数位但是当导出时只有2个。我需要所有10.我不控制这个Access数据库,而是我下载它要求来源进行此查询不是一种选择。

以下错误是:“ADODB.Command:参数类型错误,超出可接受的范围,或者彼此冲突。”我错过了什么?

Dim oAccess
Set oAccess = CreateObject("Access.Application")

oAccess.OpenCurrentDatabase("dbfile here")

Dim oQry
Set oQry = CreateObject("ADODB.Command")

oQry.ActiveConnection = oAccess.CurrentProject.Connection
oQry.CommandType = 1
oQry.CommandText = "create view qryTable as select * from table"
oQry.Execute

Set oQry = Nothing
Set oAccess = Nothing

1 个答案:

答案 0 :(得分:2)

给予.ActiveConnection字符串值对我有用。

oQry.ActiveConnection = oAccess.CurrentProject.Connection.ConnectionString

请注意,如果该字符串中的 Provider 是“ Jet.OLEDB ”并且您使用的是64位Windows,则必须以32位模式运行该脚本;我使用了来自cscript.exe的{​​{1}}版本。

但是,我不确定为什么要打开Access应用程序实例,然后创建并执行\Windows\SysWOW64。也许这是尝试重用应用程序的ADODB.Command,这样您就不需要从头创建一个。

无论原因是什么,如果您还有Access实例,则不需要CurrentProject.Connection。只需使用ADODB.Command中的.Execute方法。

CurrentProject.Connection