纠正一下
1、Select语句只能查询后台数据,所以下面的语句一般都会出错:
Select 父料编号,子料编号,物料名称 from {" & tables(窗口名_table1).DataTable.name & "}"
2、如果数据不是来自单一的表,那么不能作为SQLQuery,使用Fill的时候,必须将第三个参数设置为True
3、Union All组合两个查询结果时,前后两个查询返回的表结构一直,显然你一个查询是三列(父料编号,子料编号,物料名称),一个是两列(子料编号,物料名称)
4、还有:
& “Select 子料编号,物料名称 from (Select [_Identify],物料编号 As 子料编号,物料名称,库存单位 As 单位 from {物料编号表} where 物料编号 In (" & 一级子料 & ")",pubssys2,False)"
后面的pubssys2,False是什么意思,你在写Select语句,不是在Fill.
5、建议你先不要写代码,先直接在SQL执行窗口调试好SQL语句,得到正确的SQL语句再编写代码合成,这样有参照。
6、你可以用MessageBox.show显示一下自己合并生成的Select语句,看看合成是什么东东,是否正确:
在MessaageBox显示的对话框中,按"Ctrl+C"键,可以复制其显示的内容:

这在动态合成一些复杂的SQL语句或表达式时的时候很实用,例如我们可以从MessageBox中复制合成好的SQL语句,粘贴到SQL执行窗口进行执行调试,找出此SQL语句的问题后,再回头调整代码。
[此贴子已经被作者于2014-3-17 10:47:44编辑过]