VB用SQL访问ACCESS的一个问题~

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:05:07
目的:数据库查询两个表做数据统计
环境:ACCESS
问题描述:

我用以下语句在access里面调试都能正常通过,但我放在VB程序里就不行了,请高手帮忙指点一下!!
select c.小组名,d.积分,d.积分/c.count
from
(select 小组名,count(成员编号) as count from a group by 小组名) c,
(select a.小组名,sum(iif(isnull(b.积分),0,b.积分)) as 积分 from a left join b
on a.成员编号=b.成员编号 group by a.小组名) d
where
c.小组名=d.小组名

放到VB里如下:
call openconn
sql="select c.小组名,d.积分,d.积分/c.count
from
(select 小组名,count(成员编号) as count from a group by 小组名) c,
(select a.小组名,sum(iif(isnull(b.积分),0,b.积分)) as 积分 from a left join b
on a.成员编号=b.成员编号 group by a.小组名) d
where
c.小组名=d.小组名 "
rs.open sql,cn,1,1
结果是没有任何反应,看来这句查询是不是VB环境里不认呢???
我在VB里运行下面这句只
sql="select a.小组名,sum(b.积分)as point from a, b where a.成员编号=b.成员编号 group by a.小组名"
是统计总分的可以通过,LISTVIEW有显示,就是加个平均分的就不行了,但在access里通过了,VB里就不行了,奇怪!!!

rs.open sql,cn,1,1
你这个只是打开了数据库,提交了语句。

你还需要填充记录集。用控件显示出结果的。

之前我用ADODC控件访问数据库,并用DATAGride控件显示:
在窗体上添加上述两控件,以下是部分代码:
Adodc1.ConnectionString = "uid=admin;driver={Microsoft access driver (*.mdb)};dbq=路径(如d:\abc.mdb)"
Adodc1.RecordSource = "select * from concentration(表名) where 查询条件(如,日期= #" & dat & "# and 时间 between #" & xiaxian & "# and #" & shxian & "#")
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1

引用ADODB也能实现上述功能,可自己查相关资料。