我在数据模块里放置了一个ADOTable1,和DataSource1,他们的关系分别设置好了!让ADOTable1在不同的时候,给它不同的表!可是这样几个程序窗口共用ADOTable1时(虽然给它不同的表!),这样也会出错!如果在每个窗体上放置单独的ADOTable和DataSource就不会出现任何错误!怎么回事?例如:Form1中将ADOTable1.TableName:='table1';Form1中的一个DBEdit1.DataFiled:='s1';
      Form2中将ADOTable1.TableName:='table2';Form2中的一个DBEdit2.DataFiled:='s2';
这样的话,就会出现我如果点击菜单弹出Form1,那么正常!DBEdit1能正常显示我想要的值。这是再弹出Form2(窗体初始化时我已分别赋了新的表名),那么就会提示找不到字段'S2'!反之,先弹出Form2也是这样!怎么回事?当我分别再每个窗体上放置ADOTable和DataSource就不会出错!

解决方案 »

  1.   

    你是不是在Form的Close事件中把table关了,或其他地方把table关了
      

  2.   

    是不是AdoTable没有刷新啊?
    begin
      ADOTable1.Close;
      ADOTable1.TableName:='Table1';
      ADOTable1.Open;
    end;
      

  3.   

    to  huojiehai(海天子) 我觉对没有!因为本来代码就不多!我仔细看过了!
      

  4.   

    TableName改变前table自动关闭,
    改变后面要打开
      

  5.   

    form1:
    begin
      ADOTable1.Close;
      ADOTable1.TableName:='Table1';
      DataSource1.dataset:=ADOTable1;
      ADOTable1.Open;
    end;
    form2:
    begin
      ADOTable1.Close;
      ADOTable1.TableName:='Table2';
      DataSource1.dataset:=ADOTable2;
      ADOTable1.Open;
    end;
    肯定可以的!!
    还有对
      

  6.   

    是你第二次打开Form时把ADOTable1.TableName的名改了Form1中将
      ADOTable1.Close;
      ADOTable1.TableName:='table1';
      ADOTable1.Open;
      Form1中的一个DBEdit1.DataFiled:='s1';
    Form2中将
      ADOTable1.Close;
      ADOTable1.TableName:='table2';
      ADOTable1.Open;
      Form2中的一个DBEdit2.DataFiled:='s2';
      

  7.   

    begin
      ADOTable1.Close;
      ADOTable1.TableName:='Table1';
      ADOTable1.Open;
    end;
    我告诉你,小伙子。。小哥哥爱因斯坦说得。。简单就是美你动态得改变,目的无非是想节省资源。可你这样少用几个TABLE根本节省不了什么资源。。
    动态得东西,用得好 ,有美丽得一面,如果滥用,就是恐龙。。
      

  8.   

    huojiehai(海天子)是对的!主要是在初始化工作时设置DBEdit的DataFiled属性!谢谢各位了!都有分!别嫌少!