Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

查询中字段求和

wuykai  发表于:2008-04-15 21:38:22  
复制

这是我做的公用函数,目的是对记录集中某字段具有相同值,则对另一字段求和

Public Function dsumfieldv(rs As String, sfield As field, casefield As field, ordfield As field) As Currency
Dim rsv As New ADODB.Recordset
Dim conn As ADODB.Connection
Dim varval As Variant
Dim strsql As String
strsql = "select " & sfield & " from " & rs & "group by " & casefield & "order by " & ordfield & " desc"
Set conn = CurrentProject.AccessConnection
rsv.Open strsql, conn, adOpenDynamic, adLockOptimistic
varval = rsv("casefield")
dsumfieldv = DSum("[sfield]", "rsv")
End Function

这是在查询中的应用:

字段sumpag: dsumfieldv("实付记录";[实付记录]![sumpagbat];[实付记录]![rcvid];[实付记录]![no])

 

结果:#错误

 

不知道为什么?

如何解决?

 

Top
咱家是猫 发表于:2008-04-15 22:20:33

这是什么代码啊?有点不伦不类的.一会ADODB.Recordset,一会DSum

我实在看不明白你要做什么.

按你这么做法,直接dsumfieldv = DSum("[sfield]", "rs")效果不是一样嘛.



sosopain 发表于:2008-04-15 23:46:04

用access 就不要轻易自建数据源,否则开发效率和运行效率都会比较低。尽量使用内建的查询或者聚合函数



wuykai 发表于:2008-04-16 17:03:03

谢谢指点!新手,正在努力学习中,

 



lee 发表于:2008-04-29 11:12:27

有关查询的问题请高手指点细些。谢谢!!!



总记录:4篇  页次:1/1 9 1 :