以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  老师帮忙看看  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99334)

--  作者:hebxtshhyj
--  发布时间:2017/4/17 16:03:00
--  老师帮忙看看
问题1:要筛选的条件我在表组合后再执行(下面紫色字体文字),是不是可行?帮助案例上是每一个查询表都要设置条件的。
问题2:如果每一个查询表都设置条件,是不是都必需相同,否则无法组合?
问题3:运行提示错误:日期的语法错误 在查询表达式 \'客户名称 = \'\' and 日期 BETWEEN ## and  ##\' 中。

Dim khmc As WinForm.ComboBox = e.Form.Controls("客户名称")
Dim st As WinForm.DateTimePicker = e.Form.Controls("DateTime客户起始")
Dim et As WinForm.DateTimePicker = e.Form.Controls("DateTime客户终止")

Dim jb1 As New SQLJoinTableBuilder("查询表1","客户信息表")
jb1.C
jb1.AddTable("客户信息表","客户简码","销售单","客户简码")
jb1.AddExp("日期","\'\'")
jb1.AddExp("摘要","\'期初\'")
jb1.AddExp("期初","期初_应收客户款")
jb1.AddExp("应收",0)
jb1.AddExp("收款",0)
jb1.AddExp("余额","期初_应收客户款")
\'
Dim jb2 As New SQLJoinTableBuilder("查询表1","销售单")
jb2.C
jb2.AddTable("销售单","客户简码","客户信息表","客户简码")
jb2.AddExp("日期","出库日期")
jb2.AddCols("摘要")
jb2.AddExp("期初",0)
jb2.AddExp("应收","iif(销售金额 Is null,0,销售金额) + iif(开票金额 * 税点 Is null,0,开票金额*税点)+ iif(其他应收 Is null,0,其他应收) + iif(代垫费用 Is null,0,代垫费用) ")
jb2.AddExp("收款",0)
jb2.AddExp("余额",0)\'

Dim jb3 As New SQLJoinTableBuilder("查询表1","收款单")
jb3.C
jb3.AddTable("收款单","客户简码","客户信息表","客户简码")
jb3.AddExp("日期","收款日期")
jb3.AddCols("摘要")
jb3.AddExp("期初",0)
jb3.AddExp("应收",0)
jb3.AddExp("收款","收款金额")
jb3.AddExp("余额",0)

jb1.Union(jb2)
jb1.Union(jb3)
jb1.Filter="客户名称 = \'" & khmc.Value & "\' and 日期 BETWEEN #" & st.Value & "# and  #" &  et.Value & "#"
Tables("查询_tbl客户查询").DataSource  = jb1.BuildDataSource

--  作者:有点色
--  发布时间:2017/4/17 16:31:00
--  

Dim khmc As WinForm.ComboBox = e.Form.Controls("客户名称")
Dim st As WinForm.DateTimePicker = e.Form.Controls("DateTime客户起始")
Dim et As WinForm.DateTimePicker = e.Form.Controls("DateTime客户终止")
\'
Dim jb1 As New SQLJoinTableBuilder("查询表1","销售单")
jb1.AddTable("销售单","客户简码","客户信息表","客户简码")
jb1.AddExp("日期","出库日期")
jb1.AddExp("摘要","\'期初\'")
jb1.AddExp("期初","期初_应收客户款")
jb1.AddExp("应收","iif(销售金额 Is null,0,销售金额) + iif(开票金额 * 税点 Is null,0,开票金额*税点)+ iif(其他应收 Is null,0,其他应收) + iif(代垫费用 Is null,0,代垫费用) ")
jb1.AddExp("收款",0)
jb1.AddExp("余额","期初_应收客户款")
jb1.Filter="客户名称 = \'" & khmc.Value & "\' and 日期 BETWEEN #" & st.Value & "# and  #" &  et.Value & "#"

Dim jb3 As New SQLJoinTableBuilder("查询表1","收款单")
jb3.AddTable("收款单","客户简码","客户信息表","客户简码")
jb3.AddExp("日期","收款日期")
jb3.AddCols("摘要")
jb3.AddExp("期初",0)
jb3.AddExp("应收",0)
jb3.AddExp("收款","收款金额")
jb3.AddExp("余额",0)
jb3.Filter="客户名称 = \'" & khmc.Value & "\' and 日期 BETWEEN #" & st.Value & "# and  #" &  et.Value & "#"

jb1.Union(jb3)

Tables("查询_tbl客户查询").DataSource  = jb1.BuildDataSource


--  作者:有点色
--  发布时间:2017/4/17 16:32:00
--  

 

 如果不行,请上传项目测试。


--  作者:hebxtshhyj
--  发布时间:2017/4/17 16:40:00
--  
问题1:要筛选的条件我在表组合后再执行(下面紫色字体文字),是不是可行?帮助案例上是每一个查询表都要设置条件的。
问题2:如果每一个查询表都设置条件,是不是都必需相同,否则无法组合?
问题3:运行提示错误:日期的语法错误 在查询表达式 \'客户名称 = \'\' and 日期 BETWEEN ## and  ##\' 中。

问题1:必需每个查询表设条件。
问题3:?   变的是什么地方?

--  作者:有点色
--  发布时间:2017/4/17 17:01:00
--  

 1、必须为每一个设置条件;如果没不设置,那就只能在build之后,直接设置 Tables("").Filter

 

 3、你的窗口日期控件没有赋值把?如果没有赋值合成的条件就可能有问题。


--  作者:hebxtshhyj
--  发布时间:2017/4/17 17:07:00
--  
可以肯定就是这个日期条件出错。
窗口控件赋值后出现提示:至少一个参数没有被指定值。


--  作者:有点色
--  发布时间:2017/4/17 17:15:00
--  

改成

 

jb1.Filter="客户名称 = \'" & khmc.Value & "\' and 出库日期 BETWEEN #" & st.Value & "# and  #" &  et.Value & "#"

 

--------------

 

jb3.Filter="客户名称 = \'" & khmc.Value & "\' and 收款日期 BETWEEN #" & st.Value & "# and  #" &  et.Value & "#"


--  作者:hebxtshhyj
--  发布时间:2017/4/17 17:39:00
--  
恩,搞定了。需要用源表的列名。