2014-04-29 82 views
1

我有一個訪問數據庫,我們使用簡單的報告解決方案,它通過ODBC鏈接從遠程數據庫中提取數據。數據倉庫提供商最近爲其所有表格添加了一個新的數據字段,它們被格式化爲'BIGINT'MS - 訪問BigInt SQL SERVER問題

現在訪問將所有記錄顯示爲已刪除,因爲它無法處理BIGINT鏈接表。

由於數據倉庫不會改變他們的表有無論如何,我可以讓MS-Access正確顯示並忽略表中的'BIGINT'字段鏈接?

我有通過複製整個數據倉庫減去此列的MySQL數據庫每天這是很不理想解決此在這個時刻......

我不能爲我的工作生活這一點。

回答

1

此鏈接顯示的數據加載到本地表與字符串的數據類型:

http://social.msdn.microsoft.com/Forums/office/en-US/fb6f99ec-2ed7-487b-ba39-0777a0b44d5f/the-bigint-problem?forum=accessdev

也許考慮的MS Access的用處在這裏受到限制,因爲可以支付使用SQL Server的將來你將繼續遇到這類問題。有什麼理由不能直接使用數據倉庫嗎?

您也可以考慮使用.ADP(MS Access的文件類型),它具有與SQL Server數據庫(無ODBC flimflammery)的本機OLE DB連接,但也包括所有常用的表單和報告。

ADP's已被棄用,但我已與他們取得了巨大成功。

+0

感謝您的回覆,SQL服務器是我同意我們使用的數據倉庫的最佳停靠位置幾乎包含了我們所做的所有操作,並且我們可以直接運行的報表有限。它進入訪問是因爲訪問是將我們依賴的衆多系統連接在一起的最簡單的接口。 SQL服務器不允許訪問所具有的靈活性。 –

+0

我會看.ADP,如果這不起作用,我期望不得不重新整理我們的整個解決方案,並建立一個全新的解決方案,雖然這是最終的目標不是我想在此時進行的... –

+0

由於ADP在OLE DB上運行而不是Jet,所以大部分情況下都會在這個平臺上重寫,只是看一看。 –

0

這是一箇舊線程,但您可以創建視圖並將bigint轉換爲int,然後Access將鏈接到它。

格雷格

0

這是一個古老的線程,但:

鑄造你的bigintint有人曾建議是行不通的,如果任何在你bigint列的值比最大更大值爲int(如果它們都不大於int的最大值,那麼它會讓人想知道爲什麼首先使用bigint)。

MS Access(從Access 2000開始)確實有一個decimal數據類型,該數據類型適用於最多可達SQL Server bigint等的最大大小的數字。所以如果你讓你的MS Access字段的類型爲decimal,它可以處理任何SQL Server bigint可以拋出的東西。在你採取從SQL Server數據庫中的數據到您的MS Access數據庫,你需要的東西,一路上程序來完成從SQL Server啜你bigint價值觀和噴他們到MS Access作爲decimal

2

而不是使用過程鏈接表,只需在Access中編寫一個通路查詢。最終你的BigInt將CONVERT轉換爲字符串或Integer,具體取決於內容。

+0

視圖可能有效,具體取決於列的重要性。添加索引也可能很重要。 – Fionnuala