设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1552|回复: 12
打印 上一主题 下一主题

[Access本身] 请教自定义函数?

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-15 19:23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个计件查询,想通过自定义函数获得不同部门的单价

部门有:白坯部,彩绘部,彩样室,白样室,(其中彩样和白样两个部门以生产样品为主,如果没有样品订单可做,就生产大货单)

订单有:大货单,样品单.(在计件查询中有样品单的字段,是否表示)

条件是:白样计算方式:  1.订单量为1--2PC,单价为大货单价的5倍

                                   2.订单量为3--5PC,单价为大货单价的4倍

                                   3.订单量为6--10PC,单价为大货单价的3倍

                                   4.订单量为11--20PC,单价为大货单价的2倍

                                   5.如果生产非样品单,单价为大货单价.

          彩样室的计算方式: 1.订单量为1--2PC,单价为大货单价的8倍

                                   2.订单量为3--4PC,单价为大货单价的6倍

                                   3.订单量为5--6PC,单价为大货单价的5倍

                                   4.订单量为7--10PC,单价为大货单价的4倍

                                   5.订单量为711--30PC,单价为大货单价的3倍

                                   6.订单量为30PCS以上或从大货中调入彩样生产,单价为大货单价的2倍

例: 产品HS0001,彩绘单价为0.5,白坯单价为:0.2   大货订单量为:45PCS

彩样室的计件工资为:45*0.5*2

彩绘部的计件工资为:45*0.5

白样的计算方式:  45*0.2*2

白坯部的计算方式:45*0.2



[此贴子已经被作者于2006-8-15 20:22:03编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-8-15 19:36:00 | 只看该作者
建议用表的方式来保存参数,因为当单价的倍率或工资参数的变动不必要修改函数,只修改表的数据就行了,对维护有好处
3#
发表于 2006-8-15 19:43:00 | 只看该作者
以下是引用laiguiyou在2006-8-15 11:23:00的发言:


          彩样室的计算方式: 1.订单量为1--2PC,单价为大货单价的8倍

                                   2.订单量为3--4PC,单价为大货单价的6倍

                                   3.订单量为5--6PC,单价为大货单价的5倍

                                   4.订单量为7--10PC,单价为大货单价的4倍

                                   5.订单量为711--30PC,单价为大货单价的3倍

                                   6.订单量为30PCS以上或从大货中调入彩样生产,单价为大货单价的2倍

例: 产品HS0001,彩绘单价为0.5,白坯单价为:0.2   大货订单量为:45PCS

彩样室的计件工资为:45*0.5*5

       彩样室订货量超过30PCS不是2倍,怎么会是5倍的?

       彩样室的计件工资为:45*0.5*2
4#
 楼主| 发表于 2006-8-15 19:50:00 | 只看该作者
不好意思,打错了,请版主帮忙看看
5#
发表于 2006-8-15 21:50:00 | 只看该作者
好啊!学习
6#
 楼主| 发表于 2006-8-15 23:04:00 | 只看该作者
在查询中用IIF如何写,另一部分怎样嵌套.

IIf([部门]="彩样室",IIf(([订单量]>=1) And ([订单量]<=2),[单价]*8,IIf(([订单量]>=3) And ([订单量]<=4),[单价]*6,IIf(([订单量]>=5) And ([订单量]<=6),[单价]*5,IIf(([订单量]>=7) And ([订单量]<=10),[单价]*4,IIf(([订单量]>=11) And ([订单量]<=30),[单价]*3,IIf([订单量]>30,[单价]*2,[单价])))))),[单价])

IIf([部门]="白样室",IIf(([订单量]>=1) And ([订单量]<=2),[单价]*5,IIf(([订单量]>=3) And ([订单量]<=5),[单价]*4,IIf(([订单量]>=6) And ([订单量]<=10),[单价]*3,IIf(([订单量]>=11) And ([订单量]<=20),[单价]*2,IIf([订单量]>20,[单价])))))),[单价])

还有判断是否样品单,如果是,则执行上面的条件,否则单价*2.

这几部分如何连接?

[此贴子已经被作者于2006-8-15 15:07:23编辑过]

7#
发表于 2006-8-16 03:27:00 | 只看该作者
这么多IIf 看都有点晕,把例子传上来吧
8#
 楼主| 发表于 2006-8-16 04:21:00 | 只看该作者
在计件单主档查询中,单价为大货单价,单价2为各部门的单价,还差样品单的判断,彩样室为:如果是非样品单,单价为:大货单价*2, 白样室:如果非样品单,单价为大货单价.这句如何加上去?




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2006-8-16 04:57:00 | 只看该作者
以下是引用一点通在2006-8-15 11:36:00的发言:
建议用表的方式来保存参数,因为当单价的倍率或工资参数的变动不必要修改函数,只修改表的数据就行了,对维护有好处

一点通的才是好方法
10#
 楼主| 发表于 2006-8-16 05:09:00 | 只看该作者
一点通大师的方法确实很好,可本人不会写模块,不知如何调用.先用IIF函数凑合先用着.还望多指点!!!!

以下缺少对样品单的判断,不知如何加进去?就是能实现上面的白样第5条和彩样的第6条.

单价2: IIf([部门]="8",(IIf(([订单量]>=1) And ([订单量]<=2),[单价]*8,IIf(([订单量]>=3) And ([订单量]<=4),[单价]*6,IIf(([订单量]>=5) And ([订单量]<=6),[单价]*5,IIf(([订单量]>=7) And ([订单量]<=10),[单价]*4,IIf(([订单量]>=11) And ([订单量]<=30),[单价]*3,IIf([订单量]>30,[单价]*2,[单价]))))))),IIf([部门]="24",IIf(([订单量]>=1) And ([订单量]<=2),[单价]*5,IIf(([订单量]>=3) And ([订单量]<=5),[单价]*4,IIf(([订单量]>=6) And ([订单量]<=10),[单价]*3,IIf(([订单量]>=11) And ([订单量]<=20),[单价]*2,IIf([订单量]>20,[单价],[单价]))))),[单价]))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-12 11:59 , Processed in 0.101695 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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