我想用“增加”按纽增加一条数据,如果“姓名”字段为空的话,
系统提示“不能为空”
要求重新输入。
但是我下面的代码执行一次可以,但第二次就报错了。为什么???begin
adotable1.Append;
adotable1.FieldByName('k2').asstring:=edit1.Text;
adotable1.FieldByName('k3').asstring:=edit2.Text;
adotable1.FieldByName('k4').asstring:=edit3.Text;
adotable1.FieldByName('k5').asstring:=edit4.Text;
adotable1.FieldByName('k6').asstring:=edit5.Text ;if edit1.text<>'' then
showmessage('姓名不能为空!')
else
adotable1.Post;
edit1.Text:='';
edit2.Text:='';
edit3.text:='';
edit4.Text:='';
edit5.text:='';
end;

解决方案 »

  1.   

    本身逻辑就是错误,你应该在append之前就测试是否为空值;F8跟踪你就能发现问题了。append了两次
      

  2.   

    begin
    if edit1.text='' then
    showmessage('姓名不能为空!')
    else
    adotable1.Append;
    adotable1.FieldByName('k2').asstring:=edit1.Text;
    adotable1.FieldByName('k3').asstring:=edit2.Text;
    adotable1.FieldByName('k4').asstring:=edit3.Text;
    adotable1.FieldByName('k5').asstring:=edit4.Text;
    adotable1.FieldByName('k6').asstring:=edit5.Text ;
    adotable1.Post;
    edit1.Text:='';
    edit2.Text:='';
    edit3.text:='';
    edit4.Text:='';
    edit5.text:='';
    end;这样还是不行啊求你们了,很急的????
      

  3.   

    begin
    if edit1.text='' then
    showmessage('姓名不能为空!')
    else 
      Begin
        adotable1.Append;
        adotable1.FieldByName('k2').asstring:=edit1.Text;
        adotable1.FieldByName('k3').asstring:=edit2.Text;
        adotable1.FieldByName('k4').asstring:=edit3.Text;
        .......
        .......
      END;
      

  4.   

    你把append方法放置在showmessage后试试看!
      

  5.   

    你第一次的错误是把
    if edit1.text='' then
    showmessage('姓名不能为空!')
    放到了数据更新的后面,所以不对你第2次的错误是提前结束了个else的过程
    你用ZbDerek(虚竹的办法就可以了
    不过我一直习惯用begin
    if edit1.text='' then
    begin showmessage('姓名不能为空!');exit;end;    adotable1.Append;
        adotable1.FieldByName('k2').asstring:=edit1.Text;
        adotable1.FieldByName('k3').asstring:=edit2.Text;
        adotable1.FieldByName('k4').asstring:=edit3.Text;
        .......
        .......
      

  6.   

    补充一下
    其实你用adotable1[‘k2']:=edit1.Text;
    adotable1['k3']:=edit2.Text;
    这样赋值就可以的