主表ord_m,从表ord_d.两query qryord_m,qryord_d.
关连字段id
//qryord_mid.change
procedure Tfrmclient.qryord_midChange(Sender: TField);
begin
qryord_d.First;
while not qryord.Eof do
begin
if qryord_d.State=dsbrowse then
qryord_d.Edit;
qryord_did.Value:=qryord_mid.Value;
qryord_d.Next;
end;
end;
//增加按钮
procedure Tfrmclient.addClick(Sender: TObject);
begin
qryord_d.Close;
qryord_m.Close;
再打开qryord_m
qryord_m.Insert;
end;
错误提示:
ord_did不能空NULL,需要给一个值,我不是已经赋给它了吗,怎么还会出现这样的错误,我是新手,请朋友们多多指教

解决方案 »

  1.   

    是否qryord_mid该字段中有空值,当循环时就会把NULL值赋给qryord_did字段,由此发生错误.
    请检查下qryord_mid字段.
    字段与字段间赋值最好是出现在有关联的字段,如外键关联.
      

  2.   

    你编辑完也要提交一下呀
    POST
    还有最好定义一个变量,把变量传给它
      

  3.   

    qryord_did.Value:=qryord_mid.Value;//不对
      

  4.   

    ord_m和ord_d以ID一对多相关联,请问我要想使主表的关键字值值自动赋给明细表时,在什么时候赋,不是在datafield.onchange时赋值吗?为什么这样做不行,继续求助,多谢以上朋友帮忙。