VBA中连接SQLSERVER数据库例子

   2015-06-24 0
核心提示:这篇文章主要介绍了VBA中连接SQLSERVER数据库例子,VBA是指Visual Basic for Applications,是Visual Basic的一种宏语言,需要的朋友可以参考下

我们在使用excel编程时,很多时候都需要使用数据库。

那么如何连接数据库然后从数据库读取数据呢?

VBA 连接 SQL SERVER 数据库 实例:

Dim strConn As String, strSQL As String
  Dim conn As ADODB.Connection
  Dim ds As ADODB.Recordset
  Dim col As Integer
 
  '连接数据库的字符串
  strConn = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=[user];Password=[password];Initial Catalog=[database];Data Source=[数据库IP地址或数据库服务器名称];Connect Timeout=720; "
 
  '查询语句,如果sql语句很长可以用strSQL=strSQL+来连接分成多段的语句,如果语句很短可以只写在一行上。
   strSQL = "select * from Hy_KPI_Shop_Dept_WeekRpt "
   strSQL = strSQL+"where sdate='2014-01-01' order by sdate,shopid "
 
   Set conn = New ADODB.Connection
   Set ds = New ADODB.Recordset
 
  '打开数据库连接
   conn.Open strConn
 
  '该句和数据库连接字符串处的Connect Timeout=720,表示说如果语句运行时间很长,这两句可以延长vba的等待时间,没有这两句,vba往往会报查询超时。
   conn.CommandTimeout = 720
 
 
   With ds
  '根据查询语句获得数据
     .Open strSQL, conn
     '自动控制加入所有列标题
     For col = 0 To ds.Fields.Count - 1
 
  '请注意Offset(0, col)中的参数一定要正确,该句表示标题将会写在第一行,从A1单元格开始,如果不想写入标题行,可将下面这句注释掉。
   Worksheets("门店各课KPI周报").Range("A1").Offset(0, col).Value = ds.Fields(col).Name
     Next
 
  '加入所有行数据,该句表示查询结果将会写在第一行,从A1单元格开始,但是由于标题行写在第一行了,所以实际这一行从标题下的一行写入。
   Worksheets("sheet1").Range("A1").Offset(1, 0).CopyFromRecordset ds
   End With
  '关闭数据库连接和清空资源
   Set ds = Nothing
   conn.Close
   Set conn = Nothing

 
标签: VBA SQLSERVER
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 二进制文件存取示例(VB&VBA) 二进制数据文件
    ' 1. 保存文件到数据库Sub s_SaveFile()    Dim iStm As ADODB.Stream    Dim iRe As ADODB.Recordset    Dim iConcStr As String 'SQL数据库的连接字符串    iConcStr = "Provider=SQLOLEDB.1;Persist Security Info=True;"_        "Us
    02-09
  • VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别
    VB类模块中属性的参数——VBA中Range对象的Valu
    在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见。比如最常用的:Worksheet.Range("A1:A10") VB的语法,使用参数的不一定是方法,也有可能是属性!(虽然属性的本质是方法)例一:参数当作“索引”使用定义一个类模块,模块名称Ints。为简化模型,使
    02-09
  • VBA是什么?和VB有什么关系 vba和vbe
    VBA是什么---------------------------------------  直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微
    02-09
  • Lotus Notes Send EMail from VB or VBA
    Original doc link:http://www.fabalou.com/VBandVBA/lotusnotesmail.asp你知道吗?VBA或者VB可以直接编程从发送邮件到Notes系统中,当然前提条件是在运行代码的这台机器上必须安装Notes 客户端并且完成配置.要指出的一个问题那就是所有 Lotus Notes 对象声明
    02-09
  • VBA/VB6/VBS/VB.NET/C#/Python/PowerShell都能调用的API封装库
    VBA/VB6/VBS/VB.NET/C#/Python/PowerShell都能
     API函数很强大,但是声明的时候比较繁琐。我开发的封装库,包括窗口、键盘、鼠标、消息等常用功能。用户不需要添加API函数的声明,就可以用到API的功能。在VBA、VB6的引用对话框中引用API.tlb文件,就可以用到其中的函数和方法,在VB.Net或C#项目中引用API.
    02-08
  • Inspect(VB6、VBA版)软件的下载和使用
    Inspect(VB6、VBA版)软件的下载和使用
    Inspect是进行UI Automation自动化编程的必备工具。下载地址:https://share.weiyun.com/R3QI4yfl进入该目录后,找到Inspect_VBAVB6.zip,下载到本地。   解压缩后,双击Inspect.exe启动工具。如果没有正常启动,请以管理员身份运行Regdll.exe。  左边的
    02-08
  • VBA解决Windows空当接龙的617局
    本文给大家分享的是使用VBA解决Windows空当接龙的617局的方法和思路,有需要的小伙伴可以参考下。
  • VBA将excel数据表生成JSON文件
    本文给大家汇总介绍了几种使用VBA处理EXCEL并生成JSON文件的方法和思路,非常的实用,有需要的小伙伴可以参考下。
    09-24 excelvbajson
点击排行