Re: [VBA ] 查詢SQL資料
※ 引述《Cochran ()》之銘言:
: 各位好,小弟新手...
: 小弟寫好SQL程式,也可以正確無誤地跑出查詢結果,
: 因為要供其他同事做即時的查詢,但同事又不會用SQL...
: 故想請問...
: 如何利用 VBA 跑已經寫好的SQL程式,並將查詢結果顯示在EXCEL上?
請先去window視窗搜尋「ODBC資料來源」,新增SQL Server的資訊,
在回到Excel的VBA視窗→工具→設定引用項目,
將 Microsoft ActiveX Data Objects 2.7 Library引用進來
然後複製下列語法,依據個人需求更改SQL Server IP, ID, PWD, DB NAME
以及SQL語法,設定導出的活頁簿名稱以及columns的名稱,儲存為.xlsm的檔案
以後你同事需要時,只要呼叫這個sub就能自動從SQL Server下載資料了~~
Sub AutoCaculate()
Dim Data As Range
Dim LR, myYear, myMon, myDay As Integer
Dim myPath, YS, MS, DS As String
Dim Tdate As Date
Dim i As Integer, j As Integer, sht As Worksheet 'i,j為整數變數;sht 為excel工
作表物件變數,指向某一工作表
Dim rs As New ADODB.Recordset '定義記錄物件
Dim strCn As String, strSQL As String '字符串變量
Dim sStartDate As String, sEndDate As String '字符串變量
Dim MOQ As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set cn = New ADODB.Connection '定義資料連結物件 ,保存連接資料庫資訊;請先
引用ADO
strCn = ("driver={SQL Server};server=IP;uid=ID;pwd=PWD;database=DB
Name;") '定義資料庫連結字串
strSQL = "Select From" '此處放入SQL語言
cn.Open strCn '與資料庫建立連接,如果成功,返回連線物件cn
rs.Open strSQL, cn '執行strSQL所含的SQL命令,結果保存在rs記錄集物件中
i = 2
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "SHEET NAME" 'SQL資料輸出位置
Set sht = ThisWorkbook.Sheets("SHEET NAME") '把sht指向當前工作簿的sheet1
工作表
sht.Cells(1, 1) = "TITTLE" '定義表頭名稱,可以依照需求複製此行
Do While Not rs.EOF
sht.Cells(i, 1) = rs("SQL DATA") '此處放入SQL導出資料行,可以依照需求複製此
行
rs.MoveNext
i = i + 1
Loop
rs.Close
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.50.86
※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1524565662.A.92A.html
推
04/24 19:09,
6年前
, 1F
04/24 19:09, 1F
討論串 (同標題文章)
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章