0

要求を実行して csv ファイルから情報を取得しようとしていますが、引き続きこのエラーが発生します: 1 つ以上の必須パラメーターに値が指定されていません。コード 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

user69820 のコメントが示すように、単純な SQL ステートメントに対するそのエラーの原因として最も可能性が高いのは、不適切な列名です。「同じ条件(ネットワーク、共有、権利...)」(厳しい注文、私は認めます)を仮定すると、私の意見での次の容疑者は、フィールドセパレータを決定する(異なる)地域設定です。

ドイツ語の設定 (つまり、";" セパレーター) を指定すると、"," を含むファイルは次のようになります。

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

エラーが発生しますが、

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

問題なく「動作」します。

于 2015-05-15T16:48:24.217 に答える