在table表新插入的记录中,显示其他table的字段值。(200分)

  • 主题发起人 主题发起人 worldmen
  • 开始时间 开始时间
W

worldmen

Unregistered / Unconfirmed
GUEST, unregistred user!
在table表新插入的记录中,显示其他table的字段值。
table1: bh,mc;table2:bh,mc,sl
当直接输入的table1.bh.value等于table2.bh.value时,
table1.mc.value显示table2.mc.value,然后可以直接
修改table1.mc。

 
有一点奇怪,两个表的纪录不一样,你想用那一个表的纪录?这样不会乱吗?
如果非要这样,可不可以这样:
把两个表和为一个,在table2中增加一个字段mcNew,把table2.mc.value作为table2.mcNew.value的默认值,

with Query do
begin
...
SQL.add('select * from tableName.db where bh=:parambh ');
ParamByName('parambh'):=bh;
open;
edit;
FieldByName(mcNew).value:=FieldByName(mc).value;
pose;
edit;
...
end;
 
我的意思是:
在dbgrid(table1)中新插入一个记录,直接在关键
字段(bh)输入字段值,当字段值等于另外一个
table2的(bh)的字段值时,table1的mc从table2的mc取值,
然后可以在dbgrid(table1)中直接修改table1的mc的值。
 
select table1.bh,table1.mc,table2.sl
from table1,table2
where table1.bh=table2.bh
 
要求在table中实现
 
use:
function FindKey(const KeyValues: array of const): Boolean;
function Locate(const KeyFields: string; const KeyValues: Variant;
Options: TLocateOptions): Boolean;
function GotoKey: Boolean;
先查找,再赋值,保存。

 
老兄:
试试DBLookupComboBox
 
>>wumeng:
请帮忙写出源代码。
 
在table1中mc字段应设为LookUp字段,
KeyFields等于bh
LookupDataset等于Tabel2
LookupKeyField等于bh
LookupResultFIeld等于mc
。。。

 
procedure Tfm_dekwf.Table2clbhChange(Sender: TField);
var
findresultboolean:boolean;
clmcv,dwv:string;
djv,cllbv:double;
begin
if DBGrid2.selectedField.fullName = 'clbh' then
begin
findresultboolean:=table3.findkey([table2clbh]);
if findresultboolean then
begin
table2.edit;
clmcv:=table3clmc.Value;
table2clmc.value:=clmcv;
dwv:=table3dw.value;
table2dw.value:=dwv;
djv:=table3dj.value;
table2dj.value:=djv;
cllbv:=table3cllb.value;
table2cllb.value:=cllbv;
table2.post;
end;
end;
table2.edit;
end;
 
多人接受答案了。
 
后退
顶部