Access交流中心

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

累计余额想将条件ID去掉可否

xunmi  发表于:2019-01-10 15:10:01  
复制

 银行余额: IIf(IsNull(DSum("汇入","银行日记帐查询","日期<=#" & [日期] & "# and ID<=" & [ID] & "and 银行='" & [银行] & "'")),0,DSum("汇入","银行日记帐查询","日期<=#" & [日期] & "# and ID<=" & [ID] & "and 银行='" & [银行] & "'"))-IIf(IsNull(DSum("汇出","银行日记帐查询","日期<=#" & [日期] & "#and ID<=" & [ID] & "and 银行='" & [银行] & "'")),0,DSum("汇出","银行日记帐查询","日期<=#" & [日期] & "#and ID<=" & [ID] & "and 银行='" & [银行] & "'"))


想将条件ID去掉,请问是否可以实现,要怎么做?谢谢

 

Top
伊西军 发表于:2019-01-10 16:36:36
应该是不可以的

半夜罗 发表于:2019-01-11 16:16:39

这样的查询很麻烦,出现问题要时查找困难,我喜欢用临时表中采用DAO,或ADO的方式,累计计算。SQL语句能非常灵活方便地设置条件。

Public Function 计算流水()
    Dim rs As Object
    Dim rs金额余额 As Currency    '货币类型
    Dim rs数量余额 As Currency    '货币类型


    '设计数据库可以运行的记录条数为50万条,不然有可能在9千多条记录后就不计算了
    '    DAO.DBEngine.SetOption dbMaxLocksPerFile, 500000

    If DCount("*", "临时表_往来明细账") > 0 Then
        Set rs = CurrentDb.OpenRecordset("Select * FROM 临时表_往来明细账 ORDER BY  [流水号]", 2)
        rs.MoveFirst    '使记录的指针指到第一条记录
        rs数量余额 = Nz(rs!数量余额, 0)
        rs金额余额 = Nz(rs!金额余额, 0)
        Do While Not rs.EOF    '循环开始
            rs.Edit
            If rs!摘要 = "本月小计" Then
                rs!数量余额 = rs数量余额
                rs!金额余额 = rs金额余额
            ElseIf rs!摘要 = "本年累计" Then
                rs!数量余额 = rs数量余额
                rs!金额余额 = rs金额余额
            Else
                rs!数量余额 = rs数量余额 + Nz(rs!借方数量) - Nz(rs!贷方数量)
                rs!金额余额 = rs金额余额 + Nz(rs!借方金额) - Nz(rs!贷方金额)
            End If
            rs.Update    '保存上面这个公式计算的结果到数据库中
            rs数量余额 = rs!数量余额
            rs金额余额 = rs!金额余额
            rs.MoveNext    '下一条记录
        Loop
        rs.Close    '关闭记录集对象
        Set rs = Nothing    '释放记录集对象
    End If
End Function



西出阳关无故人 发表于:2019-01-12 10:13:17

要看id、日期、记录修改的具体情况:

如果日期记录到精确的时间,达到基本没有重复的情况下(例如用户较少,又不是批量插入的情况,access的秒级就可以了),应该可以去掉id的条件

如果日期记录的时间不精确,导致有很多重复的日期值,就不能省略id的条件。

如果日期默认值为当前时间,id为自动编号,正常情况下,可以只取日期或id之一作为条件即可,如果修改过日期、删除过记录重录等情况,就会出现某记录的日期顺序和id顺序不同,得出的结果就会有偏差。



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