以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]为sql临时表声明局部变量(已解决)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=12051)

--  作者:yyzlxc
--  发布时间:2011/8/20 20:51:00
--  [求助]为sql临时表声明局部变量(已解决)

代码出错:当前块中已声明了局部变量“ny”。

代码分三段:

1、判断控件ComboBox1的值是否符合要求。

2、以控件ComboBox1的值为条件,生成临时表sql。

3、根据临时表生成分类汇总表。
要求,将控件ComboBox1的值,为sql临时表声明局部变量。

 

    
        \'判断控件ComboBox1的值是否符合要求

        Dim ny As WinForm.ComboBox
        ny = Forms("数据载入").Controls("ComboBox1")
        If ny.Value Is "请选择年月" Then
            MessageBox.Show("请在右侧窗口选择报表年月","提示")
            Return
        End If

 

        \'以控件ComboBox1的值为条件,生成临时表sql
        Dim ny ,sql As String
        sql = "Select 报表年月,单位,投工类型,投工  FROM {日报源表} WHERE 报表年月= \'" & ny & "\' "

 

        \'根据临时表生成分类汇总表
        Dim b As New CrossTableBuilder("年度汇总",sql,"SCGL")
        b.HGroups.AddDef("单位")
        b.VGroups.AddDef("投工类型")
        b.Totals.AddDef("投工")
        b.HorizontalTotal = True
        b.VerticalTotal = True
        b.Build()
        Tables("当月投工分类").Cols("单位").TextAlign = TextAlignEnum.Center
        Tables("当月投工分类").AutoSizeCols()
        MainTable = Tables("当月投工分类") \'打开生成的统计表

[此贴子已经被作者于2011-8-20 21:48:09编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/8/20 21:36:00
--  

有一些基本的语法错误:

 

Dim sql As String
Dim ny As String = Forms("数据载入").Controls("ComboBox1").Text
If ny = "请选择年月" Then
    MessageBox.Show("请在右侧窗口选择报表年月","提示")
    Return
End If
sql = "Select 报表年月,单位,投工类型,投工  FROM {日报源表} WHERE 报表年月= \'" & ny & "\' "
\'根据临时表生成分类汇总表
Dim b As New CrossTableBuilder("年度汇总",sql,"SCGL")
b.HGroups.AddDef("单位")
b.VGroups.AddDef("投工类型")
b.Totals.AddDef("投工")
b.HorizontalTotal = True
b.VerticalTotal = True
b.Build()
Tables("当月投工分类").Cols("单位").TextAlign = TextAlignEnum.Center
Tables("当月投工分类").AutoSizeCols()
MainTable = Tables("当月投工分类") \'打开生成的统计表


--  作者:yyzlxc
--  发布时间:2011/8/20 21:48:00
--  
谢谢狐爸老师,又一次帮助解决我的难题,给您添麻烦了,再次感谢!!