vb SQL多表联合查询问题(Access数据库表)

我这儿有一数据库sjk.mdb,有5张表分别为a表,b表,c表,d表,e表,结构完全一样,都有字段:编号,地址,名称,其它.
我是用access连接数据库,用DataGrid1 显示.
我要查找的是"名称"字段,查询条件在Text1指定.
请问怎样才能像单张表一样把这5张表中符合条件的都找出来显示在DataGrid1中
我用如下语句,出错,提示:JOIN 操作语法错误
Adodc1.RecordSource = "select * from (((a表 inner join b表 on a表.名称=b表.名称) inner join c表 on a表.名称=c表.名称) inner join d表 on a表.名称=d表.名称 ) inner join e表 on a表.名称=e表.名称 '" + " where 名称 Like " & "'" & text1.text & "'"

请问错在哪儿?该如何写这句代码?
2010-08-29 17:33
badkano你好
Adodc1.RecordSource = "select new_table.编号,new_table.地址,new_table.名称,new_table.其它 from (select * from a union all select * from b union all select * from c union all select * from d union all select * from e) as new_table 名称 Like " & "'" & text1.text & "'"
还是显示 from 子句语法错误 不知道错在哪儿

Adodc1.RecordSource = "select new_table.编号,new_table.地址,new_table.名称,new_table.其它 from
(select * from a union all
select * from b union all
select * from c union all
select * from d union all
select * from e) as new_table
名称 Like " & "'" & text1.text & "'"

----补充---

new_table不是新建的表,只是给那括号里的查询起一个别名
要不可以改成
Adodc1.RecordSource = "select new_table.编号,new_table.地址,new_table.名称,new_table.其它 from
(select * from a union all
select * from b union all
select * from c union all
select * from d union all
select * from e) as new_table where
名称 Like " & "'" & text1.text & "'"

---补充---

少写了个where
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-28
联合查询不是你那么用的,联合查询是用于字段的联合,也就是会横向扩展表。
例如A表中会有人物id,姓名,年龄等,而b表中会有每个人每次考试的成绩,也就是成绩id,成绩分数,人物id。
这时如果要查询什么人(姓名)得了多少分,就需要用联合查询了。也就是将成绩表横向扩展出一栏姓名出来。
你这种情况应该把数据放在一个表里比较好点。

如果实在不希望改数据库,那么有这么两种办法:
1.子查询:就像badkano 回答的。不过那个new_table 名称要你自己改的。不能原样不动。这个表你自己根据那几个表的结构建,你不是说那几个表完全一样吗。
2.在程序代码中用循环语句分几次查询,最后把查询结果合到一块。
3.用语句建立一个临时表,将那些表的内容都查询到临时表里面。
第2个回答  2010-08-29
Adodc1.RecordSource = "select new_table.* from (select * from a union all select * from b union all select * from c union all select * from d union all select * from e) as new_table 名称 Like " & "'" & Text1.Text & "'"
显示 from 子语句语法错误

这个你as new_table () 名称 Like括号的地方没有where
相似回答