with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select 月份,left(单位工程WBS编码,4) as 项目WBS编码,sum(对应发包方产值)');
    SQL.Add('from 每月完成产值');
    Open;
  end;我实在是看不出来哪错了?提示:raised exception class EAccessViolation with message 'Access violation at address 1b041fc6 in moudle
'msjet4.0.dll' Read of address 0005243E.

解决方案 »

  1.   

    1.这的语句中有sum,就应该加一个group by的函数吧
    2.把语句截出来是否可以执行。
      

  2.   

    SQL.Add('select   月份,left(单位工程WBS编码,4)   as   项目WBS编码,sum(对应发包方产值)'); 
    SQL.Add(' from   每月完成产值'); //from前面加个空格ADOQuery1 你指定adoconnection了没有?adoconnection是否可以正常访问数据库?
      

  3.   

    To:月亮可以访问数据库,我是直接设置的ADO的ConnecttionString属性。
    单独执行select 月份,left(编码,4) 
           from   Table
    没有问题,加上sum后就出现问题了。
      

  4.   

    呵呵~~你的SQL语句在查询分析器里执行能出结果吗?
      

  5.   

    应该是SQL语句的问题吧,用了聚合函数如sum,count等的话,Select中的其他字段一定要用group by
    两个办法:
    1.把“月份”和“项目WBS编码”也放到聚合函数中
    2.把“月份”和“项目WBS编码”放到group by中
    在SQL查询分析器里看看是不是提示
    “***选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。”
      

  6.   

    谢谢帮忙,就是缺少group by子句,不能运行