Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

代码太多能不能简化

杨乐  发表于:2020-01-19 08:31:33  
复制

点击下载此附件

 

Top
chinasa 发表于:2020-01-19 10:00:29

你这代码真的好长啊,真没那个时间看完,你试试看是否能把一部分重复出现的内容用变量表示,比如:


xxxxx=[D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY] + [D6CZYYBBXFY] + [D7CZYYBBXFY] + [D8CZYYBBXFY] + [D9CZYYBBXFY] + [D10CZYYBBXFY] + [D11CZYYBBXFY] + [D12CZYYBBXFY]


然后你下面用xxxxx来代替你那个从D1到D12的代码。



杨乐 发表于:2020-01-19 12:42:43
我没有专业学过这些知识,不知道怎么定义变量,还有期前几行代码都是赋值到记录的,但是无法直接引用

chinasa 发表于:2020-01-19 16:02:22


chinasa 发表于:2020-01-19 16:04:02

    Dim rst:    Set rst = ADO.OpenRecordset(strSQL, adLockOptimistic, cnn)
    If rst.EOF Then
    rst.AddNew
    rst!JBR = GetParameter("Current User Username")

CZYZFY变量=[D1CZYZFY] + [D2CZYZFY] + [D3CZYZFY] + [D4CZYZFY] + [D5CZYZFY] + [D6CZYZFY] + [D7CZYZFY] + [D8CZYZFY] + [D9CZYZFY] + [D10CZYZFY] + [D11CZYZFY] + [D12CZYZFY]

CZYYBBXFY变量=[D1CZYYBBXFY] + [D2CZYYBBXFY] + [D3CZYYBBXFY] + [D4CZYYBBXFY] + [D5CZYYBBXFY] + [D6CZYYBBXFY] + [D7CZYYBBXFY] + [D8CZYYBBXFY] + [D9CZYYBBXFY] + [D10CZYYBBXFY] + [D11CZYYBBXFY] + [D12CZYYBBXFY]

CZYDBBCFY变量=[D1CZYDBBCFY] + [D2CZYDBBCFY] + [D3CZYDBBCFY] + [D4CZYDBBCFY] + [D5CZYDBBCFY] + [D6CZYDBBCFY] + [D7CZYDBBCFY] + [D8CZYDBBCFY] + [D9CZYDBBCFY] + [D10CZYDBBCFY] + [D11CZYDBBCFY] + [D12CZYDBBCFY]

CZYBCBXBCFY变量=[D1CZYBCBXBCFY] + [D2CZYBCBXBCFY] + [D3CZYBCBXBCFY] + [D4CZYBCBXBCFY] + [D5CZYBCBXBCFY] + [D6CZYBCBXBCFY] + [D7CZYBCBXBCFY] + [D8CZYBCBXBCFY] + [D9CZYBCBXBCFY] + [D10CZYBCBXBCFY] + [D11CZYBCBXBCFY] + [D12CZYBCBXBCFY]

CZYQTBCFY变量=[D1CZYQTBCFY] + [D2CZYQTBCFY] + [D3CZYQTBCFY] + [D4CZYQTBCFY] + [D5CZYQTBCFY] + [D6CZYQTBCFY] + [D7CZYQTBCFY] + [D8CZYQTBCFY] + [D9CZYQTBCFY] + [D10CZYQTBCFY] + [D11CZYQTBCFY] + [D12CZYQTBCFY]

CZYZFFY变量=[D1CZYZFFY] + [D2CZYZFFY] + [D3CZYZFFY] + [D4CZYZFFY] + [D5CZYZFFY] + [D6CZYZFFY] + [D7CZYZFFY] + [D8CZYZFFY] + [D9CZYZFFY] + [D10CZYZFFY] + [D11CZYZFFY] + [D12CZYZFFY]

CZYGRZF变量=[D1CZYGRZF] + [D2CZYGRZF] + [D3CZYGRZF] + [D4CZYGRZF] + [D5CZYGRZF] + [D6CZYGRZF] + [D7CZYGRZF] + [D8CZYGRZF] + [D9CZYGRZF] + [D10CZYGRZF] + [D11CZYGRZF] + [D12CZYGRZF]

CZYCXJZF变量=[D1CZYCXJZF] + [D2CZYCXJZF] + [D3CZYCXJZF] + [D4CZYCXJZF] + [D5CZYCXJZF] + [D6CZYCXJZF] + [D7CZYCXJZF] + [D8CZYCXJZF] + [D9CZYCXJZF] + [D10CZYCXJZF] + [D11CZYCXJZF] + [D12CZYCXJZF]

CZYQTZF变量= [D1CZYQTZF] + [D2CZYQTZF] + [D3CZYQTZF] + [D4CZYQTZF] + [D5CZYQTZF] + [D6CZYQTZF] + [D7CZYQTZF] + [D8CZYQTZF] + [D9CZYQTZF] + [D10CZYQTZF] + [D11CZYQTZF] + [D12CZYQTZF]



chinasa 发表于:2020-01-19 16:04:19
rst!ZZYFY = Round(CZYZFY变量, 2)
    rst!ZYBBXFY = Round(CZYYBBXFY变量, 2)
    rst!ZDBBCFY = Round(CZYDBBCFY变量, 2)
    rst!ZBCBXBCFY = Round(CZYBCBXBCFY变量, 2)
    rst!ZQTBCFY = Round(CZYQTBCFY变量, 2)
    rst!ZZFFY = Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2)
    rst!GRZFFY = Round(CZYZFY变量, 2) - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2)
    rst!DBJZSQJE = IIf(Round(IIf(Round(CZYZFY变量, 2) * 0.85 _
    - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) > _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    Round(CZYZFY变量, 2) * 0.85 - _
    Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2))) > 50000, 50000, _
    Round(IIf(Round(CZYZFY变量, 2) * 0.85 _
    - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) > _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    Round(CZYZFY变量, 2) * 0.85 - _
    Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2))))

chinasa 发表于:2020-01-19 16:04:36
rst!ZZGRZFFY = Round(Round(CZYZFY变量, 2) - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) _
    - IIf(Round(IIf(Round(CZYZFY变量, 2) * 0.85 _
    - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) > _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    Round(CZYZFY变量, 2) * 0.85 - _
    Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2))) > 50000, 50000, _
    Round(IIf(Round(CZYZFY变量, 2) * 0.85 _
    - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) > _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    Round(CZYZFY变量, 2) * 0.85 - _
    Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2)))), 2)
    Else
    rst!ZZYFY = Round(CZYZFY变量, 2)
    rst!ZYBBXFY = Round(CZYYBBXFY变量, 2)
    rst!ZDBBCFY = Round(CZYDBBCFY变量, 2)
    rst!ZBCBXBCFY = Round(CZYBCBXBCFY变量, 2)
    rst!ZQTBCFY = Round(CZYQTBCFY变量, 2)
    rst!ZZFFY = Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2)
    rst!GRZFFY = Round(CZYZFY变量, 2) - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2)
    rst!DBJZSQJE = IIf(Round(IIf(Round(CZYZFY变量, 2) * 0.85 _
    - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) > _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    Round(CZYZFY变量, 2) * 0.85 - _
    Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2))) > 50000, 50000, _
    Round(IIf(Round(CZYZFY变量, 2) * 0.85 _
    - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) > _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    Round(CZYZFY变量, 2) * 0.85 - _
    Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2))))

chinasa 发表于:2020-01-19 16:04:49
rst!ZZGRZFFY = Round(Round(CZYZFY变量, 2) - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) _
    - IIf(Round(IIf(Round(CZYZFY变量, 2) * 0.85 _
    - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) > _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    Round(CZYZFY变量, 2) * 0.85 - _
    Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2))) > 50000, 50000, _
    Round(IIf(Round(CZYZFY变量, 2) * 0.85 _
    - Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2) > _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    IIf(Round(CZYZFY变量, 2) _
    - Round(CZYZFFY变量 + CZYGRZF变量 + CZYCXJZF变量 + CZYQTZF变量, 2) > 30000, _
    Round(CZYYBBXFY变量, 2) * 0.5, _
    Round(CZYYBBXFY变量, 2) * 0.3), _
    Round(CZYZFY变量, 2) * 0.85 - _
    Round(CZYDBBCFY变量 + CZYBCBXBCFY变量 + CZYQTBCFY变量 + CZYYBBXFY变量, 2)))), 2)
    End If

chinasa 发表于:2020-01-19 16:05:50

附件不知为啥上传不了,你自己拼接下试试看。

你哪些计算逻辑别人是没办法帮你简化的,因为根本不知道你的业务背景。



杨乐 发表于:2020-01-20 17:59:35

谢谢,我试试




杨乐 发表于:2020-01-20 20:04:16
我试了,可以正常报销,但是运行速度变慢了,不知道什么原因!

总记录:10篇  页次:1/1 9 1 :