以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  增加统计表后产生列名错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=195622)

--  作者:foxyuan
--  发布时间:2025/2/23 14:22:00
--  增加统计表后产生列名错误
Forms("营销中心年度数据分类统计窗口").StopRedraw()
Dim Filter, Btext As String
Dim year As Integer
With e.Form.Controls("统计年度")
    If .Value IsNot Nothing Then
        year = .value
        With e.Form.Controls("姓名")
            If .Value IsNot Nothing Then
                Filter = "[公历年度] = " & year & " and {员工借款}.姓名 = \'" & .Value & "\' And [支付方式] NOT In(\'往年结转\',\'公历结转\') And [统计] = 0 "
                Btext = "公历" & year & "年度员工" & .Value & "借款数据"
            Else
                Filter = "[公历年度] = " & year & " And {员工借款}.姓名 NOT In( \'公司\' ) and {员工档案}.员工状态 In ( \'在职\', \'试用期\') And [支付方式] NOT In(\'往年结转\',\'公历结转\') And [统计] = 0 "
                Btext = "公历" & year & "年度公司目前在职员工借款数据"
            End If
        End With
    Else
        With e.Form.Controls("姓名")
            If .Value IsNot Nothing Then
                Filter = "支付方式 NOT In( \'往年结转\',\'公历结转\' ) And {员工借款}.姓名 = \'" & .Value & "\' And [统计] = 0 "
                Btext = "员工" & .Value & "全部年度借款数据"
            Else
                Filter = "支付方式 NOT In( \'往年结转\',\'公历结转\' ) And {员工借款}.姓名 NOT In( \'公司\') and {员工档案}.员工状态 In( \'在职\', \'试用期\') And [统计] = 0 "
                Btext = "公司目前在职员工全部年度借款数据"
            End If
        End With
    End If
End With
End If
Dim g As New SQlCrossTableBuilder("借款数据统计", "员工借款")
g.C

g.AddTable("员工借款", "员工编号", "员工档案", "员工编号") \'添加统计表

g.HGroups.AddDef("{员工借款}.员工编号")
g.HGroups.AddDef("{员工借款}.姓名")
g.VGroups.AddDef("借款日期", Btext & "统计_{0}月")
g.Totals.AddDef("借款金额", "借款金额")
g.HorizontalTotal = True
g.VerticalTotal = True
g.OrderByTotal = True
g.Filter = Filter
g.SubtotalLevel = 0 \'SubtotalLevel的默认值为-1,根据所有分组生成汇总模式;设为0,只生成总计行,设为1,根据第一个分组生成汇总模式;设为2,根据前两个分组生成汇总模式,其余类推
g.Subtotal = True
g.Build()
Tables("营销中心年度数据分类统计窗口_Table1").DataSource = g.BuildDataSource()
Forms("营销中心年度数据分类统计窗口").ResumeRedraw()
MainTable = Tables("营销中心年度数据分类统计窗口_Table1")

--  作者:foxyuan
--  发布时间:2025/2/23 14:25:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2025-02-23_14-23-48.png
图片点击可在新窗口打开查看

生成的SQL语句错误。

请专家胡帮忙看一下。

--  作者:foxyuan
--  发布时间:2025/2/23 14:40:00
--  
以两个表都有的列分组报错,只有一个表存在的列分组不报错。
--  作者:foxyuan
--  发布时间:2025/2/23 15:40:00
--  
水平分组列名表达有问题,请大佬指导修改一下。
--  作者:有点蓝
--  发布时间:2025/2/23 19:58:00
--  
表面无法看出问题,请上传实例测试