Excel用VBA连接Access数据库查询语句补充

Posted Excel小白的学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel用VBA连接Access数据库查询语句补充相关的知识,希望对你有一定的参考价值。

 Access数据库查询语句之分组函数和产生记录集的两种方法




01



查询语句补充




分组计算查询及生成表查询代码如下:


'一、分组计算查询:   '1.聚合函数(sum,avg,max,min,count): '查询平均年龄和最大年龄:select avg(年龄) as 平均年龄,max(年龄) as 最大年龄 from 员工 '注:普通字段不能与聚合函数同时使用,因为记录条数对应不上,必须同分组函数配合使用   '2.分组函数(group by) '查询每个部门的平均年龄:select 部门,avg(年龄) as 平均年龄 from 员工 group by 部门   '3.分组筛选函数(having) '查询每个部门年龄大于35:select 部门,avg(年龄) as 平均年龄 from group by 部门 having avg(年龄)>35    '二、生成表查询:   '1.生成新表: '将成绩大于90的结果放到名为优秀的新表中:select * into 优秀 from 成绩 where 成绩>=90   '2.添加到已有表(顺序要一致): '将成绩在80-90的结果放在已有表(优秀)中:insert into 优秀 select * from 成绩 where 成绩 between 80 and 89    



02


产生记录集的方法


记录集指的是使用SQL语句查询后的数据在内存占据的空间名称,以下为产生记录集的两个方法的差异代码。


 '三、产生记录集的方法:   '1.使用connection对象的Execute方法产生记录集: 'set rs = con.Execute(sql) '说明:a.获取的记录集是只读的,不能修改记录,通常用于做一些没有返回的操作 ' b.不能获取记录条数    '      c.EOF表示记录的结尾,BOF表示记录的开头 'if rs.EOF and rs.BOF then '如果指针即指向开头又指向结尾,则表示没有记录   '2.使用recordset对象的open方法产生记录集: 'rs.open sql,con,adopenkeyset,adlockoptimistic '说明:a.获取的记录集是可读可写的,可以修改记录 ' b.可以获取记录条数 'if rs.Recordcount <= 0 then '表示没有满足条件的记录 'recordcount表示记录条数,即行数。(msgbox rs.recordcount)





以上是关于Excel用VBA连接Access数据库查询语句补充的主要内容,如果未能解决你的问题,请参考以下文章

如何使用sql语句和vba将数据从MS-Access导入excel power查询?

无法从 Excel 中的 VBA 查询连接到 Access 数据库

使用VBA从Excel创建与Access数据库的连接

VBA Excel里 用ADO访问ACCESS数据库的问题

在access中用vba如何把SQL语句查询到的一个值赋给变量?

来自 Access 的 Excel VBA SQL 没有结果