procedure TDept_Form.BitBtn4Click(Sender: TObject);
  var
  TargetValue:String;
  Str:String;
begin
  TargetValue:=Dept_Form.DBGrid1.Columns[0].Field.AsString;
  Dept_Form.ADOQuery1.Close;
  Dept_Form.ADOQuery1.SQL.Clear;
  Str:='update Dept set DeptName = '''+DeptName.Text+''',DeptCode = '''+DeptCode.Text+''' where ID='+TargetValue;
  Dept_Form.ADOQuery1.SQL.Add(Str);
  Dept_Form.ADOQuery1.ExecSQL;
end;不知道为什么出错

解决方案 »

  1.   

    TargetValue:=Dept_Form.DBGrid1.Columns[0].Field.AsString;
    这样好像无法获得数据吧?你只告诉它第一例 并没有告诉它第几行?
      

  2.   

    var
      TargetValue:String;
    begin
    TargetValue:=Dept_Form.DBGrid1.Columns[0].Field.AsString;
    Dept_Form.ADOQuery1.Close;
    Dept_Form.ADOQuery1.SQL.Clear;
    Dept_Form.ADOQuery1.SQL.Add(' update Dept set DeptName='+''''+
    DeptName.text+''''+',DeptCode='+''''+DeptCode.text+''''+' Where ID='+''''+TargetValue+'''');
    Dept_Form.ADOQuery1.ExecSQL;
    end;
      

  3.   

    先把sql语句在查询分析器里执行一下,没有错误后再加入代码里面
      

  4.   

    你这段SQL有问题,标点问题.如果不懂可以跟踪看看.
      

  5.   

    我都看了,吧sql语句显示出来了
    可是在Access执行的时候正确
    在代码里面有问题,不知道什么原因
      

  6.   

    TargetValue:=Dept_Form.DBGrid1.Columns[0].Field.AsString等于TargetValue:=Dept_Form.DBGrid1.Columns.Field[0].AsString;吗?
      

  7.   

    Str:='update Dept set DeptName = '''+DeptName.Text+''',DeptCode '
    +'= '''+DeptCode.Text+''' where ID='+TargetValue+'';
    如果折行要用加号连接