请问用VB自带的DataReport打印报表的问题,我在界面有一个文本框,名为:txtMsear
我的目的是:以界面txtMsear.text所示的月份为条件,在报表中打印月份符合条件的记录,我用以下代码时,只打印出表里第一条的记录。Private Sub Command3_Click()
Dim cn As New ADODB.Connection '定义数据库的连接
Dim rst As New ADODB.Recordset
cn.ConnectionString = "Provider=sqloledb;Data Source=OFFICE;Initial Catalog=h;User Id=sa;Password=123;"
cn.Open
rst.CursorLocation = adUseClient
rst.Open "select * from lzliubaob", cn, adOpenDynamic, adLockOptimistic
DataEnvironment1.Commands("Command1").CommandText = "lzliubaob where 月份='" & txtMsear.Text & "'"
DataReport1.Show麻烦大家帮下忙,多谢了。
我的目的是:以界面txtMsear.text所示的月份为条件,在报表中打印月份符合条件的记录,我用以下代码时,只打印出表里第一条的记录。Private Sub Command3_Click()
Dim cn As New ADODB.Connection '定义数据库的连接
Dim rst As New ADODB.Recordset
cn.ConnectionString = "Provider=sqloledb;Data Source=OFFICE;Initial Catalog=h;User Id=sa;Password=123;"
cn.Open
rst.CursorLocation = adUseClient
rst.Open "select * from lzliubaob", cn, adOpenDynamic, adLockOptimistic
DataEnvironment1.Commands("Command1").CommandText = "lzliubaob where 月份='" & txtMsear.Text & "'"
DataReport1.Show麻烦大家帮下忙,多谢了。
Dim cn As New ADODB.Connection '定义数据库的连接
Dim rst As New ADODB.Recordset cn.ConnectionString = "Provider=sqloledb;Data Source=OFFICE;Initial Catalog=h;User Id=sa;Password=123;"
cn.Open rst.CursorLocation = adUseClient
rst.Open "select * from lzliubaob where 月份='" & txtMsear.Text & "'" ", _
cn, adOpenDynamic, adLockOptimistic
'如果你月份字段非文本类型,那么去掉上面WHERE子句中的单引号
set DataReport1.datasource =rst
DataReport1.Show
datareport与数据字段相关的控件都要设置对应的datafield属性(1.可以通过代码设置,2.也可以通过报表属性窗口设置),并且不能有多余的控件...
保证SQL语句返回正确的记录集...
参数类型不正确,或不在可以接受的范围之内或与其他参数冲突 DataReport界面上还有几个Label控件,这个没有关系吧?
如果你不用DE,可以直接绑定recordset,方法上面说了,你可以新建一个工程,添加一个datareport测试...
你现在的代码又是DE,又是rst,二个合在一起,用的又不对,所以得不到结果...
dim cn as connection
dim rst as recordset
dim sql as string
'设置报表text1控件的datafield属性
DataReport1.Sections("Section1").Controls("text1").DataField = "itemID"
'连接数据库
set cn=new connection
cn.open "......"
'返回记录集
sql="select * from tb "
set rst=cn.execute(sql)
'绑定报表
set datareport1.datasource=rst
DataReport1.Show
假定[月份]字段值都是 1 日,并且时分秒都为 0;
假定 txtMsear 输入形式为 2009-11。
rst.Open "select * from lzliubaob where 月份='" & txtMsear.Text & "-01'", ...
我6楼也说了要“保证SQL语句返回正确的记录集...”,也不知道他测试没有....