明细表修改问题(20分)

  • 主题发起人 主题发起人 peng_2002
  • 开始时间 开始时间
P

peng_2002

Unregistered / Unconfirmed
GUEST, unregistred user!
[^]我有两个表,主表叫人事档案表,有一个字段为'员工编号',细表叫人事变动表,
也有一个字段叫‘员工编号’,这两个表都是通过‘员工编号’关取起来的。
现在我想修改主表的人事档案表的‘员工编号’时,细表的人事变动表‘员工编号’
也会跟着一起改变,如这时,主表的‘员工编号’为05,细表‘员工编号’这时也为05,
当我改变主表的’员工编号‘为06时,细表的’员工编号‘自动改变为06,这用的控件是ADOQUERY,两个表的设置为:
adoquery1的sql设置为:select * from dossier
adoquery2的sql高置为:select * from alteration where 员工编号=:员工编号i
不知哪位大侠能回答我的问题?小的将不胜感激
 
在主表中建立一Update的Triger即可:
declare new_no nvarchar(10),old_no nvarchar(10)
if update([员工编号])
begin
select new_no=n.员工编号,old_no=d.员工编号
from deleted d, inserted n where d.员工编号=n.员工编号
update 明细表 set 员工编号=new_no where 员工编号=old_no
end;
 
luoyy2000,很感谢您的回答,但我不想再建立一个ID字段啊。
 
在adoquery1的Beforepost事件中寫:
procedure adoquery1beforepost(dataset:tdataset);
Begin
try
adoquery2.DisableControls;
adoquery2.First;
while not adoquery2.eof do
begin
adoquery2.edit;
adoquery2.FieldByName('員工編號').AsString:=adoquery1.fieldbyname('員工編號').asstring;
adoquery2.Post;
adoquery2.Next;
end;
finally
adoquery2.EnableControls;
end;
end;
 
zxb2000:您好
很谢谢您的回答,但我试过没有用啊!
 
不用可以修改的员工编号来关联,新建一个自增型字段进行关联。
这样修改员工编号将不受影响。
 
wnjer:您好!
您说得很对,但我不想用这种方法啊!有没有别的方法呢?
 
后退
顶部