首頁 > 資訊科技 > Windows疑難雜症 > Excel使用vba連接PostgreSQL,一鍵抓資料
2016
09-23

Excel使用vba連接PostgreSQL,一鍵抓資料

科技始終來自惰性之一鍵抓資料
1. 只要改 A1,A2 欄位,自動抓取當月天數,動態修改 A5:A35
2. 在 Sheet 的 CONFIG 設定 年,總班次數
3. 修改工作表名稱,01、02~12 自動抓該月的搭車人數
4. 按下一鍵抓資料,自動從 多卡通資料庫(PostgreSQL)與BR96投現金的營收資料彙總,並填到EXCEL裡面

設定方式
使用前需安裝 Npgsql 與 psqlodbc
下載點:
開始->控制台->系統管理工具->ODBC 資料來源 (64 位元)->使用者資料來源名稱->新增
Excel使用vba連接PostgreSQL,一鍵抓資料 - 第1張  | 小翰部落格Excel使用vba連接PostgreSQL,一鍵抓資料 - 第2張  | 小翰部落格
設定資料庫參數
Excel使用vba連接PostgreSQL,一鍵抓資料 - 第3張  | 小翰部落格Excel使用vba連接PostgreSQL,一鍵抓資料 - 第4張  | 小翰部落格
開啟excel 並新增一個巨集,設定引用項目
Excel使用vba連接PostgreSQL,一鍵抓資料 - 第5張  | 小翰部落格
加入引用 ActiveX Data Objects 6.1 Libary
Excel使用vba連接PostgreSQL,一鍵抓資料 - 第6張  | 小翰部落格
並加入下列程式碼到巨集
Public Sub 巨集1()
Dim objConnection As ADODB.Connection
Dim objRecordSet As ADODB.Recordset

strConnection = "Provider=MSDASQL; DSN=PostgreSQL35W;DATABASE=資料庫名稱;SERVER=IP位址;PORT=5432;UID=登入帳號;;SSLmode=disable"
Set objConnection = New ADODB.Connection
Set objRecordSet = New ADODB.Recordset
objConnection.Open strConnection

With objRecordSet
    .ActiveConnection = objConnection
    .Open ssql
End With

Do While Not objRecordSet.EOF
    Debug.Print objRecordSet.Fields(1).Value
     ActiveSheet.Cells(i, "B").Value = objRecordSet.Fields(1).Value
     ActiveSheet.Cells(i, "C").Value = objRecordSet.Fields(2).Value
    objRecordSet.MoveNext
Loop

objRecordSet.Close
objConnection.Close
Set objRecordSet = Nothing
Set objConnection = Nothing
End Sub

成果展示:

最後修改日:
作者:蔡 小翰

常見問題:

  1. 文章可以轉貼嗎?可以,不過請要註明出處並標示本站連結。
  2. 載點可以轉貼嗎?可以,歡迎隨意盜連,無須告知。
  3. 反盜版聲明:本站支持正版軟體,請勿討論破解版、快樂版、註冊碼、註冊機、序號...等違法主題。
  4. 檔案無法解壓縮或解壓縮時發生錯誤?請使用7-Zip解壓縮
  5. 更多細節請參閱使用條款及免責聲明


發表迴響