Excel访问数据库

2022-04-25 17:23:07 wenhui

前一篇文章(用Excel实现财务信息披露自动化)介绍Excel实现财务信息披露自动化的一般思路涉及三个关键技术要点:1.用Excel VBA生成XML文档2.用VBA代码新建工作簿并插入其中VBA代码3.VBA SQL访问数据库提取数据。

目前市场上绝大多数财务系统(如SAP、Oracle、金蝶、用友等。),其数据存储在前台用户界面输入后的后台关系数据库(如Oracle数据库、SQL Server数据库、MySQL数据库、PostgreSQL数据库、Access数据库等。),数据最终相似Excel以表列的形式存储在数据库的数据表中。如果后台数据库中的数据需要访问或操作,则需要使用数据库管理工具。数据库产品开发商或独立的第三方开发商可以提供图形可视化的数据库管理工具,如Navicat、PL/SLQ Developer、Workbench除这些专业的数据库管理工具外,Excel也是能通过ADO(ActiveX Data Objects)访问或操作上述关系数据库。

Excel访问并操作数据库需要做一些准备工作:第一步:安装对应数据库的ODBC(Open DataBase Connectivity)驱动,微软会自带产品像Access、Excel、SQL Server等的ODBC驱动,但要访问Oracle、MySQL(已被Oracle收购)、PostregSQL数据库需要安装相应的产品ODBC驱动程序(Oracle、PostregSQL官网可以下载ODBC驱动,安装方法也比较简单)。第二步:按照下图所示的步骤配置DSN(Data Source Name)当然,如果所有的配置参数都写在数据源中,VBA在连接数据库的字符串代码中也可以省略此步骤。

Excel访问和操作数据库遵循固定步骤,主要步骤如下图所示:


如下的VBA代码就是一个Excel通过ADO访问Oracle数据库提取数据的典型案例:

已设置DSN,因此,如果没有配置,代码中的数据库连接字符串是简写的DSN,数据库连接字符串稍微复杂一点,需要改成strConn = "Driver={Oracle in instantclient_11_2};Dbq=192.168.2.201:1523/EBSDEV;Uid=cux;Pwd=123;",其代码效果相同。

Sub Test()Dim conn As Variant,rs As Variant,strconn As String,strsql As String 定义数据类型Set?conn?=?CreateObject("ADODB.Connection")?创建数据库连接对象Set rs = CreateObject("ADODB.recordset") 创建数据库记录对象strconn?=?"DSN=ERP_UAT;pwd=123"?连接字符串的数据库conn.Open?strconn?打开数据库连接strsql?=?"SELECT?*?FROM?apps.hr_operating_units"?访问操作数据库SQL代码rs.Open?strsql,?strconn?数据记录集Range("A1").CopyFromRecordset?rs?'把内存中SQL复制提取的记录集A1单元格rs.Close conn.Close?关闭数据库连接Set rs = Nothing 注销数据库记录对象,释放内存Set?conn?=?Nothing?取消数据库连接对象,释放内存End Sub

因为Excel ADO访问数据库的常规是相同的。您只需修改相应数据库和记录集的连接字符串即可访问并操作相应的数据库。附件访问Excel以上是数据库的示例VBA在访问的基础上修改代码D盘下生成XML文档.xls(上一篇文章Excel生成XML文档的附件文档需要下载并放入D盘下只能使用附件文档VBA访问代码),按Alt F11可以查看VBA如下图所示,原始代码的运行效果。如果您想访问MySQL、PostregSQL、SQL Server只需将数据库修改为相应的连接字符串即可。如果数据库连接字符串,百度也可以搜索相应的关键字。


       

Excel访问数据库

}