我需要根据用户选择的条件来打印,也就是按用户设定条件出报表.
例如: 打印2005年的张三的相关记录,
或者2004年李四的相关纪录
请帮忙,急!
例如: 打印2005年的张三的相关记录,
或者2004年李四的相关纪录
请帮忙,急!
解决方案 »
- 如何将SQL SERVER数据库存为本地ACCESS数据库呢?
- 遇到错误“在对应所需名称或序数的集合中,未找到项目。”
- 在线等待!!!!!!!!!!!WebBrowser控件加入网页代码怎么写!!!
- 怎样将鼠标的形状该成超级链接时的手掌形状???
- 100分求一个答案!!
- 怎样用VB获取硬盘ID?
- 怎样在程序中得到CrystalReport控件中TotalPages?
- 请高手们指教。这是我的第一个问题?
- 关于api函数SetFileTime文件句柄地取得???
- 在picturebox中播放avi时,如何让动画的大小和picturebox大小一致
- MSHFlexGrid中数据的显示
- 请教几个ADO问题
Private Sub Command1_Click()
Dim AdoCon As New ADODB.Connection
Dim AdoRec As New ADODB.Recordset
Dim ctl As Object
AdoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.xls;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1""" '根据用户输入的姓名,查找对应的记录
AdoRec.Open "select 姓名,年龄,学历,性别 from [Sheet1$] where 姓名='" & Text1.Text & "' ", AdoCon, adOpenDynamic, adLockReadOnly With DataReport1
Set .DataSource = AdoRec
For Each ctl In .Sections.Item("Section1").Controls
If TypeName(ctl) = "RptTextBox" Then
Select Case ctl.Name
Case "Text1"
ctl.DataField = AdoRec.Fields("姓名").Name
Case "Text2"
ctl.DataField = AdoRec.Fields("年龄").Name
Case "Text3"
ctl.DataField = AdoRec.Fields("学历").Name
Case "Text4"
ctl.DataField = AdoRec.Fields("性别").Name
End Select
End If
Next
End With
DataReport1.Show
End Sub
===================
您的那段代码是一个按钮的单击事件,关键是记录集如何释入呀?如何关闭呀?否则无法释放内存呀?
---------------------------
可以把cn和rs定义为全局变量,在退出程序时把他们释放,不过得注意一下,打开cn或rs前,先判断他们的状态:
AdoCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.xls;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1"""
If AdoCon.State <> adStateOpen Then AdoCon.Open If AdoRec.State <> adStateClosed Then AdoRec.Close
'根据用户输入的姓名,查找对应的记录
AdoRec.Open "select 姓名,年龄,学历,性别 from [Sheet1$] where 姓名='" & Text1.Text & "' ", AdoCon, adOpenDynamic, adLockReadOnly
引用ADO("工程"/"引用"/Microsoft ActiveX Data Object 2.X Library)