假高表M,字段MNO,MNAME
    表P,字段PNO,MNO,
现在用ADO,COMMANDTEXT为 select pno,p.mno,mname from p,m where p.mno=m.mno,即想用ADO编辑P表,录入MNO的时候,调用M中的MNAME,现在有两个方面的困难:1.ADO添加一行数据的时候,P表和M表同时都会增加一行数据(M表会报空数据错误)2.录入MNO时,不能立即调到MNAME的值.请各位交流一下,大家经常怎么处理这种问题(经常应该用到的).我知道用查询字段,即AOD的COMMANDTEXT为select pno,mno from p,再将mname用查询字段可达到目的,但我不想那样做,原因有二,1。如果我要调用M表中的多个字段,显得很麻烦 2.如果M表数据很大,需同时打开另一个M表的数据集,速度会比用第一种方式慢很多

解决方案 »

  1.   

    TO:ghy412(用心良苦) 
    我也是分别修改表啊,例如M表是物料表,P表是采购单的明细表,我想在输入采购明细时调物物料表中的品名等字段,并用批量修改,一录入物料编码时,马上调出品名规格等,怎么样用ADO实现呢?
      

  2.   

    用View吧,试试你就会感觉省了不少事
    当然不是每个View都可以更新的,不过你可以试试
      

  3.   

    老兄错矣,我说用查找字段慢,是因为打开表单的时候,需要同时打开主数据集P和查找的数据集M,如果M数据大的话,打开速度比较慢,相对而言,用一句联接就快得多;
    to  Cipherliu(孤鹰) :用VIEW还是不行,一则删除的时候,会同时删除两个表;二则录入关键字段的时候,对应M表的值跳不出来
      

  4.   

    用SQL语句连接两个表的数据(如A、B表),用ADOQuery取出数据,如果要只更新、删除A表的数据。
    要在ADOQuery的AfterOpen事件中加入如下代码:
      ADOQuery.Recordset.Properties['Unique Table'].Value:='A'
      

  5.   

    非常谢谢大家,yujohny(踏网无痕) 的管用,可还是有一点解决:即录入P表中的关键字段时,不会自动调出M表的数据,必须更新后才可以,而我希望批量保存后再更新。例如,录入采购订单明细表的物料编时,我希望马上调出物料表的品名规格(在批量保存更新之前,如果每录入一款都保存岂不麻烦得要死?)。
    同时谢谢Delphi1985(ok) ,不过我觉得我的话够明白了!