Excel VBA宏 鏈接服務器 上傳和下載數據


  首先說明以下。
       第一: 下面的 “ _" 也就是 空格下划線 在VBA中表示換行的意思;& 表示鏈接連個字符串的操作,注意 & 的前后是否需要空格
      第二: 如果鏈接服務器,服務器名稱,賬號,密碼,或者SQL語句有問題,都會報錯說自動化錯誤。
       第三: 如果剛開始運行程序就顯示”未定義對象錯誤“,那么你就需要 VBA界面的”工程--引用“中選擇”Micsoft ActiveX data Objects 2.6“ 點擊確定。  
 
 1 Sub 下載數據()
 2 
 3 Dim lastRow As Long, lastColumn As Long
 4 lastRow = ActiveSheet.UsedRange.Rows.Count
 5 lastColumn = ActiveSheet.UsedRange.Columns.Count
 6 
 7 'MsgBox Split(Range("A1")(1, lastColumn).Address, "$")(1)
 8 
 9 If lastRow > 2 Then
10     Range("a3:BL999") = "" '僅僅清空內容 
11     Range("bo3:bo999") = ""  'Range("A2:I65536").ClearContents   也可以清楚內容
12    ' ActiveSheet.Rows("3:" & lastRow).Delete 清楚了內容包括格式
13 End If
14 'MsgBox (Cells(10, 1).Value)
15     Dim conn As Object
16     '定義變量
17     Set conn = CreateObject("ADODB.Connection") '建立ADODB連接對象
18     conn.ConnectionString = "Driver={sql server};" _
19                             & "server=你的服務器;" _
20                             & "uid=;pwd=;" _
21                             & "database=你的數據庫;" _
22                             & "AutoTranslate=False"
23 conn.Open '打開了和SQL的鏈接
24 mySql = " SELECT * FROM [dbo].[LEAD] ORDER BY [月],[周]"  '寫自己的SQL查詢語句
25 Set rsData = New ADODB.Recordset   '定義一個可以保存sql查詢的對象集
26 Set rsData = conn.Execute(mySql)   'rsData.Open mySql, conn  可以實現相同的功能
27 'Worksheets("Sheet1").Range("A3").CopyFromRecordset rsData --一次性寫入從A3開始的sheet1 工作中
28 Range("A3").CopyFromRecordset rsData '寫出到當前激活的sheet中從A3開始
29 rsData.Close   '養成好習慣,用完的東西要關閉哦~~~
30 Set rsData = Nothing
31 conn.Close
32 Set conn = Nothing
33 End Sub
 1 Sub 上傳數據()
 2 'MsgBox (Cells(10, 1).Value)
 3     Dim conn As Object
 4     Set conn = CreateObject("ADODB.Connection") '建立ADODB連接對象
 5     
 6     conn.ConnectionString = "Driver={sql server};" _
 7                             & "server=你的服務器;" _
 8                             & "uid=;pwd=;" _
 9                             & "database=你的數據庫;" _
10                             & "AutoTranslate=False"
11 Dim Sql1 As String, Sql2 As String
12 conn.Open '打開了和SQL的鏈接
13 For i = 2 To 30
14         Sql = "INSERT INTO 表([V1],[V2]) VALUES ('" & Cells(i, 1).Value & "','" & Cells(i, 2).Value & "')"
15               '輸出一條語句至文件
16     conn.Execute (Sql)  '執行Sql 語句
17 Next
18 
19 '養成好習慣,用完的東西要關閉哦~~~
20 conn.Close
21 Set conn = Nothing
22 End Sub

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM