高级建站网站,什么建设网站好,小说网站有源码了该怎么做,wordpress 微信公众平台《VBA数据库解决方案》教程#xff08;版权10090845#xff09;是我推出的第二套教程#xff0c;目前已经是第二版修订了。这套教程定位于中级#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法… 《VBA数据库解决方案》教程版权10090845是我推出的第二套教程目前已经是第二版修订了。这套教程定位于中级是学完字典后的另一个专题讲解。数据库是数据处理的利器教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。
这套教程共两册八十四讲今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是VBA数据库解决方案第九讲把数据库的内容在工作表中显示
【分享成果随喜正能量】凡是经不起时光沉淀的生命喧嚣都不算伤痛更不算创伤它就是像浮云片片来了去了如果你心大点它既不是来也不是去它就是一片风景。。
第九讲 打开数据库记录集把所得的数据回填到工作表
大家好今日继续讲解VBA数据库解决方案的第9讲内容打开一个数据库记录集并把数据放到工作表文件中。
数据库的讲解开始进入到实际操作阶段数据库的内容涉及到知识较多还是之前强调的这是VBA中级及以上水平的范畴对于基础没有牢固的朋友一定要下功夫把基础打牢才可以逐渐过渡到数据库的学习。一定要对照我的第一套教程《VBA代码解决方案》把各个知识点要弄通然后再学习这套教程可以收到事半功倍的效果。
代码讲解
① Set cnADO CreateObject(ADODB.Connection)
Set rsADO CreateObject(ADODB.RecordSet)
上述代码中新创建了一个连接一个记录集大家要清楚的是这是利用创建的方法产生的连接
② strPath ThisWorkbook.Path \mydata.accdb
给出了数据库的路径
③ cnADO.Open ProviderMicrosoft.ACE.OLEDB.12.0;Data Source strPath
这里是打开了cnADO这个连接
④ strSQL SELECT * FROM 职员表 WHERE 部门总务
这是一个SQL语句,这个语句的作用就是在数据库的“职员表”中查询部门为“总务”的人员
⑤ rsADO.Open strSQL, cnADO, 1, 3
这个命令是打开上述的符合SQL查询的记录集其中strSQL 是代表SELECT * FROM 职员表 WHERE 部门总务cnADO是我们建立起来的ADO连接后面的1和3的意义在上一讲我们刚刚见过
1 代表AdOpenForwardOnly 默认值打开仅向前类型游标。
3 代表nbsp;AdLockOptimisticnbsp;nbsp;nbsp;nbsp;开放式锁定逐个nbsp;—nbsp;提供者使用开放式锁定只在调用Updatenbsp;方法时才锁定记录。
⑥ Cells.ClearContents 为了存放数据在工作表中先清理一下清空数据
⑦ For i 0 To rsADO.Fields.Count - 1 Cells(1, i 1) rsADO.Fields(i).Name
Next i
为了理解上述语句的意义我们先来看看记录集的一些属性
rsADO.Fields.Count 是记录结果集中的字段数
Fields是字段集对象由单个的Field字段组成表示Recordset对象的列的集合。Fields成员的下标从0开始0表示第一个字段。
上面代码的意思是将需要将字段名写入也就是说在EXCEL中先写入表头。
⑧ Range(A2).CopyFromRecordset rsADO
为了理解上述代码的意义先讲一下CopyFromRecordset方法。
CopyFromRecordset方法是将一个ADO或 DAO Recordset 对象的内容复制到工作表中复制的起始位置以指定区域为左上角。
句法Rng.CopyFromRecordset(Data, MaxRows, MaxColumns)
参数
a) DataVoid 类型必选。复制到指定区域的 Recordset 对象。
b) MaxRowsVariant 类型可选。复制到工作表的记录个数上限。如果省略该参数将复制 Recordset 对象的所有记录。
c) MaxColumnsVariant 类型可选。复制到工作表的字段个数上限。如果省略该参数将复制 Recordset 对象的所有字段。
那么Range(A2).CopyFromRecordset rsADO的意义就是讲所得到的记录集合复制到A2单元格为左上角的一个适应的区域内。
⑨ rsADO.Close cnADO.Close Set rsADO Nothing Set cnADO Nothing
这几条代码的意义就是记录集关闭连接关闭释放内存。
下面看我们运行后的结果 到此开篇提到的问题我们的问题就圆满解决了。
今日内容回向
1 如何把数据库的内容在工作表中显示
2 今天的代码采用了一种方式的处理下一讲还有一种方案的处理请结合两者的内容看看今日的代码用的是那种处理方法
本讲内容参考程序文件VBA与数据库操作第一册.xlsm 我20多年的VBA实践经验全部浓缩在下面的各个教程中