2014-03-12 31 views
1

我遇到了鏡像數據集的問題。出現這種情況是因爲數據模型在幾個月前被切換,而我剛剛被分配到這個項目中,該項目已經完成了一個新的應用程序和數據模型。如何從MS Access DB中刪除鏡像數據集?

我的任務是從舊的MS Access應用程序到新導入的所有數據和這裏的地方錯誤的源極。舊數據模型的編寫方式是每個數據集都存儲爲鏡像對應的數據集。想象一下這樣的數據庫表:

pk | A | B

1 |你好|世界

2 |世界|你好

我通過通過Excel和VBA編碼一個自制的升級過程中導入的數據和工作的罰款。分段是必要的,因爲我想創建插入語句,因此必須將所有舊ID,名稱......映射到新聞。

雖然測試的導入已經完成後的應用程序時,我意識到,GUI顯示所有數據集的兩倍。 (它被顯示兩次,而不是一次,然後再次以鏡像形式顯示的原因是我們填充顯示結果的列表框的方式)

我找到了鏡像數據中的錯誤原因,現在想擺脫它。我的第一個想法很長,可能過於複雜,這就是爲什麼我在這裏張貼,希望找到一個更短的解決方案。

所以,我的想法是如下,將完全使用VBA代碼:

  1. 灌裝記錄與SELECT * FROM mirroredDataTable
  2. 寫的SQL語句,並檢查總記錄中的語句結果> 1爲記錄集中的每個記錄從1開始)
  3. 如果resultCount大於1,那麼將其中一個ID寫入新記錄集或數組中
  4. 解析來自4.)的recordSet/array再次爲每個ID在那裏我創建一個DELETE語句
  5. ???
  6. 利潤

現在我已經有2中的SQL語句)的想法,但我開始之前,我只是想確保有,我還沒有考慮過沒有「簡單」的方法還是隻是忽略了。

將不勝感激任何幫助/信息/提示,你可以提供。

PS:不是重新設計的臺詞之間的整個數據模型或東西(不是我的決定)

+0

可能重複的[如何在MS Access中交互?](http://stackoverflow.com/questions/22347535/how-to-intersect-in-ms-訪問) –

回答

1

感謝@Gord湯普森我能解決一個純粹的SQL基礎上,這個問題的選項。請參閱此子線程的詳細解決方案的答案:How to INTERSECT in MS Access?