zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    pointer-like classes, 关于智能指针
    non-explicite-one-argumen-constructor
    车道标线分割与分类
    matlab变量更新
    matlab求余
    MATLAB中图像的读取与显示
    提取文件一部分内容
    NetCore3.1 使用 mongoDb 存储日志,提升查询效率
    C#代码实现阿里云消息服务MNS消息监听
    盘点这些年我出的书,以及由此得到的收获
  • 原文地址:https://www.cnblogs.com/goodge/p/5136931.html
Copyright © 2011-2022 走看看