我是用ACCESS做数据库的!里面有26个数据表!我要实现一个查询要访问那个26个表的!我的代码是这样的:
if radiobutton2.Checked = true then
      begin
      child:=tform12.create(application);
      child.Caption:='查询';
      child.DBGrid1.Hide;
      child.DBCtrlGrid1.Show;
      child.DBCtrlGrid1.DataSource :=form1.DataSource1;
      child.DBGrid1.DataSource :=form1.DataSource1;
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.add('select * from adcomic,bdcomic,cdcomic,ddcomic,edcomic,'+
      'fdcomic,gdcomic,hdcomic,idcomic,jdcomic,kdcomic,ldcomic,mdcomic,ndcomic,'+
      'odcomic,pdcomic,qdcomic,rdcomic,sdcomic,tdcomic,udcomic,vdcomic,wdcomic,'+
      'xdcomic,ydcomic,zdcomic where 片名 like :name');
      edit3.text:='%'+edit3.text+'%';
      adoquery1.Parameters.ParamByName('name').value := edit3.Text;
      adoquery1.Open;
      end;但我输入要查询的内容点查询就出现"定义了过多字段"的错误框出来!请问为什么!可以帮我解决一下吗?

解决方案 »

  1.   

    看不太懂,先在access中新建一个查询试试
    如select * from 表1,表2,...,表n
      

  2.   

    应该用Union进行联合查询,如果你的表字段超出40列,则40*26=1040>1024,就将出现“定义了过多字段”。
      

  3.   

    > 不要 select *, 从26表取所有的列, 这个逻辑不太对劲
    > 26个数据表 表结构是否相同?  
      你应该想要的是    select * from adcomic
      union all
      select * from bdcomic
      union all
      select * from cdcomic
      .....