我有2个窗体,每个窗体对应一个数据表,两个数据表有一个相同字段“整机编码”,我想在一个窗体上用扫描枪输入一个整机编码,这个编码同时出现在另一个窗体上。请教各位该如何做,谢谢。

解决方案 »

  1.   

    首先你要能够访问另一个窗体的实例,比如form2,它必须存在且能访问,那样你就直接给form2.edit1.text赋值就行了
      

  2.   

    Form2:=TForm2.Create(Self);
    form2.DBEdit2.Text:=form1.DBEdit1.Text;运行之后,在form1.DBEdit1输入,form2.DBEdit2是空白,没反应。
      

  3.   

    DBEdit
    在数据集处于编辑或新增状态下才可以输入或修改
    用普通的Edit就可以!
      

  4.   

    普通Edit我不知道怎么跟datasourse连接,所以我用的DBEdit。
      

  5.   

    那你可以先把那个对应的
    DataSet.Edit或者DataSet.Insert
      

  6.   

    我的DataSet用的table,所以2个数据表对应2个table 
    我在unit1用table1.Edit可以
    table2.Edit就不可以
      

  7.   

    我现在输入已经可以对应了,但新的问题是,我在form1上单击dbnavigator的增加记录,怎样使form2的table2也增加一行。谢谢。
      

  8.   

    为什么我在dbedit1的onchange写入语句,就会报错,说有非法访问;把语句改写在onclick,我需要的功能都能实现,请问这是为什么啊?
      

  9.   

    FORM2  ONshow事件 var a,b
    begin
    if adoquery1.RecordCount<form1.adoquey1.RecordCount then          //如果你两个表的数据个数时相同的。。这个就可以用。判断FORM2中表的数据条数。。是否小于。。FORM1中的条数。如果小于。执行下面的
      begin
      adoquery1.append;
      adoquery1.fieldbyname('整机编码').asstring:=dbedit1.text;  //dbedit1也可以用edit代替的
      adoquery1.post;
      end;
    end;
      

  10.   

    onchange事件在DataSet记录滚动时会自动触发
    可能你要执行操作的时候DataSet的状态已经改变了!
      

  11.   


    你可以试试吧DBedit改成用Edit
      

  12.   

    非常感谢lengyuehui(酣酣) ,结帖了。