Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
代码新建查询表,只有这两列,然后导出这个查询表,具体参看帮助文件这一段:
组合多个查询结果
有的时候,我们会有将多个查询结果组合在一起的需求。
组合同一数据源的查询结果
SQLJoinTableBuilder有一个Union方法,可以组合多个其他SQLJoinTableBuilder的查询结果。
语法:
Union(Builder, All)
Builder:被组合的另一个SQLJoinTableBuilder
All: 可选参数,组合的时候默认是排除重复值的,如果需要组合所有数据,请将此参数设置为True
参与组合的多个SQLJoinTableBuilder,其生成的查询表必须具备相同的结构。
示例
假设你有订单2009、订单2010、订单2011三个表,需要从这三个订单表中找出所有客户为“红阳事业”的订单:
Dim jb1 As New SQLJoinTableBuilder("查询表1","订单2009")
jb1.C
jb1.AddTable("订单","产品ID","产品","产品ID")
jb1.AddTable("订单", "客户ID","客户","客户ID")
jb1.AddCols("产品名称","客户名称","日期", "数量","单价")
jb1.AddExp("金额","数量 * 单价")
jb1.Filter = "客户名称 = '红阳事业'"
Dim jb2 As New SQLJoinTableBuilder("查询表1","订单2010")
jb2.C
jb2.AddTable("订单","产品ID","产品","产品ID")
jb2.AddTable("订单", "客户ID","客户","客户ID")
jb2.AddCols("产品名称","客户名称","日期", "数量","单价")
jb2.AddExp("金额","数量 * 单价")
jb2.Filter = "客户名称 = '红阳事业'"
Dim jb3 As New SQLJoinTableBuilder("查询表1","订单2011")
jb3.C
jb3.AddTable("订单","产品ID","产品","产品ID")
jb3.AddTable("订单", "客户ID","客户","客户ID")
jb3.AddCols("产品名称","客户名称","日期", "数量","单价")
jb3.AddExp("金额","数量 * 单价")
jb3.Filter = "客户名称 = '红阳事业'"
jb1.Union(jb2) '组合jb2
jb1.Union(jb3) '组合jb3
jb1.Build()
MainTable = Tables("查询表1")
狐爸,我在帮助里看不明白。如果是在同一个表里面导出某个字段的数据,我都会了。我要的是在两个不同的表中导出数据到一个excel表格中,这个表excel表中的字段是“客户名称”、“联系人”、“电话”。【“客户名称”字段在狐表的客户管理表中,“联系人”、“电话”字段在狐表的联系人表中。】,不知道明不明白我的意思呢?
明白了,那就生成查询表,再导出。
建议你合成一个表,否则真麻烦。
用Select 语句生成查询表,看看这里头的union运算符:
http://www.foxtable.com/help/topics/0688.htm
我有一个办法,不用生成查询表,只要你在电脑中新建一个EXCEL空表,然后就可以将狐表中的两个表的两列数据全部加到这个空表中去.
假定新建一个空表是表12
Dim Book As New XLS.Book("c:\Data\表12.xls") '打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For ia As Integer = 0 To Tables("表A").Rows.Count-1
Sheet(ia,1).Value = Tables("表A")(ia,0)
Next
For i As Integer = 0 To Tables("表B").Rows.Count-1
Sheet(i,2).Value = Tables("表B")(i,0)
Next
Book.Build() '生成细节区
Book.Save("c:\Data\表12.xls") '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = "c:\Data\表12.xls"
Proc.Start()