本文演示如何使用数据透视表 Office Web 组件 Visual Basic 窗体上显示的信息。
在 Office Web Components 是一组控件,Office 数据的浏览控件。因为 Web 组件是控件,您可以将它们放在 Visual Basic 窗体上,并自动显示的数据组件。
生成自动化示例
- 启动 Visual Basic 并创建一个新的标准 EXE 项目。 默认情况下创建 Form1。
- 下 Project|References,添加到 Microsoft ActiveX 数据对象 2.1 库 的引用,然后单击 确定。
- 按 CTRL + T 键显示 添加组件 对话框。添加 Microsoft Office Web Components,然后单击 确定。
注: Office XP 包括 Office 2000 和 Office XP Web 组件。若要将 Office 2003 Web 组件添加 Microsoft Office Web Components 11.0 库。若要将 Office 2000 Web 组件添加 Microsoft Office Web Components 9.0 库。若要使用 Office XP Web 组件,添加 Microsoft Office Web Components 10.0 库。 - 将数据透视表添加到窗体。
- 在 Form1 的代码窗口中插入以下代码:
Option Explicit
Dim cnnConnection As Object
Private Sub Form_Load()
Dim strProvider As String
Dim view As PivotView
Dim fsets As PivotFieldSets
Dim c As Object
Dim newtotal As PivotTotal
strProvider = "Microsoft.Jet.OLEDB.4.0"
' Create an ADO object
Set cnnConnection = CreateObject("ADODB.Connection")
' Set the provider and open the connection to the database
cnnConnection.Provider = strProvider
cnnConnection.Open "C:\pivottest.mdb"
' Set the pivot table's connection string to the cnnConnection's connection string
PivotTable1.ConnectionString = cnnConnection.ConnectionString
' SQL statement to get everything from table1
PivotTable1.CommandText = "Select * from table1"
' Get variables from the pivot table
Set view = PivotTable1.ActiveView
Set fsets = PivotTable1.ActiveView.FieldSets
Set c = PivotTable1.Constants
' Add Category to the Row axis and Item to the Column axis
view.RowAxis.InsertFieldSet fsets("Category")
view.ColumnAxis.InsertFieldSet fsets("Item")
' Add a new total - Sum of Price
Set newtotal = view.AddTotal("Sum of Price", view.FieldSets("Price").Fields(0), c.plFunctionSum)
view.DataAxis.InsertTotal newtotal
view.DataAxis.InsertFieldSet view.FieldSets("Price")
' Set some visual properties
PivotTable1.DisplayExpandIndicator = False
PivotTable1.DisplayFieldList = False
PivotTable1.AllowDetails = False
End Sub
Private Sub Form_Terminate()
' Remove reference to the ADO object
Set cnnConnection = Nothing
End Sub
Private Sub PivotTable1_DblClick()
Dim sel As Object
Dim pivotagg As PivotAggregate
Dim sTotal As String
Dim sColName As String
Dim sRowName As String
Dim sMsg As String
' Get the selection object you double-clicked on
Set sel = PivotTable1.Selection
' If it is a aggregate, you can find information about it
If TypeName(sel) = "PivotAggregates" Then
' Select the first item
Set pivotagg = sel.Item(0)
' Display the value
MsgBox "The cell you double-clicked has a value of '" & pivotagg.Value & "'.", vbInformation, "Value of Cell"
' Get variables from the cell
sTotal = pivotagg.Total.Caption
sColName = pivotagg.Cell.ColumnMember.Caption
sRowName = pivotagg.Cell.RowMember.Caption
' Display the row and column name
sMsg = "The value is " & sTotal & " by " & sRowName & " by " & sColName
MsgBox sMsg, vbInformation, "Value Info"
End If
End Sub
- 接下来,创建使用 Microsoft Access 的示例数据库。 启动 Access,然后选择 空 Access 数据库。将文件另存为 c:\pivottest.mdb。双击 创建表设计视图中。输入以下数据:
- 关闭窗口并将更改保存为 Table1。用于创建一个键,选择 否。双击 Table1,然后输入以下数据:
收起该表格展开该表格
| 项目 | 类别 | 价格 |
|---|
| 钉子 | 硬件 | 5 |
| 衬衫 | 服装 | 23 |
| 锤子 | 硬件 | 16 |
| 三明治 | 食品 | 5 |
| pants | 服装 | 31 |
| 饮料 | 食品 | 2 |
- 关闭 Access 保存该文件。
- 按 F5 键运行该项目。在运行,后应填充数据透视表。双击包含数据的单元格显示单元格和单元格的值列和行的名称。
有关 Office 自动化的详细信息,请访问 Microsoft Office 开发支持网站,网址:
文章编号: 235542 - 最后修改: 2006年10月23日 - 修订: 3.5
这篇文章中的信息适用于:
- Microsoft Office PivotTable Component 9.0
- Microsoft Office XP Web Components
- Microsoft Office 2003 Web Components
| kbmt kbautomation kbhowto kbweb KB235542 KbMtzh |
机器翻译注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版:
235542
(http://support.microsoft.com/kb/235542/en-us/
)
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。