私はいくつかのVBAの知識とVBSの違いについての考えを持つ(このスクリプトを動作させるためにしようとしています、私は適応しようとしているソリューションはここにある: VB Script to dump an SQL Server table to CSVと https://msdn.microsoft.com/en-us/library/ms974559.aspxVBScriptが:ADOとリターンCSVでCSVファイルを照会する方法を
唯一の空のOutput.csvファイルを生成し、それは編集のためロックされている
を、csvファイルを読むことになって、その上にACEのSQLクエリを実行し、別のCSVに結果を返しているあなたは私を助けることができます。:
On Error Resume Next
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H0001
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
strPathtoTextFile = "C:\Databases\"
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strPathtoTextFile & ";" & _
"Extended Properties=""text;HDR=YES;FMT=Delimited"""
rs.Open "SELECT * FROM PhoneList.csv", _
objConnection, adOpenStatic, adLockOptimistic, adCmdText
Set fso=CreateObject("Scripting.FileSystemObject")
Set ts=fso.OpenTextFile("c:\Databases\output.csv",2,TRUE)
line=""
For Each tmp In objRecordset.Fields
line=line & tmp.Name & ","
Next
ts.WriteLine Left(line,Len(line)-1)
While Not rs.EOF
line=""
For Each tmp In rs.Fields
If IsNull(tmp.Value) Then
line=line & """" & Replace(tmp.Value,"""","""""") & ""","
Else
line=line & """" & tmp.Value & ""","
End If
Next
ts.WriteLine Left(line,Len(line)-1)
rs.MoveNext
Wend
Set rs = Nothing
ts.close
rs.close
fso.close
cn.Close
私はいくつかのVBAを理解していますが、このVBSで私の道を見つけることができません。私が間違っていることを見つけるのを助けることができますか?
第2に、スクリプト自体に関連するデータへのすべてのパスを作成できるので、ソリューションを配布できますか?私はvbaでそれを行う方法を知っていますが、それが可能であるかどうかはわかりません。
このようなテンプレートは、すべてのコミュニティにとって非常に役立つと確信しています。私の質問がうまくいけば、私は謙虚に批判を受け入れます。
1. objRecordsetは、おそらくRSでなければなりません 2. strPathtoTextFile'は相対 3. '設定TSへの入力パスを変更するために変更することができます' = fso.OpenTextFile( "C: \ Databases \ output.csv "、2、TRUE)'を変更して相対パスに変更することができます。 4.ループの中で 'wscript.echo Left(line、Len(line)-1)'を使ってあなたは実際に入力ファイルからデータを読み取っています – MikeC
あなたは正しいです。私は1)を修正しました。まだいくつかの大きな問題があります...それは編集のためにロックされ、空の出力ファイルを生成します。 –
"On Error Resume Next"を削除して再度実行してください。あなたがする必要があるいくつかの変更を見つける。 "On Error Resume Next"は慎重に使用する必要があります。あなたが見たいエラーを隠すことができます。 – MikeC