2012-06-25 70 views
1

我在MS Access中的應用程序中有一個異常大的表。它猛烈地破壞了一些規範化的規則,但對於這個小型應用程序來說,它是很好的。它有大約100個字段(列)。我已閱讀limitation specifications here ,但無法看到我違反了這些規定。大部分字段都是文本字段,範圍從幾個字到幾個句子。我的問題是:記錄太大MS Access運行時錯誤

  1. 有沒有辦法得到比「記錄太大」更具描述性的錯誤,以便我可以確定如何使它更小?

  2. 將我的'文本'字段更改爲'備忘錄'字段會減少我的記錄大小?

乍看之下,所有可能違反了規範,這:在記錄(不包括備註和OLE對象字段)時,字段的UnicodeCompression屬性設置爲Yes :: 4000字符數
似乎是最有可能的罪魁禍首。

  1. 這種違規行爲可能會導致「記錄過大」運行時錯誤(填寫表單時)。

  2. 將UnicodeCompression屬性設置爲「否」對性能有正面或負面影響?

回答

1

備註字段可能是答案。記錄限制規則不包括備忘錄數據類型。

+0

我只是複製我的數據在和切換字段「備忘錄」而不是「文本」。嘗試保存表格設計時,出現'定義的字段過多'錯誤。我在256的限制之下。你知道是否有一個表允許的最大數量的備註字段? – Scotch

+2

我以前的評論的問題/解決方案:即使表中的字段數少於255,Microsoft Access用於跟蹤表中字段數的內部列數已達到255。這可能會發生,因爲Microsoft Access在刪除字段時不會更改內部列計數。 Microsoft Access還爲您修改屬性的每個字段創建一個新字段(將內部列數增加1)。對我來說,解決方案就是將表格複製到新的表格中,然後重新命名以匹配原件。 – Scotch

+0

@Scott「在刪除字段時不會更改內部列的數量」 - 您是否嘗試過使用db compact和修復,因爲這可能會排除該問題? –

2

似乎字段的限制是2000字節(備註和OLE不計算在此限制內)。大約有100個字段,你可能會達到這個限制。

解決方案是規範化該表,或將某些字段轉換爲備註字段。

+1

我想我會複製表格並將很多字段轉換爲「備忘錄」。這將爲我省去重新編寫查詢和表單代碼的麻煩(如果我規範化了它,我將不得不這樣做)。由於這是一個小型的一次性項目,而且不太可能增長,我只是想咬下子彈而不讓它正常化。 – Scotch

0

也許爲時已晚,但我解決了這個問題壓縮/練習器的數據庫文件