重點摘要
1. 安裝 XAMPP (Appache + MariaDB + phpMyAdmin + PHP)
2. 安裝 MariaDB ODBC Driver
3. Excel VBA 讀取 MariaDB 的第一隻小程式
1. 安裝XAMPP - 網上教學很多,記得先看一下 [Link1]
[1] 本文的重點是要勾選 Appache 、 MariaDB 、 phpMyAdmin 、 PHP
[2] 安裝後,至開始工作表找 XAMPP Control Panel,將 Appache 、 MariaDB 的服務按下"Start",以後若不想麻煩,可以進到Config,去設定開機就自動啟動。
2. 進入 phpMyAdmin 看看啟動是否正常
[1] 如果是安裝在本機,就打 127.0.0.1/phpmyadmin/ 或 localhost/phpmyadmin/ 就可以連入
[2] 如果有遇到登入 id=root, pws沒有設定,可以直接登入。記得一定要去變更。
[3] 因為我是選擇採用 Synology DS218j 作為資料庫,記得要在Wifi AP裡幫它指定一個固定IP,不然每次都要找找它,也挺麻煩的。
[4] Synology DS218j 的規格,說實在,挺克難的。但因只當資料庫,且只有一兩個人用,手上又有舊的二個160G SATA硬碟,嗯,這樣也挺搭的。
[5] 因為不是在本機安裝,這件事也搞了我一會,因為始終無法登入,最後又是拜了大神,才知道帳號後面,還要指定 "%" ,才能夠遠端登入。
3. 創建一個資料庫以及一個資料表來測試
[1] 一個資料庫底下,可以有多個資料表 (拍謝,久沒用這種大刀,提醒一下自己)
[2] 如何建立資料庫與資料表?嗯,麻煩問一下大神。前面那個MySQL 超新手入門的網站,也很不錯喔。
[3] 比較頭痛的是編碼的選擇,幾篇長知識的好文章整理如下。其實沒有花太多時間去搞懂它,因為我的問題很簡單,到底要選哪一個。
MySQL 超新手入門(7)字元集與資料庫 (是個好網站)
為什麼MYSQL要設定用UTF8MB4編碼 UTF8MB4_UNICODE_CI (我最後是看了這篇,選擇用UTF8MB4_UNICODE_CI)
4. 進入重點了,Excel VBA 到底怎麼連上去呢?這段我搞了二天,特別在此紀錄一下。
5. 要先安裝 MariaDB ODBC Driver,MariaDB官網上有
[1] 綠色的Download給他按下去,拍謝,又面臨選擇
[2] 看到有Windows的那一個,按下去,結束了嗎?還沒。看到有兩個,一個是 xxx-win32.msi / xxx-win64.msi 。
這是怎樣呢?我的電腦是 Excel 2003 (32位元) + Windows 10 (64位元) ... 只好兩個都下載,都安裝。
[3] 點擊這兩個 msi 檔案之後呢?如果打開 Excel VBA的編輯器,去引用,並沒有看到MariaDB的項目...嗯...鬼打牆了。
[4] 拜大神....拜了好久,下面這篇文章給了我個希望,它提示了一個方向,要去Window的ODBC資料來源登記
所以,我在32位元與64位元,都給它登記。此時,前面有提到要用 phpMyAdmin 將帳號的權限增加 "%" 可以由遠端登入,不然在此處會無法登記成功。切記、切記。
5. 在 Excel VBA 的編輯器中,去引用 "Microsoft ActiveX Data Objects 6.1 Library" & "Microsoft ActiveX Data Objects Recordset 6.0 Library"
6. 接下來,重頭戲到了,寫支 Excel VBA 小程式來連連看...立刻被打槍
- 在此之前,已經可以用遠端登入 phpMyAdmin,也可以操作 MariaDB,因此排除資料庫本身的問題。
7. 好吧,進入逐項除錯階段
[1] 是引用項目不對?改引用 2.8 版 ... 照樣打槍
[2] 是不是SQL的字串要寫成一整條,字串不用連結符號 "&" 呢?...成功了。
[3] 不死心,SQL的字串還是用連結符號 "&" 呢?...又成功了。
[4] 最後終於找到原因,不能有空格...
這點很奇怪,因為第一支程式也是參考網友寫的...
[5] 總結一下
- 在 Excel VBA 的引用項目,2.8版 與 6.0版 都是可以的
- ConnectionString,不能空格