数据库的paradox7
数据库结构如下合同号     客户名称     总金额      已收金额       未收金额    日期
 001         aaa         111         111             0      02.05
 002         aaa         222         222             0      02.09
 003         bbb         111         111             0      02.15
 004         bbb         222         222             0      03.11
 005         bbb         333         333             0      03.25
 006         ccc         111         111             0      03.29
要求输入一段日期后 ,能通过DBGRID查询显示出 例如2月---3月的销售情况
客户名称     总金额      已收金额       未收金额    
 aaa          333         333            0
 bbb          333         333            0
 ccc          111         111            0
      query1.Close;
      query1.sql.Clear;
      query1.sql.Add('select a.客户名称,sum(b.实际金额),sum(b.已收金额),sum(b.未收金额),sum(b.退款金额)  from 合同档案 a,合同内容档案 b  ');
      query1.sql.Add('where  a.签订日期>:date1 and a.签订日期<:date2  group by a.客户名称  order by a.客户名称 ');
      query1.Prepare;
      query1.Params[0].AsString:=trim(DBLUCombo_khm.Text);
      query1.Params[1].AsDate:=DateTimePicker1.Date;
      query1.Params[2].AsDate:=DateTimePicker2.Date;
      query1.Open;
程序运行后报错 “ List index out of bound(2)”请教各位大侠!!!!!!!!!
      

解决方案 »

  1.   

    query1.Params[0].AsString:=trim(DBLUCombo_khm.Text);where is this parameter definitions?
      

  2.   

    query1.Params[0].AsString:=trim(DBLUCombo_khm.Text);
          query1.Params[1].AsDate:=DateTimePicker1.Date;
          query1.Params[2].AsDate:=DateTimePicker2.Date;
    改成
          query1.Params[0].AsDate:=DateTimePicker1.Date;
          query1.Params[1].AsDate:=DateTimePicker2.Date;
      

  3.   

    a.签订日期>:date1 and a.签订日期<:date2  
    只有两个参数date1和date2