设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1262|回复: 4
打印 上一主题 下一主题

[其它] 查询,又是空记录;计算,还是无效!!!

[复制链接]
跳转到指定楼层
1#
发表于 2005-6-26 16:14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我正在做一个数据库,用来按日期统计职工工作量,由于数据量太大,又没有办法把原始数据库上传,经过简化。我所遇到的问题可以用以下三个表来表示,一个表是工作任务表(编号,完成日期,完成人,单位工时),其中,编号是主键;另一个表是工作量统计表(日期,男性完成工时,女性完成工时,),日期是主键;第三个表是职员表(姓名,男/女),姓名是主键,男/女字段为是/否字段。

我解决的思路有两条:一是通过追加查询,将工作任务表和职员表中按日期和男/女字段统计的工时数追加到工作量统计表中,在执行追加查询时,发现以下问题,即只有当某个日期中男性和女性均有完成工时数时,才能追加,若只有男性或只有女性完成工时数时,则查询结果为空记录(注意,不只是单个字段出现空值,而是所有字段全空!!!),这样就没有办法执行该天的工时追加。

第一条路走不通,于是想到第二条路:即先向工作量统计表中追加日期,这个可以很容易地完成,追加完日期后,由于男性和女性工时均为零,这样就要用到更新查询,在执行更新查询时,由于男性和女性完成工时字段被更新到表达式中使用了另外查询(单独执行男性或女性在某天的工时总计)中的计算字段,而该计算字段使用了聚合函数,根据更新查询的说明,在更新查询中,被更新到表达式不能使用聚合函数,再次翻看了access的帮助,说必须在被更新到表达式中使用域聚合函数DCount()来进行统计,再仔细一看,发现DCount()函数中所有引用字段必须在同一个表或查询中,而我所要用到都来自不同的表和查询,所以没有办法使用,这样第二条路也走不通!

后来仔细想想,这个数据库没有办法绕开空记录的情况,使用Nz()、IsNull、iif()均没有办法,它们只是用来处理单个字段为空时的情形,而对空记录却是没有办法。所以在这里恳请各位高人大虾能不吝赐教!!!救救我吧!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-6-26 16:27:00 | 只看该作者
iserror()
3#
 楼主| 发表于 2005-6-27 06:56:00 | 只看该作者
谢谢指教,我开始就用过iserror()了,还是没有用的。用这个函数连返回值都没有。
4#
发表于 2005-6-27 20:15:00 | 只看该作者
您上传的数据库里不用保存所有的记录啊,只需保留能反映问题的记录就行了,清除不必要的记录后再修复和压缩数据库上传。
5#
 楼主| 发表于 2005-6-28 07:42:00 | 只看该作者
不好意思,由于上网条件限制,上传很不方便。我今天把男性和女性完成工时分别追加,这样虽然麻烦点,但也能达到效果,只不过这样也只是绕开问题勉强为之,谢谢你们指点!再次感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-21 08:46 , Processed in 0.093238 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表