zoukankan      html  css  js  c++  java
  • VBA SQLServer 基本操作

    • 读取MS SQL Server数据表数据,并将它保存到excel工作表中
    复制代码
    Sub ReturnSQLrecord()
        'sht 为excel工作表对象变量,指向某一工作表
        Dim i As Integer, sht As Worksheet
        
        '定义数据链接对象 ,保存连接数据库信息
        '使用ADODB,须在菜单的Tools->References中添加引用“Microsoft ActiveX Data Objects library 2.x”
        Dim cn As New ADODB.Connection
        
        '定义记录集对象,保存数据表
        Dim rs As New ADODB.Recordset
        Dim strCn As String, strSQL As String
        
        '定义数据库链接字符串,Server=服务器名称或IP地址(本地可填写“.”);Database=数据库名称;Uid=用户登录名;Pwd=密码
        strCn = "Provider=sqloledb;Server=NIKEY-980114BB0;Database=pubs;Uid=sa;Pwd=sa;"
        
        '定义SQL查询命令字符串
        strSQL = "select job_id, job_desc from dbo.jobs"
        
        '与数据库建立连接,如果成功,返回连接对象cn
        cn.Open strCn
        
        '执行strSQL所含的SQL命令,结果保存在rs记录集对象中
        rs.Open strSQL, cn
        
        i = 1
        '把sht指向当前工作簿的sheet1工作表
        Set sht = ThisWorkbook.Worksheets("sheet1")
        
        '当数据指针未移到记录集末尾时,循环下列操作
        Do While Not rs.EOF
            
            '把当前记录的job_id字段的值保存到sheet1工作表的第i行第1列
            sht.Cells(i, 1) = rs("job_id")
            sht.Cells(i, 2) = rs("job_desc")
            
            '把指针移向下一条记录
            rs.MoveNext
            i = i + 1
        Loop
        
        '关闭记录集
        rs.Close
        
        '关闭数据库链接,释放资源
        cn.Close
    End Sub
    复制代码

     

    •  读取excel工作表数据,并将之插入到数据库中(将sheet1工作表中的A2:D6的记录插入到数据库pubs的jobs数据表中) 
    复制代码
    Sub ReturnSQLrecord()
        Dim i As Integer, sht As Worksheet
        
        '定义数据链接对象 ,保存连接数据库信息
        '使用ADODB,须在菜单的Tools->References中添加引用“Microsoft ActiveX Data Objects library 2.x”
        Dim cn As New ADODB.Connection
        
        Dim strCn As String, strSQL As String
        
        '定义数据库链接字符串,Server=服务器名称或IP地址(本地可填写“.”);Database=数据库名称;Uid=用户登录名;Pwd=密码
        strCn = "Provider=sqloledb;Server=.;Database=pubs;Uid=sa;Pwd=sa;"
        
        '清空定义的变量
        strSQL = ""
        
        '与数据库建立连接,如果成功,返回连接对象cn
        cn.Open strCn
        
        Set sht = ThisWorkbook.Worksheets("sheet1")
        For i = 2 To 6
            '构造SQL命令串,对标识列job_id执行插入操作时,要设置表的IDENTITY_INSERT为打开,否则会插入失败
            strSQL = strSQL & "SET IDENTITY_INSERT dbo.jobs ON;insert into dbo.jobs(job_id,job_desc,min_lvl,max_lvl) values(" _
            & sht.Cells(i, 1) & "," & CStr(sht.Cells(i, 2)) & "," & sht.Cells(i, 3) & "," & sht.Cells(i, 4) & ") ;"
        Next
    
        '执行该SQL命令串,如果SQL命令没有错误,将在数据库中添加5个记录;也可以用rs.open strSQL,cn 执行
        cn.Execute strSQL
        
        '关闭数据库链接,释放资源
        cn.Close
    End Sub
    复制代码

     

      A B C D
    1 job_id job_desc min_lvl max_lvl
    2 30 'test30' 20 100
    3 31 'test31' 20 100
    4 32 'test32' 20 100
    5 33 'test33' 20 100
    6 34 'test34' 20 100

     

     

     

     

     

    分类: VBA
     
    个人学习收藏用!
    专注iOS、Android、Java、Golang开发等涉及开发管理相关。 技术博客:http://xiaopin.cnblogs.com
  • 相关阅读:
    beeframework开发笔记1
    CentOS 6.0最小化编译安装Nginx+MySQL+PHP+Zend
    (转)Android-Mac电脑如何进行APK反编译-使用apktool、jd-gui
    (转)【Android测试工具】03. ApkTool在Mac上的安装和使用(2.0版本)
    淘宝PHPSDK2.0 剔除 lotusphp框架---兄弟连教程
    (转载)postgresql navicat 客户端连接验证失败解决方法:password authentication failed for user
    (转载)CentOS6下 源代码方式安装openERP7.0
    在阿里云 centos 6.3上面安装php5.2(转)
    php自动转换pfx到pem和cer(dem格式)到pem
    WebSocket获取httpSession空指针异常的解决办法
  • 原文地址:https://www.cnblogs.com/xiaopin/p/2630478.html
Copyright © 2011-2022 走看看