******请教关于一个报表的问题,请看代码******

xxfloyd 2002-09-12 03:53:56
各位能否帮我解决一下这个问题?我想学习设计一个打印报表的程序,很简单,窗体上两个check控件,一个“报表预览”按钮,一个退“退出”按钮。
我的想法是,如果用户只选了第一个check,就只在报表上显示“daima”字段的内容,隐藏“mingcheng”字段在报表上所使用的“label”和“text”控件,如果只选了第二个check,就只在报表上显示“mingcheng”字段;如果两个都选,那么就全显示出来。现在请看代码如下:

Option Explicit
Dim testdb As New ADODB.Connection
Dim testrec As New ADODB.Recordset
——————————————————————————————
Private Sub Command1_Click()

Dim rsstr1 As String
Dim rsstr2 As String

rsstr2 = "select mingcheng from testtable"
rsstr1 = "select daima from testtable"

If Check1.Value = 1 And Check2.Value = 0 Then
testdb.Open ("Provider=Microsoft.Jet.OLEDB.4.0;data source=d:\vb\data\test.mdb")
testrec.CursorLocation = adUseClient
testrec.Open rsstr1, testdb, adOpenStatic, adLockReadOnly, adCmdText
Set DataReport1.DataSource = testrec
DataReport1.Sections("section2").Controls("label1").Visible = True
DataReport1.Sections("section1").Controls("text1").Visible = True
DataReport1.Sections("section1").Controls("text1").DataField = "daima"
End If

If Check1.Value = 0 And Check2.Value = 1 Then
testdb.Open ("Provider=Microsoft.Jet.OLEDB.4.0;data source=d:\vb\data\test.mdb")
testrec.CursorLocation = adUseClient
testrec.Open rsstr2, testdb, adOpenStatic, adLockReadOnly, adCmdText
Set DataReport1.DataSource = testrec
DataReport1.Sections("section2").Controls("label2").Visible = True
DataReport1.Sections("section1").Controls("text2").Visible = True
DataReport1.Sections("section1").Controls("text2").DataField = "mingcheng"
End If

If Check1.Value = 1 And Check2.Value = 1 Then
testdb.Open ("provider=microsoft.jet.oledb.4.0;data source=d:\vb\data\test.mdb")
testrec.CursorLocation = adUseClient
testrec.Open "select daima,mingcheng from testtable", testdb, adOpenStatic, adLockReadOnly, adCmdText
Set DataReport1.DataSource = testrec
DataReport1.Sections("section2").Controls("label1").Visible = True
DataReport1.Sections("section1").Controls("text1").Visible = True
DataReport1.Sections("section1").Controls("text1").DataField = "daima"
DataReport1.Sections("section2").Controls("label2").Visible = True
DataReport1.Sections("section1").Controls("text2").Visible = True
DataReport1.Sections("section1").Controls("text2").DataField = "mingcheng"
End If

If Check1.Value = 0 And Check2.Value = 0 Then
GoTo out:
End If

DataReport1.Show
out:
End Sub
————————————————————————————————
Private Sub Command2_Click()
testrec.Close
testdb.Close
Unload Form1
End Sub
结果在运行时报表的窗口一出来,程序就报告说:未找到datafield'(空)'
请问这是为什么?怎么解决?
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
...全文
31 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjmking 2002-09-12
  • 打赏
  • 举报
回复
检查一下有没有关联上

807

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧