Ich versuche, dieses Skript Arbeit zu machen (einige vba Wissen hat und keine Ahnung von vbs Unterschiede Die Lösung, die ich anzupassen versuche hier: VB Script to dump an SQL Server table to CSV und https://msdn.microsoft.com/en-us/library/ms974559.aspxVbscript. Wie csv abfragen mit ado und Rückkehr csv
es soll CSV-Datei, führen ACE SQL-Abfrage auf, es zu lesen und das Ergebnis in einem anderen CSV
es erzeugt nur eine leere output.csv Datei und es wird für die Bearbeitung gesperrt zurückkehren können Sie mir helfen.:
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
Ich verstehe einige VBA, bin aber nicht in der Lage, meinen Weg nach draußen in diesem VBS zu finden. Kannst du mir helfen herauszufinden, was ich falsch mache?
Zweitens ... ist es möglich, alle Pfade zu Daten relativ zum Skript selbst zu machen, damit die Lösung verteilt werden kann? Ich weiß, wie man es in VBA macht, aber habe keine Ahnung, ob es mit VBScript möglich ist?
Ich bin sicher, eine solche Vorlage kann sehr hilfreich für die gesamte Gemeinschaft sein. Wenn meine Frage schlecht formuliert ist, werde ich demütig die Kritik akzeptieren.
1. objRecordSet sollte wohl rs sein 2. 'strPathtoTextFile' geändert werden kann, um Eingangsweg zu relativ 3.' Set ts zu ändern = fso.OpenTextFile ("c: \ Databases \ output.csv ", 2, TRUE)' kann geändert werden, um den Ausgabepfad auf relativ zu ändern. 4. Innerhalb der Schleife können Sie 'wscript.echo Left (line, Len (line) -1)' verwenden, um das zu bestimmen Sie lesen tatsächlich Daten aus der Eingabedatei – MikeC
Sie haben Recht. Ich korrigierte 1). Dennoch gibt es ein großes Problem ... es erzeugt eine Ausgabedatei, die zur Bearbeitung gesperrt und leer ist. –
Entfernen Sie die "On Error Resume Next" und starten Sie erneut; Sie finden ein paar Änderungen, die vorgenommen werden müssen. "On Error Resume Next" muss vernünftig verwendet werden; Es kann den Fehler maskieren, den Sie sehen möchten. – MikeC