Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

Access VBA把数据库中数据转化为Excel 数据透视表

LMS  发表于:2017-08-07 17:43:43  
复制

本人在一个Access VBA 的项目中,需要把Access 表中的数据导出到Excel中,而这个导出的数据是经过数据透视处理的,统计部分的数据,部分数据而不需统计的。
下面是我做了一个简单的sample: 有原始数据和期望的结果格式。
点击下载此附件

求大神帮我看看在Access 中如何用VBA代码实现 !


代码如下:

实现代码


当第一次导出数据后,第二次开始导出数据时,创建数据透视表时报错:error 91 对象变量或With 块变量未设置...

  ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    strSourceData, Version:=xlPivotTableVersion12).CreatePivotTable _
    TableDestination:="Format_PivotTable!R1C1", TableName:=rptName, DefaultVersion:= _
    xlPivotTableVersion12
    

这行代码报错,请各位大神帮我看看实现的代码哪里遗漏了或写错了。

 

Top
刘梅胜 发表于:2017-08-08 09:11:29
自己先顶贴

大海 发表于:2017-08-09 07:54:17
把数据写入excel,这个问题不是很难。

芊芊 发表于:2017-08-09 11:20:40

如果Access VBA 的项目中有满足要求的数据表,在EXCEL中可直接读入数据进行数据透视!

Private Sub 读取ACCESS数据()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String
Dim strcnn As String

Sheet16.Cells.ClearContents
    Set cnn = New ADODB.Connection
    Set rst = New ADODB.Recordset

    sql = " select * from ACCESS数据表名称"
    strcnn = "provider=MicroSoft.ACE.OLEDB.15.0;Data Source=" & ThisWorkbook.Path & "\ACCESS数据库名称.accdb"


    cnn.Open strcnn


    rst.Open sql, cnn, adOpenKeyset, adLockOptimistic
    If rst.RecordCount < 1 Then
        MsgBox "数据表 没有数据记录!", vbCritical, "提示"
        Exit Sub
    End If

’写入字段名称
    For I = 0 To rst.Fields.Count - 1
        ActiveSheet.Cells(1, I + 1).Value = rst.Fields(I).Name
    Next
’复制数据    
    Range("A2").CopyFromRecordset rst


    MsgBox "数据读入完成!", vbInformation, "提示"


End Sub





刘梅胜 发表于:2017-08-10 13:58:48

从Excel 读取ACCESS数据() 这种方法不能符号我们需求的做法。



刘梅胜 发表于:2017-08-10 14:16:56
这个文件基本解决,但出现另外问题: 详细在:http://www.accessoft.com/bbs/showtopic.asp?ID=27869&BoardID=17

cspa 发表于:2017-08-10 16:46:12

问题解决了。在access中使用其他office对象一定要实例化并显式引用。

供参考:点击下载此附件



刘梅胜 发表于:2017-08-11 08:23:50

感谢 “cspa” 这位大神的帮助解答,长知识了。



总记录:7篇  页次:1/1 9 1 :