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控件为例 For Each Ctl In DataReport1.Sections.Item("Section1").Controls If TypeName(Ctl) = "RptTextBox" Then Ctl.DataField = rs.Fields.Item(0).Name '先将所有TextBox(RptTextBox) 控件绑定到某一字段 dTextCol.Add Ctl End If Ctl.Left = 0 Ctl.Top = 0 Ctl.Height = 400 Ctl.Width = 1500 Ctl.Visible = False Next Ctl 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 = 400End Sub
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控件为例
For Each Ctl In DataReport1.Sections.Item("Section1").Controls
If TypeName(Ctl) = "RptTextBox" Then
Ctl.DataField = rs.Fields.Item(0).Name '先将所有TextBox(RptTextBox) 控件绑定到某一字段
dTextCol.Add Ctl
End If
Ctl.Left = 0
Ctl.Top = 0
Ctl.Height = 400
Ctl.Width = 1500
Ctl.Visible = False
Next Ctl 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 = 400End Sub
晕了,是activ report啊~~看错!