博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VBA SQLServer 基本操作
阅读量:6683 次
发布时间:2019-06-25

本文共 2328 字,大约阅读时间需要 7 分钟。

  • 读取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.CloseEnd 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.CloseEnd 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

 

 

 

 

 

分类:
 
 
转自:
个人学习收藏用!

转载地址:http://xyxao.baihongyu.com/

你可能感兴趣的文章
GitOSC和GitHub上传项目
查看>>
Linux学习记录-2015-08-20--常用命令1
查看>>
【动态规划】0-1背包问题原理和实现
查看>>
在Word 2007文档表格中设置行高度和列宽度
查看>>
android:layout_gravity和android:gravity
查看>>
关于MYSQL的一些命令
查看>>
SCCM 2016 为客户端分发管理组件Configuration Manager(一)
查看>>
交换机SPAN功能配置
查看>>
Restful学习随笔
查看>>
CurrentRowColor 选中行 颜色改变
查看>>
内容溢出显示省略号
查看>>
更改matlab默认工作路径
查看>>
JavaScript 书籍推荐(转)
查看>>
Adobe:彻底解决Firefox与Flash插件卡顿
查看>>
凡客和锤子
查看>>
设计模式(5)--单例模式
查看>>
pitch yaw roll是什么
查看>>
深浅copy
查看>>
Hibernate之一级缓存
查看>>
Python基础之定义有默认参数的函数
查看>>