有时我们想将表或查询的记录值赋予变量或控件,但在Access中不能直接通过Select语句来完成,比如有一个销售表结构和数据如下:
商品 单价 销售量 库存量
-------------------------------------------------
电视机 3600 23 16
洗衣机 1700 36 25
微波炉 450 45 7
上表展示了某家电商店几样商品某月的销售情况,如果我们想将此表的一些统计值如销售总金额、销售量最大的商品赋给变量,或在窗体上展现出来,应该如何做呢?
可以用VBA的DAO对象来完成这样的工作,很简单的,代码如下:
Dim MyDb As Database '定义数据库对象
Dim MyDs As Recordset '定义数据集对象
Set MyDb = CurrentDb '数据库为当前数据库
上面三条语句完成了基本的对象定义工作,下面的语句用OpenRecordset方法求得销售总金额,其中双引号中可为任何合法的Select语句。
Set MyDs = MyDb.OpenRecordset("Select Sum(单价*销售量) AS ZJE FROM 销售表")
然后将求得的值赋给变量或控件:
Dim Zje As Double
Zje = MyDs.Fields(0)
Me.Label1.Caption = "本月销售总金额是:"+CStr(Zje)+"元"
销售量最大的商品:
Set MyDs = MyDb.OpenRecordset("Select 商品 FROM 销售表 Where 销售量=(Select MAX(销售量) FROM 销售表)")
库存最少的商品:
Set MyDs = MyDb.OpenRecordset("Select 商品 FROM 销售表 Where 库存量=(Select MIN(库存量) FROM 销售表)")