VBA可以连接mysql数据库

Excel VBA操作Access数据库有什么优势呢?

首先,对于数据库要有一点了解,数据库就是一个库房,里面存放的不是粮食,也不是商品,而是数据,数据这个东西有点虚幻,看得见摸不着。

但通过对数据的应用和处理之后,就变成了某些实体。从基本理论上来讲,数据就是物质世界的本源,一切的存在实体都可以用数据来描述。

所以,未来世界也许就只是一个虚拟的数据世界,而我们的身体或看到或看不到的一切实体将变得可有可无,也就是意识和世界全部数字化了。

本节介绍一下,如何用VBA和Access数据库建立联系,然后读取数据库里的记录,显示到Excel工作表当中。

为什么要这么做呢?

因为数据库可保存的数据是Excel无法比较的,体量和应用完全不在一个层级上级。

上图表格,就是从数据库读取的信息,并不是在Excel中创建的,具体方法,慢慢讲来。

下图为Access数据新建的表格内容,和上图对比就明白了。

不会Access建表操作,需要补一下数据库操作学习,当然了,如果对SQL语句也没有基础,感觉下面的内容也没必要看了,因为涉及数据库操作的方法,是用一些SQL数据库语句完成的。

重点看一下,关键代码

'查询Access数据库
Private Sub CommandButton1_Click()
 Dim uADO, rsADO As Object
 Dim strPath, strSql As String
 Dim i As Integer, ri As Integer
 Set uADO = CreateObject("ADODB.Connection") '新建数据库连接对象
 Set rsADO = CreateObject("ADODB.RecordSet") '新建记录集对象
 strPath = ThisWorkbook.Path & "\udata.accdb " '设置数据库地址
 uADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath '打开数据库
 strSql = "Select * From UserInfo WHERE 部门='办公室' " '设置查询语句
 rsADO.Open strSql, uADO, 1, 3 '执行查询
 Dim R As Range
 Set R = ActiveSheet.Range("B2")
 ActiveSheet.UsedRange.Clear
 For i = 0 To rsADO.Fields.Count - 1
    R.Offset(0, i).Value = rsADO.Fields(i).Name '输出字段名
 Next i
 Set R = R.Offset(1, 0)
 Do Until rsADO.EOF '循环查询到数据 直到记录最后一条
    For i = 0 To rsADO.Fields.Count - 1
       R.Offset(ri, i).Value = rsADO.Fields(i).Value '输出数据表内容
    Next i
    ri = ri   1
    rsADO.movenext '指向下一条记录
    DoEvents
 Loop
 rsADO.Close '关闭记录集
 Set uADO = Nothing
 Set rsADO = Nothing
End Sub

代码中有注释,不做详细介绍。

下面是否主要代码说明:

首先,新建数据库连接对象 uADO,这个对象实现和数据库建立连接

Set uADO = CreateObject("ADODB.Connection")

建立连接后用下面语句是打开数据库并建立连接 uADO.Open

uADO.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strPath '打开数据库

Open方法中用了两个参数,一个是Provider,一个Source

Provider是连接字符串,根据Excel应用版本不同这个字符串也不同,本示例应用Microsoft.ACE.OLEDB.12.0,Excel 2016。

Source参数表示数据源地址,也就是数据库文件地址。

strPath是存放数据库文件的路径和文件名字符串变量,根据你的文件地址进行修改。

strPath = ThisWorkbook.Path & "\udata.accdb " '设置数据库地址

上面代码执行之后来就建立了Excel和Access连接,接下来新建个一记录集对象rsADO

对于数据库的操作,将用到rsADO记录集。

Set rsADO = CreateObject("ADODB.RecordSet")

同样也使用Open方法打开记录集。

参数有5个,下面使用了4个,当然了参数是可以忽略的。

如果下示例:

strSql = "Select * From UserInfo WHERE 部门='办公室' " '设置查询语句

rsADO.Open strSql, uADO, 1, 3 '执行查询

strSql是查询语句,也就是通过这样一个查询,返回我们想要的数据,保存到rsADO记录集当中。

uADO是之前打开的数据库连接对象。

ADO是微软的 ActiveX 数据对象(ActiveX Data Objects),应用十分广泛,在对数据进行操作的过程当中,除Excel之外,可以更加方便快捷地提高数据处理能力。

欢迎关注、收藏

---END---

(0)

相关推荐

  • MySQL教程(MySQL数据库入门教程)

    一.MySQL基础1.1.MySQL概述数据库顾名思义,就是存储数据的仓库,这些数据是有组织存储的(DataBase简称DB).而数据库管理系统,即操作和管理数据的大型软件(DataBase Mana ...

  • 安装MySQL数据库(MySQL的安装)

    作为一个数据分析师,经常要和数据打交道,而数据存储在数据库中,所以掌握一些数据库知识是很有必要的.数据库有很多种,作为初学者,推荐大家学习MySQL数据库,原因有以下三点.1. 使用广泛,很多公司都使 ...

  • 安装MySQL数据库(mysql官网下载安装教程)

    目录第一步:安装前清理环境    第二步:下载Mysql5.5.62安装包    第三步:安装Mysql5.5.62    第四步:Mysql环境变量配置    第五步:启动Mysql数据库服务本文适 ...

  • mysql数据库如何只导出表结构?

    mysql怎样只导出表结构mysql mysqldump 只导出表结构 不导出数据1.导出结构不导出数据代码如下:mysqldump --opt -d 数据库名 -u root -p > xxx ...

  • sqlserver如何备份数据库(mysql数据库备份方法)

    [ucache灾备云]进行SQL Server自动化SQL Server数据库概述:SQL Server 是由Mircosoft开发和推广的关系数据库管理系统(DBMS).1996年,Microsof ...

  • 如何将数据库导入导出(mysql 导出数据)

    目录:通过命令导出.导入mysql数据库通过管理软件navicat通过phpmyadmin(一)通过命令导出.导入mysql数据库1导出命令(1)导出数据库 mysqldump -uroot -p - ...

  • 完整版MySQL安装配置(MySQL的安装)

    MySQL系列(一):超详细.非常适合入门的MySQL安装.环境配置教程不期而遇的风 - 苏星婕.mp33:09    来自智能化弱电工程分享    MySQL安装所有平台的 MySQL 下载地址为: ...

  • 条形码打印机品牌推荐

    [导语]条形码应用在生活中的各个方面,从二十世纪二十年代诞生以来在商品流通.图书管理.银行系统.物流邮政.综合管理多个领域的得到广泛的应用.小编今天就和大家一起来讨论一下有关条形码打印机的相关介绍以及 ...

  • 最好的虚拟主机盘点 十大最好虚拟主机

    随着网络的发达,其阴影的一面也逐渐显现,恶劣的网络环境逐渐呈大势.很多站长都"移民"去了海外.上网选择一款质量优良.运转速度快的主机是非常重要的,国外这么多优秀的主机,选择起来难免 ...