设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 怎样根据自定义公式计算

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-20 15:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用户自定义公式。怎样按运算符提取数据并计算呢?
如:
实发工资=((工资+补贴+奖金)*个人所得税率)-扣款
(sfgz=((gz+bt+jj)*grsds)-kk)

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

谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-11-20 15:32:21 | 只看该作者
1 在2010版本里的表有了公式字段(2007没有装,不知有没有相同功能)
2 可以在代码中用Val函数来处理.如:sfgz=Val((gz+bt+jj)*grsds)-kk)

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


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

如您所说。期待您的建议。谢谢
6#
发表于 2011-11-20 16:53:47 | 只看该作者
仅仅就工资来说,
实发工资=((工资+补贴+奖金)*个人所得税率)-扣款
应该是固定的,没有补贴的,用0代替,没有扣款的,也同样用0代替,...税率嘛,应该是动态的查询结果。
真正的运算符不固定、参与计算的列不固定是不可能实现一劳永逸的自定义公式
7#
 楼主| 发表于 2011-11-20 17:11:37 | 只看该作者
本帖最后由 风中漫步 于 2011-11-20 17:19 编辑
aslxt 发表于 2011-11-20 16:53
仅仅就工资来说,
实发工资=((工资+补贴+奖金)*个人所得税率)-扣款
应该是固定的,没有补贴的,用0代 ...


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

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

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

我先试试,谢谢管理员。谢谢大家
10#
发表于 2011-11-21 01:30:15 | 只看该作者
关于个税,其实最简单的是通过速算扣除数来处理(原文是用Excel数组公式处理,比较复杂),之前我回复过的。
http://www.office-cn.net/thread-104546-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-1 09:26 , Processed in 0.086850 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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