JET 数据库引擎请求的 VBScript 错误
Posted
技术标签:
【中文标题】JET 数据库引擎请求的 VBScript 错误【英文标题】:VBScript error with JET Database Engine request 【发布时间】:2012-04-19 13:53:44 【问题描述】:我正在尝试通过向 csv 文件发出请求来检索一些信息,但我一直遇到此错误: 没有为一个或多个必需参数提供值,代码 80040E10 来源:Microsoft JET 数据库引擎
它涉及我脚本的以下行:
RECORDSET.Open "SELECT * FROM " & strFile & " WHERE ComputerName = '" & OldComputerName & "'", CONNECTION, 3, 3
但如果我在请求之前对 strFile 和 OldComputerName 执行 wscript.echo,它们会显示正确的值。
这是包含请求的脚本的整个部分:
dim CONNECTION : set CONNECTION = CreateObject("ADODB.CONNECTION")
dim RECORDSET : set RECORDSET = CreateObject("ADODB.RECORDSET")
CONNECTION.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\contoso.scom\DP_IT\Rollout\;Extended Properties=""text;HDR=YES;FMT=Delimited"""
strFile = "[CONTOSO-OPR-ComputerList.csv]"
wscript.echo strfile
wscript.echo OldComputerNameenter
RECORDSET.Open "SELECT * FROM " & strFile & " WHERE ComputerName = '" & OldComputerName & "'", CONNECTION, 3, 3
我想告诉你,这以前有效。我已经好几个星期没碰它了,但似乎有些事情发生了变化,我不知道是什么:/
编辑:如果我对整个请求执行 wscript.echo,它会给我这个:
SELECT * FROM [CONTOSO-OPR-ComputerList.csv] WHERE ComputerName = 'ABC123'
【问题讨论】:
肯定有一个字段叫ComputerName
?
是的,有一个字段是这样命名的
经过几次检查后,我发现该脚本在常规 XP 安装中运行良好,但在我的客户端主机上却无法运行。在相同的条件下(网络、共享、权利......)他们可以做些什么来阻止它正常工作吗?
【参考方案1】:
正如用户 69820 的评论所指出的,对于简单的 SQL 语句来说,最可能导致该错误的原因是列名错误。假设“相同的条件(网络、共享、权利......)”(我承认的顺序很高),我认为下一个嫌疑人是(不同的)区域设置确定字段分隔符。
给定德语设置(即“;”分隔符),带有“,”的文件
ComputerName,WhatEver
"ABC123",1
"DEF456",2
会导致错误,而
ComputerName;WhatEver
"ABC123";1
"DEF456";2
将毫无问题地“工作”。
【讨论】:
以上是关于JET 数据库引擎请求的 VBScript 错误的主要内容,如果未能解决你的问题,请参考以下文章
VB6:错误 3078“... Jet 数据库引擎找不到输入表或查询...”的可能原因是啥
经典 asp - ms 访问更新问题(Microsoft Jet 数据库引擎停止)
Microsoft Jet 数据库引擎找不到输入表或查询或者找不到文件