| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2457 人关注过本帖
标题:[求助]VB+SQL server中实现按查询结果动态打印报表的问题,在线等~~
只看楼主 加入收藏
yuan2039
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-5-4
收藏
 问题点数:0 回复次数:14 
[求助]VB+SQL server中实现按查询结果动态打印报表的问题,在线等~~

我用VB6.0的 data reoprt设计了一个报表,并通过用DataEnviroment设计器连接数据源,并建立command命令后用自带的SQL生成器建立了SQL的查询语句,然后拖放到报表中以获得数据,在VB窗体的click事件调用报表 能够实现报表的输出 我的问题就是这样的报表每次都是固定不变的,即不能实现在根据查询条件 的变化动态更改报表 报表只显示符合查询结果的记录集 我不知哪个属性方法可以在运行时可根据查询动态改变上面的那个SQL查询语句 本人对VB报表接触比较少,其他的水晶报表和excel可以做到吧?可是我不会,网络上很少关于VB+SQL的这方面资料 , 小弟郁闷了两天了,还望大家多多指教,先行谢谢!!

'*************以下是数据环境里面的SQL语句,我的目的就是要通过运行时更改这个查询条件以查找满足条件的记录 SELECT need_wl.款号, need_wl.名称, need_wl.规格, need_wl.颜色, need_wl.用量,buy_wl.进仓日期 FROM buy_wl INNER JOIN need_wl ON buy_wl.ID = need_wl.ID WHERE (need_wl.来源 = '厂订')

搜索更多相关主题的帖子: SQL server 动态 水晶 打印 
2005-05-04 22:32
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
以前的帖子就有关于动态改变报表数据源的。 http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=6&ID=14797&page=2 关键问题在于,你每次打印报表前要将数据源关闭重新打开。

[此贴子已经被作者于2005-5-5 9:37:57编辑过]


天津网站建设 http://www./
2005-05-05 09:36
yuan2039
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-5-4
收藏
得分:0 

Option Explicit

Private Sub Command1_Click() If DataEnvironment1.rsCommand1.State <> 0 Then DataEnvironment1.rsCommand1.Close End If DataEnvironment1.Command1 (Text1.Text) DataReport1.Show

End Sub

*******************************************

斑竹的帖子我看过了,不过小弟的报表还是不能正常运行,请问斑竹 Text1.Text 是什么参数?? 能不能举个实际的例子,我搞了一个下午还是没有头绪......

错误对话框显示如下:

*******************************************************

编译错误:

错误的参数号或无效的属性值!

****************************************************图片上传不了,手写代替了

具体就是说DataEnvironment1的command1属性无效,但我实在搞不懂是怎么回事啊? 还请指教,感激不尽!!!! ^_^

[此贴子已经被作者于2005-5-5 21:07:50编辑过]

2005-05-05 20:54
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
晕,你不要照搬呀,那是人家的例子,你根据自己实际情况改一下。

关键在这三行:
If DataEnvironment1.rsCommand1.State &lt;&gt; 0 Then
    DataEnvironment1.rsCommand1.Close
End If

天津网站建设 http://www./
2005-05-05 23:29
yuan2039
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-5-4
收藏
得分:0 

斑竹说的那段程序

*****************************

If DataEnvironment1.rsCommand1.State <> 0 Then DataEnvironment1.rsCommand1.Close End If

*************************** 我可以明白, 那是用来关闭前一次的查询结果

但我现在出现的问题是我根本没运行正常 ,就是我在FROM1窗体的click事件里

DataReport1.Show 在这句代码前面加些代码就怎么都会出错 =_= ..........

例如 我数据环境里面的SQL语句是 select * from ddxx

我的FROM窗体里面放一个text1和command1控件, 其中Click代码如下:

*********************************

Private Sub Command1_Click()

DataEnvironment1.Command1 (Text1.Text) DataReport1.Show End Sub ****************************** 运行FROM,在text1里面输入 select * from ddxx where 订单编号='1' 再点击 command1 按钮,之后就会出错了 (按照我的需要应该结果是显示订单编号为1的记录!!而不是数据环境里面的全部记录!! ) 是不是我这里的 text1.text 理解错了啊

老是显示下面的错误对话框

*******************************************************

编译错误:

错误的参数号或无效的属性值!

**************************************************** 会不会是跟我的 是SQL后台而不是access数据库有关呢? 或许是我太笨吧?还请斑竹多多指教........(如果可以的话,给我留个QQ号码好吗?我发些程序或抓图给你看看 )

2005-05-06 00:46
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
晕。。。。。

天津网站建设 http://www./
2005-05-06 11:37
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
DataEnvironment1.Command1 (Text1.Text) 这里的Text1.text是一个参数传给Command1的。 Command1里面不要写实际的SQL查询条件,应该写成 select * from ddxx where 订单编号= ? 你只要在Text1.Text里输入 1 就可以了。

天津网站建设 http://www./
2005-05-06 11:40
yuan2039
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-5-4
收藏
得分:0 

斑竹,我现在搞不懂的就是 数据环境里面怎么接收 text1.text 传递过去的参数啊? 即在数据环境中如何定义一个参数?? 例如在 DataEnvironment1的command1属性里面不是需要一个参数来接收 text1.text 传来的值呢? 例如我在 command1里写以下这句 select * from ddxx where 订单编号= a 那个参数 a 应该在 哪里 如何 地定义呢?? (默认情况下应该是不认这个"a"的吧?)

很感谢斑竹的不惜指教,先行谢谢~~~~~

2005-05-06 13:17
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
select * from ddxx where 订单编号= ? 就可以了 问号就代表参数。
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2005-5-6 13:38:38编辑过]


天津网站建设 http://www./
2005-05-06 13:25
yuan2039
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-5-4
收藏
得分:0 

谢谢斑竹,问题已经解决了, select * from ddxx where 订单编号= ? DataEnvironment1的command1属性里只需要像你说的 那样用个问号就搞定了,为什么这么的简单??我却郁闷的几天哦!! 谢谢斑竹的指教,不尽感激!!!!

还有一个附带的问题: 就是上面的那个问号为什么能自动接收参数的呢?我一直认为这是不可能的

还有如果我需要在数据环境command1里定义两个参数又该如何做呢? ^_^

(今天很高兴, 得到了斑竹的悉心帮助终于解决问题了 !!)

2005-05-06 13:32
快速回复:[求助]VB+SQL server中实现按查询结果动态打印报表的问题,在线等~~ ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021123 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved