以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191924)

--  作者:wlj88868
--  发布时间:2024/5/16 9:03:00
--  查询问题

查询按钮的代码

Dim Filter As String
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        Filter = "品牌 like \'*" & .Value & "*\'"
    End If
End With
With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "销售型号 like\'*" & .Value & "*\'"
    End If
End With
With e.Form.Controls("combobox12")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "销售商场  like\'*" & .Value & "*\'"
    End If
End With
With e.Form.Controls("StartDate")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "销售日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("EndDate")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "销售日期 <= #" & .Value & "#"
    End If
End With
If Filter > "" Then
    Tables("查询表").Filter = Filter
End If

统计查询的代码

Dim Filter As String
With e.Form.Controls("startDate")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("EndDate")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 <= #" & .Value & "#"
    End If
End With
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "出库商场 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "型号 like\'*" & .Value & "*\'"

    End If
End With
Dim Filter1 As String
With e.Form.Controls("startDate")
    If .Value IsNot Nothing Then
        If Filter1 > "" Then
            Filter1 = Filter1 & " And "
        End If
        Filter1 = Filter1 & "日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("EndDate")
    If .Value IsNot Nothing Then
        If Filter1 > "" Then
            Filter1 = Filter1 & " And "
        End If
        Filter1 = Filter1 & "日期 <= #" & .Value & "#"
    End If
End With
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        If Filter1 > "" Then
            Filter1 = Filter1 & " And "
        End If
        Filter1 = Filter1 & "退货商场 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
        If Filter1 > "" Then
            Filter1 = Filter1 & " And "
        End If
        Filter1 = Filter1 & "型号 like\'*" & .Value & "*\'"

    End If
End With

Dim Filter3 As String
With e.Form.Controls("startDate")
    If .Value IsNot Nothing Then
        If Filter3 > "" Then
            Filter3 = Filter3 & " And "
        End If
        Filter3 = Filter3 & "销售日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("EndDate")
    If .Value IsNot Nothing Then
        If Filter3 > "" Then
            Filter3 = Filter3 & " And "
        End If
        Filter3 = Filter3 & "销售日期 <= #" & .Value & "#"
    End If
End With
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        If Filter3 > "" Then
            Filter3 = Filter3 & " And "
        End If
        Filter3 = Filter3 & "销售商场 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
        If Filter3 > "" Then
            Filter3 = Filter3 & " And "
        End If
        Filter3 = Filter3 & "销售型号 like\'*" & .Value & "*\'"

    End If
End With

Dim Filter4 As String
With e.Form.Controls("startDate")
    If .Value IsNot Nothing Then
        If Filter4 > "" Then
            Filter4 = Filter4 & " And "
        End If
        Filter4 = Filter4 & "日期 < #" & .Value & "#"
    End If
End With
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        If Filter4 > "" Then
            Filter4 = Filter4 & " And "
        End If
        Filter4 = Filter4 & "出库商场 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
        If Filter4 > "" Then
            Filter4 = Filter4 & " And "
        End If
        Filter4 = Filter4 & "型号 like\'*" & .Value & "*\'"

    End If
End With

Dim Filter5 As String
With e.Form.Controls("startDate")
    If .Value IsNot Nothing Then
        If Filter5 > "" Then
            Filter5 = Filter5 & " And "
        End If
        Filter5 = Filter5 & "日期 < #" & .Value & "#"
    End If
End With
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        If Filter5 > "" Then
            Filter5 = Filter5 & " And "
        End If
        Filter5 = Filter5 & "退货商场 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
        If Filter5 > "" Then
            Filter5 = Filter5 & " And "
        End If
        Filter5 = Filter5 & "型号 like\'*" & .Value & "*\'"

    End If
End With
Dim Filter6 As String
With e.Form.Controls("startDate")
    If .Value IsNot Nothing Then
        If Filter6 > "" Then
            Filter6 = Filter6 & " And "
        End If
        Filter6 = Filter6 & "销售日期 < #" & .Value & "#"
    End If
End With
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        If Filter6 > "" Then
            Filter6 = Filter6 & " And "
        End If
        Filter6 = Filter6 & "销售商场 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("combobox2")
    If .Value IsNot Nothing Then
        If Filter6 > "" Then
            Filter6 = Filter6 & " And "
        End If
        Filter6 = Filter6 & "销售型号 like\'*" & .Value & "*\'"

    End If
End With

Dim bd1 As New SqlGroupTableBuilder("统计表1", "出库明细")
Dim dt1 As fxDataSource
bd1.Groups.AddDef("型号")\'根据型号分组
bd1.Groups.AddDef("品牌")\'根据型号分组
bd1.Groups.AddDef("出库商场")\'根据型号分组
bd1.Groups.AddDef("单价")\'根据型号分组
\'bd1.Groups.AddDef("备注")\'根据型号分组
bd1.Totals.AddDef("数量", "入库_数量")\'对数量进行统计
bd1.Totals.AddDef("单价", "入库_金额")\'对金额进行统计
bd1.Filter = Filter
bd1.SubtotalLevel = 1
dt1 = bd1.BuildDataSource()

Dim bd2 As New SqlGroupTableBuilder("统计表2", "退货明细")
Dim dt2 As fxDataSource
bd2.Groups.AddDef("型号")\'根据型号分组
bd2.Totals.AddDef("数量", "退货_数量")\'对数量进行统计
bd2.Totals.AddDef("单价", "退货_金额")\'对金额进行统计
bd2.Filter = Filter1
dt2 = bd2.BuildDataSource()

Dim bd3 As New SqlGroupTableBuilder("统计表3", "销售资料")
Dim dt3 As fxDataSource
bd3.Groups.AddDef("销售型号")\'根据型号分组
bd3.Totals.AddDef("数量", "销售_数量")\'对数量进行统计
bd3.Totals.AddDef("销售单价", "销售_金额")\'对金额进行统计
bd3.Filter = Filter3
dt3 = bd3.BuildDataSource()

Dim bd4 As New SqlGroupTableBuilder("统计表4", "出库明细")
Dim dt4 As fxDataSource
bd4.Groups.AddDef("型号")\'根据型号分组
bd4.Totals.AddDef("数量", "出货期初_数量")\'对数量进行统计
bd4.Totals.AddDef("单价", "出货期初_单价")\'对金额进行统计
bd4.Filter = Filter4
dt4 = bd4.BuildDataSource()

Dim bd5 As New SqlGroupTableBuilder("统计表5", "退货明细")
Dim dt5 As fxDataSource
bd5.Groups.AddDef("型号")\'根据型号分组
bd5.Totals.AddDef("数量", "退货期初_数量")\'对数量进行统计
bd5.Totals.AddDef("单价", "退货期初_单价")\'对金额进行统计
bd5.Filter = Filter5
dt5 = bd5.BuildDataSource()

Dim bd6 As New SqlGroupTableBuilder("统计表6", "销售资料")
Dim dt6 As fxDataSource
bd6.Groups.AddDef("销售型号")\'根据型号分组
bd6.Totals.AddDef("数量", "销售期初_数量")\'对数量进行统计
bd6.Totals.AddDef("销售单价", "销售期初_销售单价")\'对金额进行统计
bd6.Filter = Filter6
dt6 = bd6.BuildDataSource()

dt1.Combine("型号", dt2, "型号")\'将销售统计数据组合到出货统计数据
dt1.Combine("型号", dt3, "销售型号")
dt1.Combine("型号", dt4, "型号")
dt1.Combine("型号", dt5, "型号")
dt1.Combine("型号", dt6, "销售型号")

Tables("统计查询_Table1").DataSource = dt1 \'将统计结果绑定到Table
With DataTables("统计查询_Table1").DataCols \'用表达式列计算库存数据
    .Add("期初_数量", GetType(Integer), "IsNull([出货期初_数量], 0) - IsNull([销售期初_数量], 0) - IsNull([退货期初_数量], 0)")
    .Add("期初_金额", GetType(Double), "IsNull([出货期初_数量], 0) * IsNull([单价], 0)")
    .Add("库存_数量", GetType(Integer), "IsNull([期初_数量], 0) + IsNull([入库_数量], 0) - IsNull([退货_数量], 0)-IsNull([销售_数量], 0)")
    .Add("库存_金额", GetType(Double), "IsNull([库存_数量], 0) * IsNull([单价], 0)")

End With

Dim g As SubtotalGroup \'定义一个新的分组
    g = New SubtotalGroup
    g.GroupOn = "出库商场" \'分组列为客户
    g.TotalOn = "期初_数量,期初_金额,入库_数量,入库_金额,退货_数量,退货_金额,销售_数量,销售_金额,库存_数量,库存_金额" \'对数量和金额进行统计
    g = New SubtotalGroup
    g.GroupOn = "*" \'分组列为客户
    g.TotalOn = "期初_数量,期初_金额,入库_数量,入库_金额,退货_数量,退货_金额,销售_数量,销售_金额,库存_数量,库存_金额" \'对数量和金额进行统计
With Tables("统计查询_Table1")
     .SubtotalGroups.Clear() \'清除原有的分组
     .SubtotalGroups.Add(g) \'加入刚刚定义的分组
     .Subtotal() \'生成汇总模式
End With
\'Tables("统计查询_Table1").Cols("备注").Move(20)
Tables("统计查询_Table1").Cols("期初_数量").Move(4)
Tables("统计查询_Table1").Cols("期初_金额").Move(5)
Tables("统计查询_Table1").cols("型号").width = 120
Tables("统计查询_Table1").cols("出库商场").width = 150
Tables("统计查询_Table1").cols("入库_数量").width = 40
Tables("统计查询_Table1").cols("退货_数量").width = 40
Tables("统计查询_Table1").cols("销售_数量").width = 40
Tables("统计查询_Table1").Cols("出货期初_数量").Visible = False
Tables("统计查询_Table1").Cols("出货期初_单价").Visible = False
Tables("统计查询_Table1").Cols("退货期初_数量").Visible = False
Tables("统计查询_Table1").Cols("退货期初_单价").Visible = False
Tables("统计查询_Table1").Cols("销售期初_数量").Visible = False
Tables("统计查询_Table1").Cols("销售期初_销售单价").Visible = False
Tables("统计查询_Table1").ExtendLastCol = True

 

 

查询和统计用法不一样吗,,查询按钮会模糊查找,,统计里面就没有效果,麻烦老师给指点一下


图片点击可在新窗口打开查看此主题相关图片如下:1715820915504.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1715820948536.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1715820984464.png
图片点击可在新窗口打开查看

--  作者:wlj88868
--  发布时间:2024/5/16 9:15:00
--  

老师问题找到了,,用的SQL查询,,*号改%号就可以了