VB6中动态设置报表结果
2011-12-23 09:08
211 查看
在VB6的报表使用过程中,我们会发现这样的一个问题,那就是报表中的数据只能读一次,不管你的库中字段增加也好,删除也好,以及让它显示新的查询结果 等,它都不会记变。经过查资料才搞清楚,原来是Data Environment 的问题.原来,只要Command 对象中含有数据记录集合,它就不会重新执行SQL 语句,就算是把新的查询语句给Data Environment 后它也不会执行,解决的方法为:先把数据记录集合关闭,然后执行SQL语句,如下例:
Private Sub Command11_Click()
On Error Resume Next
Dim sql As String
sql = "select * from saledate"
If DataEnvironment1.rsCommand1.State <> adStateClosed Then
DataEnvironment1.rsCommand1.Close
End If
If Right$(Trim$(App.Path), 1) = "\" Then
DataEnvironment1.Connection1.Open App.Path & "jxck.mdb"
Else
DataEnvironment1.Connection1.Open App.Path & "\jxck.mdb"
End If
DataEnvironment1.rsCommand1.Open sql
Set DataReport1.DataSource = DataEnvironment1
DataReport1.DataMember = "command4"
'DataReport1.Title = "出库明细总表"
DataReport1.Show
End Sub
这样的话报表中显示的内容就可以是查询结果了。
对于分组报表,也可以这样:
如:
Private Sub Command11_Click()
On Error Resume Next
'Dim sql As String
'sql = "select * from saledate group by 分组字段名"
If DataEnvironment1.command4_分组.State <> adStateClosed Then
DataEnvironment1.rsCommand4_分组.Close
End If
If Right$(Trim$(App.Path), 1) = "\" Then
DataEnvironment1.Connection1.Open App.Path & "jxck.mdb"
Else
DataEnvironment1.Connection1.Open App.Path & "\jxck.mdb"
End If
DataEnvironment1.rsCommand4.Open sql
Set DataReport4.DataSource = DataEnvironment1
DataReport4.DataMember = "command4_分组"
'DataReport1.Title = "出库明细总表"
DataReport4.Show
End Sub
注意要在SQL语句中含有分组关建字"group by "就可以了。
以上代码对于要改变Data Environment 中的记录集同样适用.
Private Sub Command11_Click()
On Error Resume Next
Dim sql As String
sql = "select * from saledate"
If DataEnvironment1.rsCommand1.State <> adStateClosed Then
DataEnvironment1.rsCommand1.Close
End If
If Right$(Trim$(App.Path), 1) = "\" Then
DataEnvironment1.Connection1.Open App.Path & "jxck.mdb"
Else
DataEnvironment1.Connection1.Open App.Path & "\jxck.mdb"
End If
DataEnvironment1.rsCommand1.Open sql
Set DataReport1.DataSource = DataEnvironment1
DataReport1.DataMember = "command4"
'DataReport1.Title = "出库明细总表"
DataReport1.Show
End Sub
这样的话报表中显示的内容就可以是查询结果了。
对于分组报表,也可以这样:
如:
Private Sub Command11_Click()
On Error Resume Next
'Dim sql As String
'sql = "select * from saledate group by 分组字段名"
If DataEnvironment1.command4_分组.State <> adStateClosed Then
DataEnvironment1.rsCommand4_分组.Close
End If
If Right$(Trim$(App.Path), 1) = "\" Then
DataEnvironment1.Connection1.Open App.Path & "jxck.mdb"
Else
DataEnvironment1.Connection1.Open App.Path & "\jxck.mdb"
End If
DataEnvironment1.rsCommand4.Open sql
Set DataReport4.DataSource = DataEnvironment1
DataReport4.DataMember = "command4_分组"
'DataReport1.Title = "出库明细总表"
DataReport4.Show
End Sub
注意要在SQL语句中含有分组关建字"group by "就可以了。
以上代码对于要改变Data Environment 中的记录集同样适用.
相关文章推荐
- C#中为水晶报表动态动态设置数据源 收藏
- 水晶报表动态设置字段宽度(包括公式文本字段)
- 润乾报表中利用API动态设置左表头
- 润乾报表学习五:设置预警条件,增加动态背景色
- PUSH模式动态水晶报表的实现-文本框、数据框的设置
- 动态设置Rave报表BMP图片文件
- 根据数据源字段动态设置报表中的列数量以及列宽度
- 【转】如何使用代码动态设置水晶报表中的文本,字段等对象呢?
- 动态设置水晶报表
- 水晶报表动态设置字段宽度(包括公式文本字段)
- VB6中使用报表及向报表传送动态数据
- DevExpress.XtraReports报表,动态设置报表布局
- 如何使用代码动态设置水晶报表中的文本,字段等对象呢?
- 润乾报表中利用API动态设置左表头
- 润乾报表—动态设置滚动条适应屏幕分辨率
- DevExpress.XtraReports报表,动态设置报表布局
- 急需,动态数据到水晶报表的设置
- DevExpress.XtraReports报表,动态设置报表布局 (转)
- 对于固定表头的报表-动态设置滚动条高度、宽度的解决方法
- 关于水晶报表动态设置图片,同比例缩放问题