0

我正在尝试通过向 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'

4

1 回答 1

0

正如用户 69820 的评论所表明的那样,对于简单的 SQL 语句来说,该错误最可能的原因是列名错误。假设“相同的条件(网络、共享、权利......)”(我承认高阶),我认为下一个嫌疑人是(不同的)区域设置确定字段分隔符。

给定德语设置(即“;”分隔符),带有“,”的文件

ComputerName,WhatEver
"ABC123",1
"DEF456",2

将导致错误,而

ComputerName;WhatEver
"ABC123";1
"DEF456";2

将毫无问题地“工作”。

于 2015-05-15T16:48:24.217 回答