我用DataReport+DataEnvironment设计报表,已经完成。但有一个问题。就是每次打开报表的速度不太一样。有时候很快报表就出来了,有时候很慢。不知道怎么回事。请指点一下。谢谢。
解决方案 »
- vb无效的过程调用或参数(错误 5)
- 如何响应任意位置的鼠标点击?
- Provider =SQLNCLI和Provider =sqloldedb在我机器上试下来都行,我是sql server 2005,为什么
- 如何在运行时动态的设置TEXT为自动换行,或非自动换行?实现像记事本中的自动换行一样的功能?
- 我发现了好东东大家一起来分享
- 怪事~~~~
- #####继续请教获取大文件的大小的问题?(ch21st和zyl910请进)
- VB新手 webbrowser 問題, 急, 後天交功課>.<''
- ado的一个小问题,请大家帮帮忙.
- 在VB里怎么才能一点击文本框就高亮选中全部文本?
- [找工作] 地点,广东,北京。
- 如何接受一个数据包并让他显示
我想你的情况可能是二个,一是用了DE,不过这个只是推测,因为没有用过这个,或者是用法上有问题。二是你是在窗体相关事件中设置和绑定报表数据源的,个人认为更恰当的用法应该是放在DataReport_Initialize事件中。个人看法,不一定正确,只供参考。原因找到了,灵感来自“vbman2003 ”的赋值!
处理办法:原来报表窗体中的DataSource选中的是“DE”,现在去掉,改用赋值的方法:Set myRpt.DataSource = DE。测试结果:内存再也没递增了,而且查询出报表速度奇快!你的帖子我看到了。我也是将报表窗体中的DataSource选中的是“DE”,现在也改用set在DataReport_Initialize来赋值了。那还想问问,报表中的相关text和报表的DataMember我现在也是绑定的,需要改吗?
Set DE = Nothing
DE.CT.ConnectionString = strCnn
DE.Commands("gas_money_public").CommandText = "SELECT * FROM moneypublic WHERE gasuser_id is not null " & strDWMC & strBZT & strYHBM & strYHXM & strRQ & strJKFS & strYHHAO & strYHNam & strLX & strYH & strUser & strSLBM & strPX
Set drpGas_Public_Money.DataSource = DE
strDRPName = "管道燃气抄度报表" & Rep_pay
Private Sub Command3_Click() '报表打印
Dim Sqlstr As String '数据库连接字符串
Dim Chaxun As String Set DataEnvironment1 = Nothing
Set DataRptSfjdbao = Nothing'连接字符串
DataEnvironment1.Connection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Database\" & Dataname & ";Persist Security Info=False"
If Combo2.Text = "按日查询" Then
If Combo1.Text = "日常监督" Then
DataEnvironment1.Commands.Item("Rsrptsfjd").CommandText = "select * from expwy where riqi=" & Chaxun & " " & "order by begintime"
DataRptSfjdbao.Show 1
end If
End Sub下面是报表窗体中的过程:
Private Sub DataReport_Initialize()
Set DataRptSfjdbao.DataSource = DataEnvironment1
End SubPrivate Sub DataReport_QueryClose(Cancel As Integer, CloseMode As Integer)
DataEnvironment1.rsRsrptsfjd.Close
Set rsRsrptsfjd = Nothing
End Sub这样可以了吗?有问题吗?