报表记录的限制问题(100分)

  • 主题发起人 主题发起人 smallcatxu
  • 开始时间 开始时间
S

smallcatxu

Unregistered / Unconfirmed
GUEST, unregistred user!
想在报表Preview之前通过一个对话框Form4(Form4上面有Edit1,Edit2),
来限制报表的记录,报表上使用一个Query,SQL语句如下:
SELECT * FROM Table1
where date >=:form4.edit1.text and bxdate<=:form4.edit2.text
程序没出错,但运行报表后报表上一无所有,不知何故,请各位帮忙分析一下原因?
或是有比较好的方法推荐
 
程序没有出错,说明你那一句SQL有问题,没有查出任何资料出来.你好好检查你的SQL语句,
先可以用一个DBGRID度试试,只要DBGRID中有资料显示,就能打印出来.你这100分花得可
有些不值呀.另外,我发现你的参数有问题.不如我给你说仔细一点.
qry.active:=False;
qry.sql.clear;
qry.sql.add(SELECT * FROM Table1 where date >=:data1 and bxdate<=:date2');
qry.params[0].asstring:=form4.edit1.text;
qry.params[1].asstring:=form4.edit2.text;
qry.active:=True;
我不清楚你的数据库是什么,不知直接用字符串行不行,你自己接合着试试看.
 
SELECT * FROM Table1
where date >=:form4.edit1.text and bxdate<=:form4.edit2.text
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
上面划线这两处放在SQL语句中就变成字符串的一部分了,而不是你所要的Edit控件的值,
这样的SQL语句肯定取不到数据了,解决方法如楼上所说
 
SqlStr:='select * from table1 whter date>='+#39+form4.edit1.text+#39
+' and bxdate<='+#39+form4.edit2.text+#39
qry.active:=False;
qry.sql.clear;
qry.sql.add(SqlStr);
qry.Open;
注:如果是paradox或dbase数据库的话,edit1,2的格式为'mm/dd/yyyy'
 
>>报表上一无所有
你该不是忘了设报表的DataSource罢
 
to:zhangkan
数据库是SQL SERVER 7.0
 
1、首先检查sql语句是否有问题?
2、检查执行后的sql语句是否能查到数据?
3、检查报表预览前是否关联数据,是否执行了sql语句?
4、最后无法,就提供源程序大家来检查。
 
多人接受答案了。
 
后退
顶部