ADODB-Connection-String für .csv
Ich will zu verarbeiten .csv-Dateien mit ADODB in Excel-VBA. Ich habe versucht, ein paar strings gefunden, die auf web, aber keiner von Ihnen scheint zu funktionieren. Ich bin immer Datei Pfad verwenden:
strVFile = Application.GetOpenFilename("CSV (*.csv), *.csv")
Und dann gebe ich strVFile
als parameter an die sub objReport.Load strVFile
. Der header des sub ist: Public Sub Load(ByVal strFilename As String)
.
Dann versuche ich, um ADODB Verbindung mit string:
pconConnection.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFilename & _
";Extended Properties=""text;HDR=Yes;FMT=Delimited(;)"";Persist Security Info=False"
pconConnection.Open
Wenn ich das makro ausführen, und wählen Sie CSV-Datei, es gibt Fehler auftreten, die sagen, dass "angegebene Pfad ist kein Gültiger Pfad". Was mache ich falsch?
Bearbeiten (Code),
Modul mdlReport
Public Sub Report()
Dim objReport As clsReport
MsgBox "Please select .csv file", vbInformation + vbOKOnly
strVFile = Application.GetOpenFilename("CSV (*.csv), *.csv")
If strVFile <> False Then
Set objReport = New clsReport
objReport.Load strVFile
End If
End Sub
Klasse clsReport
Private pconConnection As ADODB.Connection
Private prstRecordset As ADODB.Recordset
Private Sub Class_Initialize()
Set pconConnection = New ADODB.Connection
pconConnection.ConnectionTimeout = 40
End Sub
Public Sub Load(ByVal strFilename As String)
pconConnection.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFilename & _
";Extended Properties=""text;HDR=Yes;FMT=Delimited(;)"";Persist Security Info=False"
pconConnection.Open
End Sub
- könnte Sie posten Sie Ihre vollständigen code, damit wir es testen?
- Vorübergehend
Debug.Print
oderMsgBox
zu zeigen, den Wert vonstrFilename
sofort, bevor Sie es in der Verbindungszeichenfolge. Überprüfen Sie, dass es zeigt einen vollständigen Pfad zu der gewünschten Datei. AuchDelimited(;)
sollteDelimited(,)
für eine CSV-würde ich denken - Ich habe einige code, es ist nur ein paar Zeilen, aber es sollte zeigen mein problem. Ich habe versucht, sich auf den Weg und es scheint OK zu sein.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für eine text-Datei
Data Source
ist der Ordner, nicht die Datei. Die Datei ist die Tabelle (SELECT * FROM ..). Sehen http://www.connectionstrings.com/textfileFand ich die Antwort auf mein problem. Für text-Dateien (wie bereits von Remou)
Data Source
nur den Pfad, ohne Dateinamen. Darüber hinaus anstelle von:Musste ich
Bekommen Dateiname und vollständiger Pfad:
Um den Pfad, ohne Datei-name:
Um den Pfad zu ändern format von '\' als '\\', die ich gerade verwendet:
Das problem ist gelöst, vielen Dank für Ihr Interesse.
Hier ist ein update mit Microsoft.Ass.OLEDB.16.0 als provider.
Stellen Sie sicher, dass der Referenz-Bibliothek "Microsoft ActiveX Data Objects 6.1 Bibliothek" Hinzugefügt VBAproject-ersten.