我使用下面的代碼,由Remou和安東尼·瓊斯以前的職位和答案基礎上的。麻煩導入CSV文件從VBS MySQL和訪問
Dim db: db = "C:\Dokumente und Einstellungen\hom\Anwendungsdaten\BayWotch4\baywotch.db5"
Dim exportDir: exportDir = "C:\Dokumente und Einstellungen\hom\Desktop"
Dim exportFile: exportFile=NewFileName(exportDir)
Dim cn: Set cn = CreateObject("ADODB.Connection")
cn.Open _
"Provider = Microsoft.Jet.OLEDB.4.0; " & _
"Data Source =" & db
cn.Execute "SELECT * INTO [text;HDR=No;Database=" & exportDir & _
";CharacterSet=65001]." & exportFile & " FROM tblAuction"
'Export file
'Support functions
Function NewFileName(ExportPath)
Dim fs
Dim NewFileTemp
Set fs = CreateObject("Scripting.FileSystemObject")
NewFileTemp = "CSV" & Year(Date) _
& Month(Date) & Day(Date) & ".csv"
NewFileName = NewFileTemp
End Function
我遇到的問題是,當我導出的文件,CSV文件包含標題,儘管HDR被設置爲否將實際的數據,這會導致之前有我的專欄中引用的名稱嘗試導入時出現問題。
我的第二個問題是,似乎特殊字符不進行轉義。
我將數據裝入MySQL的使用:
LOAD DATA LOCAL INFILE 'file' INTO TABLE MYTABLE FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
我自己也嘗試沒有逃脫BY子句。
的問題是,其中一個字段包含HTML數據,這意味着引號,斜線等,這將導致數據被錯誤地輸入,與日期字段被插入到用戶名字段和這樣。我怎樣才能避免這種情況發生,或導入正確?
我使用的是scheme.ini類似如下:
[CSV2009427.csv]
ColNameHeader=No
CharacterSet=65001
Format=Delimited(;)
Col1=article_no Char Width 19
和列標題仍在出口。在不需要schema.ini的情況下以不可能的方式做到這一點?即能夠以可移植的方式使用腳本,而schema.ini可能不會一直存在?
是否有您必須使用CSV理由嗎?如果您已經使用VBScript,爲什麼不連接到這兩個數據庫,只是傳輸數據?我不明白你爲什麼使用VBScript創建一個csv,是不是已經有了這個功能? – Tester101 2009-04-28 15:20:02