ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7541|回复: 10

求解:如何改动外部数据源的数据透视表的sql查询语句

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-6-23 13:42 | 显示全部楼层 |阅读模式

各位仁兄:请教如何改动以外部sql数据库查询结果为数据源的数据透视表的源查询语句。我是找了半天也无法查到入口。

另求完成上述自动刷新的vba程序(是可在vba代码中完成对sql语句的修改的语句,而不是仅仅可刷新)

另求在数据透视表中可完成类似字段筛选的vba代码。

TA的精华主题

TA的得分主题

发表于 2004-6-23 16:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

选中查询出来的数据的任何一个单元格。

右键点击-【编辑查询】 这时会跳出【查询向导】-点击【取消】,这时又会跳出【是否要在microsoft query编辑此查询】-点击【是】,就可以了。

如果要改动查询,可以直接在microsoft query中更改。

如果要在excel中自动取数查询,可以给你一个例子。是取oracle数据库的。

With Sheet2.QueryTables.Add(Connection:="ODBC;DRIVER={ORACLE ODBC DRIVER};SERVER=REPORT;UID=REPUSER;PWD=repuser;DBQ=REPORT", Destination:=Sheet1.Range("A1")) .CommandText = "select * from tkadmin.zz_xmye " .Refresh BackgroundQuery:=False End With

TA的精华主题

TA的得分主题

发表于 2004-6-23 17:04 | 显示全部楼层
以下是引用cpali3023在2004-6-23 13:42:00的发言:

各位仁兄:请教如何改动以外部sql数据库查询结果为数据源的数据透视表的源查询语句。我是找了半天也无法查到入口。

另求完成上述自动刷新的vba程序(是可在vba代码中完成对sql语句的修改的语句,而不是仅仅可刷新)

另求在数据透视表中可完成类似字段筛选的vba代码。

老兄的述说让我懵懂懵懂,尤其是2、3句,能否说得再明确些?

下面代码对你肯定有用:

‘需要首先引用DAO Sub CountCustomersByCountry1() Workbooks.OpenDatabase _ Filename:="C:\Program Files\Microsoft Office\" _ & "Office10\Samples\Northwind.mdb", _ CommandText:="Select * from Customers", _ BackgroundQuery:=PivotCache, _ ImportDataAs:=xlPivotTableReport End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-6-24 08:06 | 显示全部楼层
上述二位,先谢了,我所述可能不是很清楚,其实做普通外部连接查询是很容易的,我所要提的问题是用数据透视表的形式连接外部数据库,也就是说用数据透视表分析操纵直接从外部数据库查询获得的数据,其数据查询的sql语句是通过query写入的,但一旦导出形成数据透视表后,找了半天也未在excel中查找到可在进入query中修改查询语句的方法。

TA的精华主题

TA的得分主题

发表于 2004-6-24 13:31 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-6-24 22:26 | 显示全部楼层
通过录制宏,仅获得增加查询的语句,而无法获得刷新查询的语句(可修改SQL语句的VBA语句),而普通编辑查询可通过录制宏的过程录制,但外部连接形成的数据透视表却无法从EXCEL中进得编辑查询,因此无法录入宏而形成相应的代码.

TA的精华主题

TA的得分主题

发表于 2004-6-25 09:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可否将你的文件和录制的宏上传,这样让人更容易理解你的意图。

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-6-25 12:32 | 显示全部楼层
fenjun兄:你在做数据透视表时,选择获取外部数据的方式试一下,外部数据源你可用SQL或access数据库,进入query 后你先做一下简单查询,再将数据导回到数据透视表,然后在看一下我上面的问题你应会清楚一点。

TA的精华主题

TA的得分主题

发表于 2004-6-25 15:12 | 显示全部楼层

我是将英文的Northwind.mdb数据库放到C:\录制的宏:

Sub Macro4() With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal) .Connection = _ "ODBC;DSN=MS Access Database;DBQ=C:\Northwind.mdb;DefaultDir=C:;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" .CommandType = xlCmdSql .CommandText = Array( _ "SELECT `Alphabetical List of Products`.ProductID, `Alphabetical List of Products`.ProductName, `Alphabetical List of Products`.SupplierID, `Alphabetical List of Products`.CategoryID, `Alphabetical Lis" _ , _ "t of Products`.QuantityPerUnit, `Alphabetical List of Products`.UnitPrice, `Alphabetical List of Products`.UnitsInStock, `Alphabetical List of Products`.UnitsOnOrder, `Alphabetical List of Products`.R" _ , _ "eorderLevel, `Alphabetical List of Products`.Discontinued, `Alphabetical List of Products`.CategoryName" & Chr(13) & "" & Chr(10) & "FROM `C:\Northwind`.`Alphabetical List of Products` `Alphabetical List of Products`" _ ) .CreatePivotTable TableDestination:="[xlsExplorerDemo.xls]第二页!R3C2", _ TableName:="数据透视表3", DefaultVersion:=xlPivotTableVersion10 End With ActiveWorkbook.ShowPivotTableFieldList = True End Sub u7fdlEWm.rar (43.07 KB, 下载次数: 60)

[此贴子已经被作者于2004-6-25 15:16:54编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-8-6 11:51 | 显示全部楼层

事隔一年,终于自己把此问题搞明白了,真是学无止境!

感叹!EXCEL的数据透视的处理能力真是太强大啦!

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 09:31 , Processed in 0.042327 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表