为什么不在SQL语句里做计算
ADOQuery1.SQL.Text := 'Select 单价,数量,合计=单价*数量
                         From yourtable';
ADOQuery1.Open;如果不在SQL语句作计算,可以这样试试(将修改数据库记录)
ADOQuery1.Edit;
ADOQuery1.FieldByName('合计').value := ADOQuery1.FieldByName('数量').AsInteger*ADOQuery1.FieldByName('单价').AsCurrency;
ADOQuery1.Active := False;
ADOQuery1.Active := True;

解决方案 »

  1.   

    计算字段还未设好,要注意新建的字段的FieldKind是fkCalculated,另外必须运行时才能看到结果
      

  2.   

    to qybao(阿宝) :
       我按你的第一种方法试了,还是不行,合计的值还是为零
       第二种我还没试;
    to  fs_windy(飛龍) :
       我的计算字段应该没问题,而且我也是在运行时查看结果的
      

  3.   

    to qybao(阿宝) :
       第二中方法我也试了,还是不行,是不是有什么别的原因?
    大家在表中计算合值时如何使的,用什么东西?
    我都快一个下午了,没能出来。
      

  4.   

    原来是这样:
    ADOQuery1.SQL.Text := 'Select 单价,数量,合计=单价*数量
    ---->>>>
    ADOQuery1.SQL.Text := 'Select 单价,数量,单价*数量
    呵呵,真是的
    我用的是Access2000
      

  5.   

    计算字段是在FieldEditor里面加的并在OnCalcField事件中进行赋值。
      

  6.   

    johnsonrao(johnson) 说的对!
    在OnCalcField事件中计算字段名.values:=ADOQuery1.field('单价').AsCurrency*ADOQuery1.field('数量').asinteger;
    你试试看!
      

  7.   

    -----------------------------------------------------------
    原来是这样:
    ADOQuery1.SQL.Text := 'Select 单价,数量,合计=单价*数量
    ---->>>>
    ADOQuery1.SQL.Text := 'Select 单价,数量,单价*数量
    呵呵,真是的
    我用的是Access2000
    -----------------------------------------------------------上面SQL.Text写错了,改为如下:
    ADOQuery1.SQL.Text := 'Select 单价,数量 From 你的表'而右键单击ADOQuery1添加一个计算字段问题就OK啦