我有一个打开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
答案 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