我目前正在從事一個事物,我想從MySQL數據庫導出各種表格到CSV文件,然後應該可以導入使用VBA將這些csv文件轉換爲Access數據庫。CSV導出從PHP /導入到訪問使用VBA --- schema.ini字符集問題
我設法生成一個包含csv文件和schema.ini的zip文件的下載。對於導入CSV文件,我用大約(省略爲簡潔起見循環)驗證碼:
Sub ImportTableOne()
Dim db As DAO.Database
Set db = CurrentDb()
frompart = "[Text;FMT=CSVDelimited;HDR=Yes;DATABASE=" & CurrentProject.Path & "\csvfiles\" & ";].[fileone.csv];"
db.Execute _
"SELECT * INTO tableone FROM" & frompart, dbFailOnError
db.TableDefs.Refresh
RefreshDatabaseWindow
End Sub
我的問題是,我可以在我的SCHEMA.INI當然其產生的結果,其中CharacterSet=ANSI
例如í
變爲Ã-
。將schema.ini中的內容更改爲CharacterSet=UTF-8
將產生運行時錯誤3000:保留錯誤(-5402)。
我已經嘗試過通過添加UTF-8 BOM fopen()
像這樣之後獲得csv文件的行爲在PHP更UTF-8ish:
fputs($csvfile, chr(0xEF) . chr(0xBB) . chr(0xBF));
當我在Excel或記事本打開CSV文件++ ,charset似乎沒問題。當在php中使用UTF-8 bom並嘗試導入時,bom只會成爲第一列標題的一部分,如下所示:columnheadingone
。對於我所知道的schema.ini的工作原理來說,這可能並不令人驚訝。
我將不勝感激關於如何解決這個問題的任何提示。
好奇,爲什麼不使用PHP通過ODBC/OLEDB連接到MS Access數據庫並追加數據?甚至更多,爲什麼不將MySQL鏈接表連接到Access並遷移到本地表,避免csv轉換? – Parfait
我不知道如果服務器,這將運行,將安裝驅動程序,我絕對沒有權限安裝它們。 – Thomas