菜鸟利用VSflexgrid 控件显示查询结果,提前绑定数据集,因不同查询方式需要,必须随时关闭此数据集。
现需要利用水晶报表显示并打印VSFlexgrid 中的查询结果 ,由于原数据集已关闭,无法为报表提供数据集,为此无计可施,求解,原程序如下:
Public rs As New ADODB.Recordset
Public str As String
Public conn As New ADODB.Connection strsql = "SELECT b.dept_name,a.employ_no,a.employ_name, a.sex_name,a.sy_gz,a.jc_gz,a.bz_jt,a.bz_wc,a.k_dkk, a.employ_time, " & _
"a.bz,a.employ_mem FROM employees a,departments b where a.dept_no = b.dept_no and a.employ_name like '%" & Trim(txt_name.Text) & "%'"
rs.Open strsql, conn, 3, 2
lastrow = 1
lastcol = 1
With grid_master
.Editable = flexEDNone
.AllowUserResizing = flexResizeBoth
.AllowUserFreezing = flexFreezeBoth
.BackColorFrozen = RGB(200, 200, 255)
.ExplorerBar = flexExMoveRows Or flexExSortShowAndMove
Set .DataSource = rs1
.SelectionMode = flexSelectionByRow
.Row = .Rows - 1
For Row = .FixedRows To .Rows - 1
.TextMatrix(Row, 0) = Row
Next
End With
rs.Close 数据集关闭,必须的希望不用写入临时报表的方式,直接把表格中的数据写入一新数据集(Recordset),以为报表提供数据源
现需要利用水晶报表显示并打印VSFlexgrid 中的查询结果 ,由于原数据集已关闭,无法为报表提供数据集,为此无计可施,求解,原程序如下:
Public rs As New ADODB.Recordset
Public str As String
Public conn As New ADODB.Connection strsql = "SELECT b.dept_name,a.employ_no,a.employ_name, a.sex_name,a.sy_gz,a.jc_gz,a.bz_jt,a.bz_wc,a.k_dkk, a.employ_time, " & _
"a.bz,a.employ_mem FROM employees a,departments b where a.dept_no = b.dept_no and a.employ_name like '%" & Trim(txt_name.Text) & "%'"
rs.Open strsql, conn, 3, 2
lastrow = 1
lastcol = 1
With grid_master
.Editable = flexEDNone
.AllowUserResizing = flexResizeBoth
.AllowUserFreezing = flexFreezeBoth
.BackColorFrozen = RGB(200, 200, 255)
.ExplorerBar = flexExMoveRows Or flexExSortShowAndMove
Set .DataSource = rs1
.SelectionMode = flexSelectionByRow
.Row = .Rows - 1
For Row = .FixedRows To .Rows - 1
.TextMatrix(Row, 0) = Row
Next
End With
rs.Close 数据集关闭,必须的希望不用写入临时报表的方式,直接把表格中的数据写入一新数据集(Recordset),以为报表提供数据源
Public rs3 As New ADODB.Recordset
在查询结束后加一句set rs3=rs 然后在预览表单上 rs3.close 对不如按这种方法执行,无数据显示在报表 上
另还有什么更好的方法吗