Access交流中心

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

请教:怎样统计每一行不为零的字段个数?

网事如风  发表于:2010-06-17 15:56:34  
复制

有一表如下:

 

编号  姓名   一月  二月  三月  四月  五月  六月  月数

 

001   张三  500   0     400   600   900   3000     5

 

002   李四  600  500     0     0    0     800      3

 

 

最后一列的月数如何用查询统计出来?

 

Top
王樵民 发表于:2010-06-17 16:42:18

在查询中加入一个自定义函数,该函数放在模块中。

起作用用来统计每一行非零的个数,其函数代码如下:

Function dyl(bh) '计算每行中不为零的个数
Dim db As Database  '定义引用数据库的变量。
Dim rs As DAO.Recordset '定义引用记录集的变量。
Dim sql1 As String
Dim i As Integer
Set db = CurrentDb()
sql1 = "select 编号,一月, 二月, 三月, 四月, 五月, 六月,七月,八月,九月,十月,十一月,十二月 FROM 表1 where 编号='" & bh & "'; "
Set rs = db.OpenRecordset(sql1)
dyl = 0
For i = 1 To rs.Fields.Count - 1
 If Nz(rs(i)) > 0 Then dyl = dyl + 1
Next i
Set db = Nothing
Set rs = Nothing
End Function

请参考附件中的“表1查询”

点击下载此附件

网事如风 发表于:2010-06-17 16:49:53
好的,非常感谢王老师!我学习学习!

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