说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何动态更新数据报表

HTML文档下载 WORD文档下载 PDF文档下载
VB如何动态更新数据报表

本文向你介绍如何一个在设计时没有绑定任何数据的数据报表。用这种方法创建的报表能让你不必事先知道数据源中字段的名称。

一般来讲,使用数据报表时,TextBox必须绑定到一个ADO记录集。在某些情况下,你需要在运行时创建一个数据报表,而在设计时你并不知道数据源中字段的名称。
为完成此功能,你必须在工程中添加一个数据报表,该报表中的控件数须同你想获取的字段数一致.然后打开ADO记录集,循环更新数据报表。下面的代码实现了此功能。

首先开始一项新的EXE工程,Form1被自动添加。

在工程菜单中选取引用,然后选择Microsoft ActiveX Data Objects.

从工程菜单中选择“添加数据报表”。如果你你没有看到此选项,你必须在该菜单
中选择“部件...”,然后切换到设计器,从中选取对数据报表的引用。 

将数据报表的名称属性改为DR。 

添加两个Report Label和两个Report TextBox到报表中的“细节”区。 

在窗体Form1中添加一个名为Command1的命令按钮。 

将下述代码放在Form1中: 

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim cmd As New ADODB.Command


Private Sub Command1_Click()

Dim q As Integer

Dim intCtrl As Integer

Dim x As Integer

Dim z As Integer

x = 0

q = 0

z = 0


With DR

.Hide

Set .DataSource = rs

.DataMember = ""

With .Sections("Section1").Controls

For intCtrl = 1 To .Count

If TypeOf .Item(intCtrl) Is RptLabel Then

.Item(intCtrl).Caption = rs.Fields(q).Name & " :"

q = q + 1

End If

If TypeOf .Item(intCtrl) Is RptTextBox Then

.Item(intCtrl).DataMember = ""

.Item(intCtrl).DataField = rs(z).Name

z = z + 1

End If

Next intCtrl

End With

.Refresh

.Show

End With

End Sub


Private Sub Form_Load()


Command1.Caption = "Show Report"


cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Nwind.mdb;"


With cmd

.ActiveConnection = cn

.CommandType = adCmdText

.CommandText = "Select FirstName, Lastname from Employees"

.Execute

End With


With rs

.ActiveConnection = cn

.CursorLocation = adUseClient

.Open cmd

End With


End Sub

本例中用到Northwind数据库,上面的路径可能与你计算机中Northwind的路径不同,改变相关的语句然后运行程序。


备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘