我想在Excel VBA中使用ADODB處理.csv文件。我嘗試了一些在網上找到的字符串,但沒有一個似乎起作用。我得到使用文件路徑:.csv的ADODB連接字符串
strVFile = Application.GetOpenFilename("CSV (*.csv), *.csv")
然後我通過strVFile
作爲參數傳遞給子objReport.Load strVFile
。該子標題爲:Public Sub Load(ByVal strFilename As String)
。
然後我嘗試使用字符串進行ADODB連接:
pconConnection.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFilename & _
";Extended Properties=""text;HDR=Yes;FMT=Delimited(;)"";Persist Security Info=False"
pconConnection.Open
當我運行宏,選擇CSV文件,有誤差存在的話說,「給定的路徑是不是一個有效的路徑。」我究竟做錯了什麼?
編輯(代碼),
模塊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
類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
你可以發佈你的完整代碼,以便我們可以測試它嗎? – JMax
臨時使用'Debug.Print'或'MsgBox'在連接字符串中使用之前立即顯示'strFilename'的值。檢查它是否顯示了所需文件的完整路徑。此外,對於CSV,'Delimited(;)'應該是'Delimited(,)',我認爲 – barrowc
我已經添加了一些代碼,它只是幾行代碼,但它應該顯示我的問題。我試圖看看這條路,看起來沒問題。 – Jandrejc