分享

Excel VBA宏 链接服务器 上传和下载数据

 excel05 2022-05-20 发布于福建
  首先说明以下。
       第一: 下面的 “ _' 也就是 空格下划线 在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
复制代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约