|
本帖最后由 roych 于 2011-9-25 10:02 编辑
插入一个模块,把下面代码复制进去,然后在来源里输入:=PM([销售额]),具体看附件:- Function PM(Ctl As Control) As Long
- Dim Z As Long
- '打开分组求和降序排列的记录集
- Dim rst As New ADODB.Recordset
- rst.Open "SELECT 订单.客户名称, Sum(订单.本单金额) AS 总计 FROM 订单 GROUP BY 订单.客户名称 ORDER BY Sum(订单.本单金额) DESC", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
- '如果数据不多,这两行可以不要(目的在于快速读取数据而已)。
- rst.MoveLast
- rst.MoveFirst
- '由于前面是降序排列,那么位置先后即为名次。
- For Z = 1 To rst.RecordCount
- If Ctl.Value = rst(1) Then
- PM = rst.AbsolutePosition
- End If
- '排完第一个名次后,把光标移动到下一行,继续循环排名
- rst.MoveNext
- Next
- '关闭记录集和释放内存。
- rst.Close
- Set rst = Nothing
- End Function
复制代码
题外话,这个图片很熟悉,记得在某部国外的电影上(不过忘了叫什么了)看过这个情节。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|