VBA与数据库——简化程序编写-一维表转二维表

网友投稿 940 2022-10-29

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

VBA与数据库——简化程序编写-一维表转二维表

在一维表转二维表里介绍了使用字典来转换表格的方法,可以看到使用字典的方法代码量还是有一点多的,有点复杂。

让我们看看使用ADO怎么来实现这个功能:

Sub ADOTransformData() Dim AdoConn As Object Set AdoConn = VBA.CreateObject("ADODB.Connection") '打开数据库 AdoConn.Open "Provider =Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=YES"";" Dim rst As Object Set rst = VBA.CreateObject("ADODB.Recordset") Set rst = AdoConn.Execute("transform sum(数据) select 项目 from [Sheet1$A1:C21] group by 项目 pivot 姓名", , 1) '输出标题 Dim i As Long For i = 0 To rst.Fields.Count - 1 Range("E1").Offset(0, i).Value = rst.Fields(i).name Next '输出数据 Range("E2").CopyFromRecordset rst rst.Close AdoConn.Close Set rst = Nothing Set AdoConn = NothingEnd Sub

代码和前面的汇总数据、查找数据一样,仅仅是修改了sql语句,其中8-15行ADODB.Recordset是为了输出标题才使用。

这个代码使用很简单,但是需要注意的是transform 这个语句不是所有的数据库驱动程序都能够支持的,像SQLite数据库就不能够支持。

上一篇:RAID 4使用一块磁盘作为奇偶校验盘
下一篇:根据组合分为RAID 10和RAID 01
相关文章

 发表评论

暂时没有评论,来抢沙发吧~