首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

大家帮小弟我看看这段代码如何错了?2

2012-06-03 
大家帮我看看这段代码怎么错了?2大家好,我想用Delphi编一个程序,请大家帮我看看下面这段代码哪里出错了。我

大家帮我看看这段代码怎么错了?2
大家好,我想用Delphi编一个程序,请大家帮我看看下面这段代码哪里出错了。

  我用的是Delphi7,操作系统是XP,分别使用:TADOTable、TDataSource、TEdit、TRichEdit、TComboBox、TLabel、TButton,DataControls标签页下的组件只有一个:TDBGrid。

  数据库名:HDDB.mdb(Access数据库);表名:“Record”。字段有:隐患编号、检查日期、被检单位、负责人、隐患内容、整改措施、检查人、检查日期、整改期限、复查人、复查日期、整改情况。(以上字段:编号、整改期限为Integer类型;检查日期、复查日期为TDateTime类型,其余全部为String类型)。

  目的是这样:
  每月月底单击“统计”按钮(按钮名字:fmCOBtnCollect20)时:①分别统计各队组隐患数量 ②本月所有隐患总数。  
  但我不会用TADOTable进行统计,网上有人说要用TADOQuery,所以用TADOQuery来实现这个目的,代码如下:

 IF fmCOdsRecord.DataSet.State = dsInsert Then
  begin
  MessageDlg('对不起,新建隐患时,不能统计数据!' + #13#10 + #13#10 +
  ' 本次操作将被取消!', mtWarning, [mbOK], 0);
  end
 ELSE IF fmCOdsRecord.DataSet.State = dsEdit Then
  begin
  MessageDlg('对不起,修改隐患时,不能统计数据!' + #13#10 + #13#10 +
  ' 本次操作将被取消!', mtWarning, [mbOK], 0);
  end
 ELSE
  begin
  fmCOStartDates := fmCOCBoxCSStartYear13.Text + '年' + fmCOCBoxCSStartMonth14.Text + '月' + fmCOCBoxCSStartDay15.Text + '日';
  fmCOEndDates := fmCOCBoxCSEndYear16.Text + '年' + fmCOCBoxCSEndMonth17.Text + '月' + fmCOCBoxCSEndDay18.Text + '日';
  With fmCOADOqyRecord Do
  begin
  Active := False;
  ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
  ' Data Source=F:\井东通风工作\2012\井东煤业通风队隐患排查记录系统\DataBase\HDDB.mdb;' +
  'Persist Security Info=False';
  Close;
  SQL.Clear;
  SQL.Add('Select Count (*) From Record Where 检查日期 Between #fmCOStartDates# And #fmCOEndDates# GroupBy 被检单位');
  Open;
  end;
  end;

  按F9后,单击“统计”按钮,出现:“语法错误(操作符丢失)”在查询表达式‘检查日期 Between #fmCOStartDates# And #fmCOEndDates# Group By 被检单位'中。

  这是为什么?

  本人Delphi水平属于没入门水平,平时由于工作繁忙也没时间去系统的学习。由于工作需要,这是我的第一个程序,可能数据库表的建立、组件命名、代码编写规则等存在一些问题,请各位高手帮我检查、指教,本人不胜感激。 
 
 


[解决办法]
SQL.Add('Select Count (*) From Record Where 检查日期 Between #fmCOStartDates# And #fmCOEndDates# GroupBy 被检单位');
红色字体那地方错了,没空格。应是:Group By
[解决办法]
SQL.Add('Select Count (*) as cnt From Record Where 检查日期 Between #'+fmCOStartDates+'# And #'+fmCOEndDates+'# Group By 被检单位');

热点排行