Office中国论坛/Access中国论坛

标题: 怎样根据自定义公式计算 [打印本页]

作者: 风中漫步    时间: 2011-11-20 15:24
标题: 怎样根据自定义公式计算
用户自定义公式。怎样按运算符提取数据并计算呢?
如:
实发工资=((工资+补贴+奖金)*个人所得税率)-扣款
(sfgz=((gz+bt+jj)*grsds)-kk)

由于用户自定义的公式不会象例中这样固定,所以需要一个通用的方法。运算符暂只使用()+-*/

谢谢
作者: 咱家是猫    时间: 2011-11-20 15:32
1 在2010版本里的表有了公式字段(2007没有装,不知有没有相同功能)
2 可以在代码中用Val函数来处理.如:sfgz=Val((gz+bt+jj)*grsds)-kk)


作者: 风中漫步    时间: 2011-11-20 15:44
本帖最后由 风中漫步 于 2011-11-20 16:31 编辑
咱家是猫 发表于 2011-11-20 15:32
1 在2010版本里的表有了公式字段(2007没有装,不知有没有相同功能)
2 可以在代码中用Val函数来处理.如:sfgz ...


谢谢猫版,我的是2000。用不上。
可能我没有说明白,我是想分析公式,用ADO从表中取值计算,有点象用友财务软件的公式吧
有没有其他方法?
作者: aslxt    时间: 2011-11-20 16:32
参与计算的列数不固定?运算符不固定?
作者: 风中漫步    时间: 2011-11-20 16:41
aslxt 发表于 2011-11-20 16:32
参与计算的列数不固定?运算符不固定?

如您所说。期待您的建议。谢谢
作者: aslxt    时间: 2011-11-20 16:53
仅仅就工资来说,
实发工资=((工资+补贴+奖金)*个人所得税率)-扣款
应该是固定的,没有补贴的,用0代替,没有扣款的,也同样用0代替,...税率嘛,应该是动态的查询结果。
真正的运算符不固定、参与计算的列不固定是不可能实现一劳永逸的自定义公式

作者: 风中漫步    时间: 2011-11-20 17:11
本帖最后由 风中漫步 于 2011-11-20 17:19 编辑
aslxt 发表于 2011-11-20 16:53
仅仅就工资来说,
实发工资=((工资+补贴+奖金)*个人所得税率)-扣款
应该是固定的,没有补贴的,用0代 ...


谢谢回复。
工资是其中一种情况,举例嘛。
我暂时有个思路:先寻找(,再取(左面的公式计算,再从()两头向里包抄,取得最里面的字段取值计算,然后从里向外扩展计算,再取最后一个)右面的公式计算,最终得到计算结果。问题是多个()嵌套不知如何取值了,想的挺好做不出来。

也不知我这思路是否正确,也请您帮我想想
作者: andymark    时间: 2011-11-20 17:18
如果表里有相应字段,直接用SELECT 就OK了
select 应付工资, " & ( 工资变量 ) &  "  from 表
工资变量就是你的自定义公式:=((工资+补贴+奖金)*个人所得税率)-扣款
这里的个人所得税计算须自定义一个FUNCTION,来替换上面的税率
作者: 风中漫步    时间: 2011-11-20 18:05
andymark 发表于 2011-11-20 17:18
如果表里有相应字段,直接用SELECT 就OK了
select 应付工资, " & ( 工资变量 ) &  "  from 表
工资变量 ...

呵,这个方法不错,我也学ACC多年了,怎就没想到。其他的字段都可以围绕这个来做。

我先试试,谢谢管理员。谢谢大家
作者: roych    时间: 2011-11-21 01:30
关于个税,其实最简单的是通过速算扣除数来处理(原文是用Excel数组公式处理,比较复杂),之前我回复过的。
http://www.office-cn.net/thread-104546-1-1.html
作者: 风中漫步    时间: 2011-11-21 13:42
roych 发表于 2011-11-21 01:30
关于个税,其实最简单的是通过速算扣除数来处理(原文是用Excel数组公式处理,比较复杂),之前我回复过的。 ...

谢谢斑竹
作者: hyh11111111    时间: 2013-2-15 01:08
请各位顺便也帮助我解决一个类似的问题。网址如下:
http://www.office-cn.net/thread-116477-1-1.html




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3