我在VB中调用水晶报表,在第一次打开程序时可以调出报表,如果关闭程序后再打开
报表VB即异常退出,没有提示!环境(VB6+SQL2000+水晶报表9.2)请高手给看看,我已经熬了2天了,就是看不出什么地方有问题!谢谢!代码如下:
Option ExplicitPublic conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public oRpt As CRAXDRT.ReportPrivate Sub Form_Load()Set conn = New ADODB.Connection
If conn.State = adStateOpen Then conn.Close
conn.ConnectionTimeout = 3
conn.ConnectionString = "Provider=SQLOLEDB.1;password=123456;Persist Security Info=True;user ID=sa;Initial Catalog=ceshi;Data Source=abc"
conn.Open
If conn.State = 0 Then
MsgBox "数据库链接错误,请检查数据库是否打开运行!"
Else
'调用水晶报表
conn.CursorLocation = adUseClient
If rs.State = adStateOpen Then rs.Close
Set rs = New ADODB.Recordset
rs.Open "select * from F_jiangbei", conn, adOpenDynamic, adLockBatchOptimistic
Screen.MousePointer = vbHourglass
reportName = "\rpt\jiangbei.rpt" '定义要引用的rpt文件
Set oRpt = oApp.OpenReport(App.Path & reportName, 1)
oRpt.Database.SetDataSource rs '连接水晶报表和数据源
oRpt.ReadRecords
CRViewer91.ReportSource = oRpt '启用水晶报表的预览功能
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
CRViewer91.Refresh
End If
End SubPrivate Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidthEnd Sub
Private Sub Form_Unload(Cancel As Integer)
Set rs = Nothing
Set conn = Nothing
Set oRpt = Nothing
Unload MeEnd Sub
报表VB即异常退出,没有提示!环境(VB6+SQL2000+水晶报表9.2)请高手给看看,我已经熬了2天了,就是看不出什么地方有问题!谢谢!代码如下:
Option ExplicitPublic conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public oRpt As CRAXDRT.ReportPrivate Sub Form_Load()Set conn = New ADODB.Connection
If conn.State = adStateOpen Then conn.Close
conn.ConnectionTimeout = 3
conn.ConnectionString = "Provider=SQLOLEDB.1;password=123456;Persist Security Info=True;user ID=sa;Initial Catalog=ceshi;Data Source=abc"
conn.Open
If conn.State = 0 Then
MsgBox "数据库链接错误,请检查数据库是否打开运行!"
Else
'调用水晶报表
conn.CursorLocation = adUseClient
If rs.State = adStateOpen Then rs.Close
Set rs = New ADODB.Recordset
rs.Open "select * from F_jiangbei", conn, adOpenDynamic, adLockBatchOptimistic
Screen.MousePointer = vbHourglass
reportName = "\rpt\jiangbei.rpt" '定义要引用的rpt文件
Set oRpt = oApp.OpenReport(App.Path & reportName, 1)
oRpt.Database.SetDataSource rs '连接水晶报表和数据源
oRpt.ReadRecords
CRViewer91.ReportSource = oRpt '启用水晶报表的预览功能
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
CRViewer91.Refresh
End If
End SubPrivate Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidthEnd Sub
Private Sub Form_Unload(Cancel As Integer)
Set rs = Nothing
Set conn = Nothing
Set oRpt = Nothing
Unload MeEnd Sub
解决方案 »
- WebBrowser 刷新问题.......
- 如何获得桌面上运行的程序,然后关闭它们
- Datagrid实时错误'6153',数值字段溢出
- 猴年马月端午节,高兴
- 请大家来谈谈消息反射是怎么回事,谢谢!
- formual one 如果动态的设置显示的列 不如说 我模板设计的时候是6列 但是以后可能是10列 如何动态的增加
- 如何在VB里用程序动态建立一个Word文件?
- vb 添加记录问题,提示“对象关闭时,不允许操作”,请大侠不吝赐教!
- 如何加快读取文本文件的速度
- 怎么呼出已知句柄的编辑区的右击菜单?大恩大得没齿不忘!以后给分.
- 请教一下数据库基础知识 谢谢
- 请教问题!关于ole的excel文件和word文件翻页及保存的问题!
CRViewer91.ReportSource = oRpt '启用水晶报表的预览功能
后面加上
set oRpt=Nothing
看看
您是那个“[部署系列之一]轻松搞定水晶报表9.2打包”的作者吧,久仰大名!
不过我按照你说的方法打包没有成功,在没有安装 “水晶报表9.2”的机器上打开报表是空的
还望指教一下,VB中调用的就是以上代码,打包后没有错误提示
水晶报表生成时会在本地生成临时文件,如果你的数据量太大,可能是临时文件空间不够导致退出另外建议你将 oRpt.ReadRecords 这句注释oRpt.Database.SetDataSource rs '连接水晶报表和数据源
之前加上DiscardSavedData 打包的问题,,可以参见文章的回复里的一些内容吧,这个是成型方案了:)
你说的临时文件是指C:\Documents and Settings\Administrator\Local Settings\Temp 吗?
要是的话我看了一下每次打开报表会生成124K的一个文件,不过我清空临时文件后,还是一样!加上DiscardSavedData 这句故障依旧!
有些无礼的要求,请别见怪啊 !泰哥能不能给我发个你写的VB连接水晶报表的案例 啊!?(最好也是ADO连接SQL数据库的)我是个初学者,上面崔的紧这个问题实在是困扰我太长时间了!邮箱:[email protected]再次感谢泰哥的回复!
http://www.cnblogs.com/babyt/archive/2005/03/11/116880.html突然想到另外一个问题,你的模板是咋做的?。。连了数据库??
子报表结构和字段相同,只是选择数据时按照时间段选择的,报表页脚是一天数据的汇总
即数据按每8个小时做个小结,主报表做每天的汇总是不是这种结构的报表不适用以上方式阿!
也就是说我在VB里打开了数据库,又在报表中打开了数据库,VB中虽然关闭了数据集但报表打开的数据集并没有关闭,这样再次打开程序时导致冲突
程序才退出的,我这样分析对吗?
还请泰哥百忙中给与解答!!
这篇文章,使用你提供的例子,在我机器上运行也出现同样的结果,我想可能是开发环境的问题,我
的操作系统是windows2003服务器版,我晚上安装win2000再试试!
出现以上结果的原因可能是在开发过程中安装VS2005引起的,也有可能是
打包测试时替换掉了一些系统DLL引起,在这里非常感谢阿泰哥!!!