2013-05-01 39 views
0

我們從輸出爲Excel工作表的在線表單中爲我們的數據庫獲取新數據。爲了規範化數據庫的數據,我想將多個列組合成一行。將Excel電子表格中多列中的字段導入Access中的單行

例如,我想數據是這樣的:

ID |家庭電話|手機|工作電話

1 .... 555-1234 ...... 555-3737 ... 555-3837

要成爲這樣的:

PhoneID | ID |電話號碼|手機類型

1 ............ 1 ....... 555-1234 .......首頁

2 ....... ..... 1 ....... 555-3737 .......單元格

3 ............ 1 ....... 555 -3837 ......工作

要導入數據,我有一個按鈕可以找到電子表格,然後運行一堆查詢來添加數據。

如何編寫查詢以將此數據追加到現有表的末尾而不會結束重複記錄?從網站中提取的數據全部存儲和存檔在一張Excel表格中,該表格將在不刪除舊數據的情況下進行更新(我們不希望失去這個額外的備份),所以每次導入時,我都需要忽略所有的數據先前輸入的數據。

我能夠做一個查詢,從原始電子表格中列出正確的所有東西(我將外部電子表格放入Access的非標準化表格中進行測試),但是當我嘗試將其附加到電話號碼錶格中時,它會重複添加所有數據。我可以刪除它與查詢刪除重複的數據,但我寧願不離開它那樣。

回答

1

有幾種可能的方法來解決這個問題;您選擇哪一個可能取決於數據集相對於正在處理的更新數量的大小。基本上,選項是: 1)向目標表中添加一個唯一索引,以便Access將拒絕添加重複記錄。您需要處理可能發生的警告(「由於索引違規,訪問無法添加xxx記錄」或類似內容)。 2)將傳入數據導入登臺表,然後將登臺表外部連接到目標表,並追加只有目標表中的鍵字段爲空的記錄(即,目標表中沒有匹配的記錄)。

我以前使用過這兩種方法 - 我喜歡索引方法,因爲它的簡單性,我喜歡它的靈活性的分段方法,因爲如果需要的話,您可以在傳入數據之前做很多事情。

-3

您可以在存儲查詢數據的表上運行刪除查詢,然後運行導入。

假設數據只被更新。

刪除查詢將刪除所有記錄,然後您可以運行導入重新填充表 - 因此不會有重複。

+0

不知道爲什麼這已被標記。適用於我 – rob 2014-08-20 09:19:50

相關問題