设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1359|回复: 3
打印 上一主题 下一主题

[查询] 请教:一个看似简单的查询问题

[复制链接]
1#
发表于 2009-10-17 10:17:27 | 显示全部楼层
笨办法:一个一个相加,不用sum()
            With rs
                .Open "ExpnDTL10101_Jul", CurrentProject.Connection, adOpenKeyset, adLockReadOnly
                For a = 0 To .Fields.Count - 1
                    Bj = Left(.Fields(a).Name, 3)
                    If Bj = "A20" Or Bj = "F20" Or Bj = "P20" Then
                        If Bj = "P20" Then
                            flds1 = flds1 & "+" & "[" & .Fields(a).Name & "]"
                        Else
                            flds = flds & "+" & "[" & .Fields(a).Name & "]"
                        End If
                    End If
                Next
                .Close
            End With
            
            flds = Right(flds, Len(flds) - 1)
            flds1 = Right(flds1, Len(flds1) - 1)
            striSQL = "SELECT acct,AcctDescription ," & flds & " AS TtlYrFC, " & flds1 & " AS TtlYrPP FROM ExpnDTL10101_Jul "
            Set qdf = CurrentDb.QueryDefs("ExpnDtlQry")
            qdf.Sql = striSQL
            qdf.Close
            Set qdf = Nothing
            DoCmd.OpenQuery "ExpnDtlQry"
2#
发表于 2009-10-17 10:28:21 | 显示全部楼层
本帖最后由 asklove 于 2009-10-17 10:50 编辑

不好意思,看一下你的表,好像结果不正确 :( 郁闷

加上Nz()结果好像正确

If Bj = "A20" Or Bj = "F20" Or Bj = "P20" Then
            If Bj = "P20" Then
               flds1 = flds1 & "+ Nz([" & .Fields(a).Name & "],0)"
            Else
               flds = flds & "+ Nz([" & .Fields(a).Name & "],0)"
            End If
End If
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-8 11:22 , Processed in 0.086962 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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