我要做的一个报表形式如下:
**课程表
第一个学期
课 课 课 课 课 课 课 课 课 ....
程 程 程 程 程 程 程 程 程 ....
名 名 名 名 名 名 名 名 名 ....
1 2 3 4 5 6 7 8 9 .... 第二个学期
课 课 课 课 课 课 课 课 课 ....
程 程 程 程 程 程 程 程 程 ....
名 名 名 名 名 名 名 名 名 ....
1 2 3 4 5 6 7 8 9 .... 第三个学期
课 课 课 课 课 课 课 课 课 ....
程 程 程 程 程 程 程 程 程 ....
名 名 名 名 名 名 名 名 名 ....
1 2 3 4 5 6 7 8 9 .... 第四个学期
课 课 课 课 课 课 课 课 课 ....
程 程 程 程 程 程 程 程 程 ....
名 名 名 名 名 名 名 名 名 ....
1 2 3 4 5 6 7 8 9 ....
现在我的问题是课程名的内容需要从表中读入,该表中一列标记课程名,一列标记课程是属于哪个学期,每个学期的课程数不相同,只知道<=15,所以我在报表中每个学期预流了15个lable来添入课程名,但下面我就不知道该怎么做了,lable的名字为lable1-lable60,怎样把读入的课程名填入正确的位置呢?我不知道该怎么做。而且我在另一个报表程序中发现如果空出几个lable不添数据,程序就会报错,而我现在这种情况肯定会有空出的lable,我不知道该怎么办, 请高手指点,万分感谢!!!
**课程表
第一个学期
课 课 课 课 课 课 课 课 课 ....
程 程 程 程 程 程 程 程 程 ....
名 名 名 名 名 名 名 名 名 ....
1 2 3 4 5 6 7 8 9 .... 第二个学期
课 课 课 课 课 课 课 课 课 ....
程 程 程 程 程 程 程 程 程 ....
名 名 名 名 名 名 名 名 名 ....
1 2 3 4 5 6 7 8 9 .... 第三个学期
课 课 课 课 课 课 课 课 课 ....
程 程 程 程 程 程 程 程 程 ....
名 名 名 名 名 名 名 名 名 ....
1 2 3 4 5 6 7 8 9 .... 第四个学期
课 课 课 课 课 课 课 课 课 ....
程 程 程 程 程 程 程 程 程 ....
名 名 名 名 名 名 名 名 名 ....
1 2 3 4 5 6 7 8 9 ....
现在我的问题是课程名的内容需要从表中读入,该表中一列标记课程名,一列标记课程是属于哪个学期,每个学期的课程数不相同,只知道<=15,所以我在报表中每个学期预流了15个lable来添入课程名,但下面我就不知道该怎么做了,lable的名字为lable1-lable60,怎样把读入的课程名填入正确的位置呢?我不知道该怎么做。而且我在另一个报表程序中发现如果空出几个lable不添数据,程序就会报错,而我现在这种情况肯定会有空出的lable,我不知道该怎么办, 请高手指点,万分感谢!!!
你可以设label为控件组,你贴下代码?
本来我准备做的方法类似于下面的代码:
Dim ct As Object
Me.Sections.Item("section4").Controls.Item("Label1").Caption = "我是唐磊"
For Each ct In Me.Sections.Item("section1").Controls
If TypeName(ct) = "RptTextBox" Then
Select Case ct.Name
Case "Text1"
ct.DataField = mrc.Fields("nj").Name
Case "Text2"
ct.DataField = mrc.Fields("bj").Name
End Select
End If
Next
可用 on error resume next 语句跳过即可。
Select Case ct.Name
Case "Text1"
ct.DataField = mrc.Fields("nj").Name
Case "Text2"
ct.DataField = mrc.Fields("bj").Name
End Select我是这样导出来,不管字段是否为空,可以的,不过你应该不是这个问题。
sql="-------------"rs.Open sql, connstring, , , adCmdText
Set dr.DataSource = rs
dr.Sections("detail").Controls("text1").DataField = "姓名"
dr.Sections("detail").Controls("text2").DataField = "证号"
dr.Show vbModal
rs.Close
'窗体上放有六十个Label ,Label1 、2 、3.......
'课程表中有“课程名称”、“学期”两个字段
Option Explicit
Public mCnnstring As StringPrivate Sub Command1_Click()
Dim mRst As New ADODB.Recordset
Dim mTemp, mAA, mBB, mCC, mDD, mEE, mFF As Integer
Dim mCtrl As Control
mAA = 0
mBB = 10
mCC = 20
mDD = 30
mEE = 40
mFF = 50
mRst.Open "Select * From 课程表", mCnnstring, adOpenStatic, adLockOptimistic, adCmdText
Do Until mRst.EOF
Select Case mRst("学期")
Case "第一学期"
mAA = mAA + 1
mTemp = mAA
Case "第二学期"
mBB = mBB + 1
mTemp = mBB
Case "第三学期"
mCC = mCC + 1
mTemp = mCC
Case "第四学期"
mDD = mDD + 1
mTemp = mDD
Case "第五学期"
mEE = mEE + 1
mTemp = mEE
Case "第六学期"
mFF = mFF + 1
mTemp = mFF
End Select
For Each mCtrl In Me
If TypeOf mCtrl Is Label Then
If Right(mCtrl.Name, Len(mCtrl.Name) - 5) = CStr(mTemp) Then
If IsNull(mRst("课程名称")) Then
mCtrl.Caption = "" '若字段为空,则赋零长度串值代替
Else
mCtrl.Caption = mRst("课程名称")
End If
End If
End If
Next mCtrl
mRst.MoveNext
Loop
End SubPrivate Sub Form_Load()
mCnnstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" & ";Persist Security Info=False"
End Sub
If Right(mCtrl.Name, Len(mCtrl.Name) - 5) = CStr(mTemp) Then...
小弟是菜鸟,请指教…^_^