(VBA学习小结)用access+excel建立完善的数据透视报表的一点心得
时 间:2011-12-24 12:28:44
作 者:何必见戴 ID:13894 城市:厦门
摘 要:access的数据透视表功能烂透了~难看又难用.如何把现有数据导出到excel,然后让excel自动生成预想的数据透视表报表呢,一些个人心得分享一下.
正 文:
access的数据透视表功能烂透了~难看又难用.如何把现有数据导出到excel,然后让excel自动生成预想的数据透视表报表呢,一些个人心得分享一下.
1、首先啦,先在某一个文件夹建立一个excel模板文件,比如D盘下建立“数据分析.xls”.开启"数据透视表"向导,在数据源中设定源为sheet1的某个列表,然后把数据透视表放到其他工作表中,比如sheet2.这样一个简单的透视表就生成了,随后删除sheet1!!.这步很重要.这样数据源就断开了,在sheet2的Worksheet_Activate事件中写入代码:
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("数据透视表3").PivotCache.Refresh
End Sub
当然也可以设定一些诸如调整格式之类的代码,这个可以通过最简单的录制宏来实现.
2、access中,假定你要汇总的数据源所在的子窗体为 conSubFormName。那么建立一个按钮,在其单击事件中写入如下代码:
Private Sub Command1_Click()
Dim strPathName As String '输出文件路径名
'当前是新记录则提示并退出
If Me.NewRecord Then
MsgBox "当前没有数据可导出!", vbExclamation, "提示"
Exit Sub
End If
'通过文件对话框取得另存为文件名
With FileDialog(2) 'msoFileDialogSaveAs
.InitialFileName = "汇总数据.xls"
If .Show Then strPathName = .SelectedItems(1)
End With
'对话框被取消则退出过程
If strPathName = "" Then
Exit Sub
End If
'如果文件名后没有.xls扩展名则加上
If Not strPathName Like "*.xls" Then strPathName = strPathName & ".xls"
'如果文件已存在,先删除已有文件
If Dir(strPathName) <> "" Then Kill strPathName
FileCopy "d:\数据分析.xls", strPathName
DoCmd.RunSQL "Select * INTO [Sheet1] IN '" & strPathName & " '[EXCEL 8.0;] FROM " & "(" & Me.Controls(conSubFormName).Form.RecordSource & ")"
If MsgBox("是否要打开导出后的excel", vbOKCancel, "提示") = vbOK Then
Call Shell("explorer.exe " & strPathName, vbNormalFocus)
End If
End Sub
如此单击此按钮后,便会在你指定的路径生成含有这个数据源的excel文件,同时因为在新文件上进行了建立了sheet1并给予数值,那么原来的excel表中的数据透视表也就重新获得了数据源.在点击sheet2时会auto refresh.
至此,一个简单的示例就出来了,思路如此,可扩展的vba宏还很多,可以自由发挥.access在有所限制的时候,多想想它和其他office套件的结合,是可以事半功倍的统计分析当前数据的效果.
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(12)-月度结存...(04.16)
- 仓库管理实战课程(11)-人性化操...(04.15)
- 32位的Access软件转化为64...(04.12)
- 【Access高效办公】如何让vb...(04.11)
- 仓库管理实战课程(10)-入库功能...(04.08)
- Access快速开发平台--Fun...(04.07)
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)