ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1277|回复: 2

求一函数来汇总文件状态

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-2-15 05:26 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请教高手如何在ACCESS的查询里写函数完成此汇总文件状态功能

我需要四个文件,
第一个文件(提单 即 BL_WB)只有两状态  0 =缺少, 1=收到
其他三个文件的状态为,  0 =缺少, 1=收到未查, 2=收到但查有错误, 3=收到并正确

四个文件的状态相乘以后,
DocStatus: -(IsNull([BL_WB])=No)*Nz([Invoice])*Nz([PackingList])*Nz([CertOfOrigin])
0 =至少缺少一份, 1=全部收到但未查,
2=一个文件错误两个未查, 4=两个错误一个未查, 8=3个均错
6=1个错误1个正确1个未查, 12=2个错误1个正确, 18=1个错误2个正确,
3=一个文件正确两个未查, 9=两个正确一个未查, 27=收到并全部正确,

用IIF函数会长得无法容忍同时容易写错, 请教什么函数可以写得简洁明了.

TA的精华主题

TA的得分主题

发表于 2012-2-15 18:31 | 显示全部楼层
本帖最后由 roych 于 2012-2-15 18:31 编辑

1、IIF也可以嵌套的。
2、可以定义一个参数表,用乘积和对应的状态建立关系,从而返回状态。例如:
编号(长整型) 状态
0                    至少缺少一份
1                   全部收到但未查
2                   一个文件错误两个未查
3                   一个文件正确两个未查
……………………………………………
27                 收到并全部正确

建立自定义字段查询,如你的例子中的DocStatus,假定保存为查询1,然后查询1以DocStatus和上面数据表中的“编号”建立数据联接,大体如下:
Select 查询1.DocStatus From 参数表 Right Join 查询1 On 参数表.编号=查询1.DocStatus;

当然也可以建立自定义函数,不过个人觉得维护起来并不方便。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-15 20:58 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 18:18 , Processed in 0.018829 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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