1,216
社区成员
发帖
与我相关
我的任务
分享
Private Sub DataReport_Initialize()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i As Integer
Dim mLeft As Long
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=" & App.Path & "\db1.mdb"
rs.Open "select * from tb1", cn, adOpenKeyset, adLockOptimistic
Set DataReport1.DataSource = rs
'以上部分是设置 DataReport 的数据源
Dim dTextCol As New Collection '声明一个控件集合
Dim Ctl As Object
'根据情况,预先在报表上添加多个相关控件
'下面以RptTextBox控件为例
'先将所有TextBox(RptTextBox) 控件绑定到随便某一字段
For Each Ctl In DataReport1.Sections.Item("Section1").Controls
If TypeName(Ctl) = "RptTextBox" Then
Ctl.DataField = rs.Fields.Item(0).Name
dTextCol.Add Ctl
End If
Ctl.Visible = False
Next
'循环记录集,重新绑定字段
For i = 0 To rs.Fields.Count - 1
With dTextCol.Item(i + 1)
.Visible = True
.DataField = rs.Fields.Item(i).Name
.Left = mLeft
mLeft = .Left + .Width
'控件定位。还有Width等等比较复杂,要根据具体情况写代码判断
End With
Next i
DataReport1.Sections.Item("Section1").Height = 400
End Sub