百分求助,将另一表部分内容显示在本表对应框(100分)

  • 主题发起人 主题发起人 明月冰心
  • 开始时间 开始时间

明月冰心

Unregistered / Unconfirmed
GUEST, unregistred user!
我是做做程序新手,谢谢大家啊!
我在做程序时,遇到一个问题:

现有两个表:


表一:部件表
部件名称 零件编号 零件代号     零件名称 台量 单价 合计
GCB 2 8TDK.100.114 下支座 2
GCB 1 8TDK.017.102 顶盖 1
ES 4 8TDK.365.112 屏蔽罩 3
ES 2 8TDK.100.114 下支座 3
EL 2 8TDK.100.114 下支座 2
EL 3 8TDK.365.102 顶盖 1

表二:零件价格表
零件编号 零件代号     零件名称 单价
1 8TDK.017.102 顶盖 1678.00
2 8TDK.100.114 下支座 400
3 8TDK.365.102 屏蔽罩 10000
4 8TDK.365.112 屏蔽罩 200

表一,表二,零件编号是一一对应的,我想实现的功能是,在表一的 零件编号 输入数据时,“零件代号 ,零件名称,单价”就会自动根据表二的内容显示在表一的相应对话框中。

原来做的时侯,输入框我是用的 EDIT控件,用类似下面的代马还能显示,但现在换成DBEDIT控件,下面的代马运行老是出错,不能运行,不是是为什么,感谢大家给指出!谢谢!

下面是DBEDIT2(零件编号)控件的OnChange事件:

(注:零件编号是int型 台量 int )

procedure TFRM_bujian.DBEdit2Change(Sender: TObject);
begin //通过零件编号,把零件代号、零件名称、单价显示在相对应的编号框组件内

DBEdit3.Clear;
with ADOQuery4 do
begin
Close;
SQL.Clear;
SQL.Add('Select 零件代号 from 零件价格表 where 零件编号='+''''+EDit2.Text+''''); Open;
end;
DBEdit3.Text:=ADOQuery4.FieldByName('零件代号').Value;

Edit4.Clear;
with ADOQuery4 do
begin
Close;
SQL.Clear;
SQL.Add('Select 零件名称 from 零件价格表 where 零件编号='+''''+Edit2.Text+''''); Open;
end;
DBEdit4.DataField:=ADOQuery4.FieldByName('零件名称'). Value;

DBEdit6.Clear;
with ADOQuery4 do
begin
Close;
SQL.Clear;
SQL.Add('Select 单价 from 零件价格表 where 零件编号='+''''+Edit2.Text+''''); Open;
end;
DBEdit6.Text:=ADOQuery4.FieldByName('单价').Value;
DBEdit5.SetFocus;
}
end;
 
建议把代码放到DataSet中的Field的OnValidate事件中,这样在你输入完一个字段的内容后触发相关事件,而不是每输入一个字符都会触发。。。
 
后退
顶部