2016-11-21 67 views
0

我使用Excel 2016的獲取&變換連接到一個Postgres數據庫。 嘗試連接ODBC數據源,它要求一個連接字符串。先前在Excel 2013文檔中成功使用的連接字符串失敗。連接字符串ODBC時,Excel 2016獲取和變換

let 
    Source = Odbc.DataSource("dsn=PostgreSQL32", [HierarchicalNavigation=true]), 
    ops_Database = Source{[Name="ops",Kind="Database"]}[Data], 
    public_Schema = ops_Database{[Name="public",Kind="Schema"]}[Data], 
    monthly_stats_View = public_Schema{[Name="monthly_stats",Kind="View"]}[Data] 
in 
    monthly_stats_View 

[HierarchicalNavigation]是不允許的,和Excel建議使用SqlCapabilities,之後他們也失敗了,它要求一個連接字符串。 我試圖用從舊文件的連接字符串,然後輸入此:

provider=Microsoft.Mashup.OleDb.1; 
data source=$EmbeddedMashup(10245e6d-0d7e-4d2c-a98e-ec01c3a30e6c)$;location=monthly_stats; 
extended properties="UEsDBBQAAgAIAJpYcEnkIV3hrAAAPssAAAASABwAQ2 

但它不工作。 我嘗試了串從這裏: https://www.connectionstrings.com/microsoft-ole-db-provider-for-sql-server-sqloledb/ 沒有運氣。

能否請你給我提供的連接字符串的工作示例在Excel 2016讀取ODBC數據源的數據獲取&變換?

回答

1

您運行的是什麼版本的Excel 2016?如果一直沒有更新,也可能會丟失將添加的HierarchicalNavigation選項Odbc.DataSource更新。

1

如果你觸摸連接字符串與Microsoft.Mashup.OleDb.1在裏面你有可能會走上錯誤的道路。如果您具有Power Query連接的工作簿文件,那麼只要您在Excel 2016中打開它,這樣做是否正常?否則,請確保您使用的不是頂級從ODBC選項,而使用Get &變換菜單從ODBC獲取數據。

[HierarchicalNavigation]Odbc.DataSource了支持多月,但今年加入。您可以檢查您的Excel版本獲取& Transform的版本至少爲2.34。

1

首先,你不應該修改這個出現在數據源的屬性(或者可以在數據/連接中找到)的連接字符串。正如Carl所說,不要碰任何類似的東西

provider=Microsoft.Mashup.OleDb.1............. 

它是另一個連接器 - 它將您的表連接到PowerQuery。

你也正在嘗試使用MS SQL Server連接字符串來連接到PostgreSQL。你應該從這裏使用一個字符串: https://www.connectionstrings.com/pgoledb/

要正確連接到你的數據庫,你應該(在Excel中)去數據/新建查詢/從數據庫/從PostgreSQL數據庫。在那裏你將建立連接到數據庫。

然後,使用

PostgreSQL.Database(server as text, optional options as nullable record) as table 

連接。 您可以爲此功能here找到說明。

如果您堅持通過ODBC連接,請注意help爲ODBC提供了另一種語法。數據源:

Odbc.DataSource(connectionString as any, optional options as nullable record) as table 

此外,當您添加一個新的連接「從ODBC」,將要求您連接字符串和憑據。

0

問題解決了這麼簡單... 這是Microsoft bug,它在更新中得到修復。

Sollution是: - 尖安裝Office更新的與Windows一起更新 (開始 - > sttings->更新&安全) - 運行更新 之後獲得&從DB轉換加載數據沒有任何問題