如何在powerpivot数据模型中分配查询的“表名”

问题描述

我正在使用PowerPivot,并使用下面的代码在数据模型中创建一个表:

Set ObjConn = ActiveWorkbook.Connections.Add2( _
    Name:= "SomeConnName",_
    Description:="DescSomeConn",_
    ConnectionString:="OLEDB;Provider=OraOLEDB.Oracle;Data Source=XXXX;User ID=YYYY;Password=ZZZ;Persist Security Info=true",_
    CommandText:="SELECT * FROM mytable",_
    lCmdtype:=xlCmdsql,_
    CreateModelConnection:=True,_
    ImportRelationships:=False)

它工作得很好,除了它总是创建名为“ Query”的表。 我已经在Microsoft文档中进行了搜索,并且以这种方式在Google上进行了过多搜索,因此我无法直接找到在何处或如何设置表/查询名称..或在创建后如何重命名它。 感谢您的帮助。

编辑

由于使用@QHarr指南,我更改了此方法

ActiveWorkbook.Queries.Add Name:="QueryXY09",Formula:= _
    "let" & Chr(13) & "" & Chr(10) & " Source = OleDb.DataSource(""provider=OraOLEDB.Oracle.1;data source=MyDWHConn;"",[Query=""SELECT * FROM mytable""])" _
    & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    Source"
    
ActiveWorkbook.Connections.Add2 _
    "Query - QueryXY09","Connection to the 'QueryXY09' query in the workbook.",_
    "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=QueryXY09;Extended Properties=",_
    """QueryXY09""",6,True,False

确定目标,现在我可以设置连接的名称。 但这代表两个问题。第一次数提取显然很慢,似乎正在使用.net库,而且看起来像是一步。 其次,现在我没有存储密码的位置,也没有连接接受这种方法用户ID /密码。最后一个最令人担忧,因为这的目的当然是数据提取自动化。但是,我注意到,当我将文件移至测试服务器时,它会提示我一次输入用户名/密码,然后我关闭了所有内容,再次打开并没有提示。那么,密码保存在哪里?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)