请在显示报表代码前加这个试试:if DataEnvironment1.rsCommand1.adStateOpen then Dataenvironment1.rsCommand1.Close end if
或请在显示报表代码前加这个试试:if DataEnvironment1.rsCommand1.adStateOpen then Dataenvironment1.rsCommand1.Close end if Dataenvironment1.rsCommand1
也就是 if DataEnvironment1.rsCommand1.adStateOpen then Dataenvironment1.rsCommand1.Close end if Dataenvironment1.rsCommand1DataReport1.Show
各位的方法我看了一下,我是这样改的:If DataEnv.rsGroupNo.State = adStateOpen Then DataEnv.rsGroupNo.Close End If DataEnv.rsGroupNo可是不行啊,DataEnv.rsGroupNo 这一句是不是错了?rsGroupNo 只是一个对象啊?VB 提示是属性使用无效。
我现在应急的解决方法就是,每次在显示报表时,重新建立一个新的 DataEnv 对象:Set MyDataEnv = New DataEnv Set MyReport.DataSource = MyDataEnv MyReport.Show vbModal但是总觉得这样不好,而且以后报表多了,数据环境也会很复杂,那样不是开销很大而且是不是太慢了?各位还有什么好方法吗?
那你可以把最后一行省去试试。if DataEnvironment1.rsCommand1.adStateOpen then Dataenvironment1.rsCommand1.Close end if我上面已经提到过了。
建议使用其它方式来作,比如使用HTML或Excel。这样可能自由更换数据且简单。
HTML 嵌在程序里觉得很不舒服,而且 Web 页在打印的时候是受浏览器控制的,通常状况下有什么页眉页脚,而且背景图片还不打印。
试试这个 if DataEnvironment1.rsCommand1.adStateOpen then Dataenvironment1.rsCommand1.Close end ifDataEnvironment1.Command1应该没有问题。
我也碰到过类似情况,你可以在你的报表预览按钮中添加以下代码 试一试吧 Set DataEnviorment=Nothing Set DataReport1.DataSource= DataEnviorment DataReport1.PreviewPrint
真正可行的方法,亲自测试,呵。 If DataEnvironment1.rsCA1.State = 1 Then 'MsgBox (DataEnvironment1.rsCA1.State) DataEnvironment1.rsCA1.Close End IfDataEnvironment1.CA1 DataReport1.Show注,我的command1 变成了CA1了,呵,你改一下就是。 从 luosidao(螺丝刀) 的启发而来的,只是他的语句有错哦,呵。
Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset sql="......" Set rst=cnn.Excute(sql) Set DataEnvironment1.rsCommand1.DataSource = rst Set DataReport.DataSource = DataEnvironment1 DataReport.Show
简单的, unload DataEnvironment1 DataReport1.Refresh
If DataEnvironment1.Connection1.State = adStateOpen Then DataEnvironment1.Connection1.Close DataEnvironment1.Connection1.Open
Dataenvironment1.rsCommand1.Close
end if
Dataenvironment1.rsCommand1.Close
end if
Dataenvironment1.rsCommand1
if DataEnvironment1.rsCommand1.adStateOpen then
Dataenvironment1.rsCommand1.Close
end if
Dataenvironment1.rsCommand1DataReport1.Show
DataEnv.rsGroupNo.Close
End If
DataEnv.rsGroupNo可是不行啊,DataEnv.rsGroupNo 这一句是不是错了?rsGroupNo 只是一个对象啊?VB 提示是属性使用无效。
Set MyReport.DataSource = MyDataEnv
MyReport.Show vbModal但是总觉得这样不好,而且以后报表多了,数据环境也会很复杂,那样不是开销很大而且是不是太慢了?各位还有什么好方法吗?
那你可以把最后一行省去试试。if DataEnvironment1.rsCommand1.adStateOpen then
Dataenvironment1.rsCommand1.Close
end if我上面已经提到过了。
if DataEnvironment1.rsCommand1.adStateOpen then
Dataenvironment1.rsCommand1.Close
end ifDataEnvironment1.Command1应该没有问题。
试一试吧
Set DataEnviorment=Nothing
Set DataReport1.DataSource= DataEnviorment
DataReport1.PreviewPrint
If DataEnvironment1.rsCA1.State = 1 Then
'MsgBox (DataEnvironment1.rsCA1.State)
DataEnvironment1.rsCA1.Close
End IfDataEnvironment1.CA1
DataReport1.Show注,我的command1 变成了CA1了,呵,你改一下就是。
从 luosidao(螺丝刀) 的启发而来的,只是他的语句有错哦,呵。
Dim rst As New ADODB.Recordset
sql="......"
Set rst=cnn.Excute(sql)
Set DataEnvironment1.rsCommand1.DataSource = rst
Set DataReport.DataSource = DataEnvironment1
DataReport.Show
unload DataEnvironment1
DataReport1.Refresh
DataEnvironment1.Connection1.Open