我写在procedure TF_lr.BitBtn1Click(Sender: TObject);
     end.

解决方案 »

  1.   

    要实现的功能是:录入数据,而我的只是到rkrq.text时不行了
      

  2.   

    你自己看看你是不是把rkrq文本框绑定到数据表中的某个字段了...
      

  3.   

    你的流程的问题,即使你不输入数据也一样写进去。
     if  E_spbh.Text  <>''  then  
       begin  
           with  ad_lr  do  
           begin  
           close;  
           sql.clear;  
           sql.Add('select  max(spbh)  from  kcb');  
           open;  
           end;  
           if  AD_lr.Fields[0].AsInteger  <>  0  then  
           begin  
           spbh1:=AD_lr.fields[0].asinteger;  
           spbh1:=spbh1+1  ;  
           end  
           else  
           spbh1:=1;  
    ///////////到这以后已经不受你控制了
      

  4.   

    if  E_spbh.Text  <>''  then  
       begin  
           with  ad_lr  do  
           begin  
           close;  
           sql.clear;  
           sql.Add('select  max(spbh)  from  kcb');  
           open;  
           end;  
           if  AD_lr.Fields[0].AsInteger  <>  0  then  
           begin  
           spbh1:=AD_lr.fields[0].asinteger;  
           spbh1:=spbh1+1  ;  
           end  
           else  
           spbh1:=1;  
    //////////////这里以后已经不受你控制了,流程问题
      

  5.   

    你先用delphi中的代码跟踪器调试一下,再在open 前加入Query1.ExecSQL;(如果你是用query联数据库的话)
      

  6.   

    showmessage('数据已录入');  就是说录入成功了咯,,,,,
    整理格式一下,好象没什么问题啊???
           
    var
            spbh1 : integer;
    begin
            if E_spbh.Text <> '' then
            begin
                    with ad_lr do
                    begin
                            close;
                            sql.clear;
                            sql.Add('select  max(spbh)  from  kcb');
                            open;
                    end;
                    if AD_lr.Fields[0].AsInteger <> 0 then
                    begin
                            spbh1:= AD_lr.fields[0].asinteger;
                            spbh1:= spbh1 + 1;
                    end
                    else
                            spbh1:= 1;
                    AD_lr.Close;
                    AD_lr.SQL.Clear;
                    AD_lr.sql.add('insert  into  kcb(spbh,spmc,spxh,spdj,spsl,rkrq,shr,bz)values(:spbh,:spmc,:spxh,:spdj,:spsl,:rkrq,:shr,:bz)');
                    AD_lr.Parameters.ParamByName('spbh').value:= (spbh1);
                    AD_lr.Parameters.ParamByName('spmc').value:= trim(E_spmc.Text);
                    AD_lr.Parameters.ParamByName('spxh').value:= trim(E_spxh.text);
                    AD_lr.Parameters.ParamByName('spdj').value:= trim(E_spdj.text);
                    AD_lr.Parameters.ParamByName('spsl').value:= trim(E_spsl.text);
                    AD_lr.Parameters.ParamByName('rkrq').value:= trim(E_rkrq.text);
                    AD_lr.Parameters.ParamByName('shr').value:= trim(E_shr.text);
                    AD_lr.Parameters.ParamByName('bz').value:= trim(E_bz.text);
                    AD_lr.ExecSQL;
                    showmessage('数据已录入');
            end
            else
                    showmessage('数据不全');        with AD_lr do
            begin
                    close;
                    AD_lr.sql.Clear;
                    AD_lr.sql.Add('select  *  from  kcb');
                    open;
            end;
            E_spbh.Text:= '';
            E_spmc.Text:= '';
            E_spxh.Text:= '';
            E_spdj.Text:= '';
            E_spsl.Text:= '';
            E_rkrq.Text:= '';
            E_shr.Text:= '';
            E_bz.Text:= '';
    end;
      

  7.   

    AD_lr.Close;
                    AD_lr.SQL.Clear;
                    AD_lr.sql.add('insert  into  kcb(spbh,spmc,spxh,spdj,spsl,rkrq,shr,bz)values(:spbh,:spmc,:spxh,:spdj,:spsl,:rkrq,:shr,:bz)');
                    AD_lr.Parameters.ParamByName('spbh').value:= (spbh1);///?
                    AD_lr.Parameters.ParamByName('spmc').value:= trim(E_spmc.Text);//?
                    AD_lr.Parameters.ParamByName('spxh').value:= trim(E_spxh.text);//?
                    AD_lr.Parameters.ParamByName('spdj').value:= trim(E_spdj.text);///?
                    AD_lr.Parameters.ParamByName('spsl').value:= trim(E_spsl.text);//?
                    AD_lr.Parameters.ParamByName('rkrq').value:= trim(E_rkrq.text);//?
                    AD_lr.Parameters.ParamByName('shr').value:= trim(E_shr.text);//?
                    AD_lr.Parameters.ParamByName('bz').value:= trim(E_bz.text);//?
                    AD_lr.ExecSQL;
                    showmessage('数据已录入');
     即使你这些东西不输入,程序一样往下走,显示数据已经录入!!!