2014-01-21 50 views
0

我在MS Access中有一個定期更新的表。 這些更新發生後,導出完成,所以我可以得到一個Excel表格更新整個表。將新的Excel工作表行導入MS Access

但現在我需要做相反的事情。有些人會打開這個文檔並手動添加行,並且我需要找到一些方法將這些新行添加到Access表中,並用標識符來說明它是否是手動輸入的。

我的表格包含一個「學生」數據庫。每行對應一個「名稱」,所以當有人在工作表中手動添加一個新名稱時,會有一個新學生,所以我需要將其行移到新表中的數據庫中。我還需要那些手動輸入的學生在不知何故發生變化時進行更新。

我怎麼能在Access中做到這一點?下面的一些例子如下:

Access表 - 表1

 Name  | Country | Grades | IDNumber | Identifier 
---------------------------------------------------------------------------- 
Scott   | USA  | 8, 9, 10 |  1000  | Automatic 
Wolverine  | Indonesia | 2, 5, 7 |  2000  | Automatic 
Nightcrawler  | Brazil | 10, 0, 6 |  3000  | Automatic 
Jean Grey  | China  | 10, 10, 10 |  4000  | Automatic 
Bobby   | China  | 8, 7, 10 |  5000  | Automatic 
Kitty   | USA  | 9, 9, 9 |  6000  | Automatic 

Excel表單從訪問表中導出:

 Name  | Country | Grades | IDNumber | Identifier 
---------------------------------------------------------------------------- 
Scott   | USA  | 8, 9, 10 |  1000  | Automatic 
Wolverine  | Indonesia | 2, 5, 7 |  2000  | Automatic 
Nightcrawler  | Brazil | 10, 0, 6 |  3000  | Automatic 
Jean Grey  | China  | 10, 10, 10 |  4000  | Automatic 
Bobby   | China  | 8, 7, 10 |  5000  | Automatic 
Kitty   | USA  | 9, 9, 9 |  6000  | Automatic 

與adicional數據Excel工作表,需要加以導入Access表:

 Name  | Country | Grades | IDNumber | Identifier 
---------------------------------------------------------------------------- 
Scott   | USA  | 8, 9, 10 |  1000  | Automatic 
Wolverine  | Indonesia | 2, 5, 7 |  2000  | Automatic 
Nightcrawler  | Brazil | 10, 0, 6 |  3000  | Automatic 
Jean Grey  | China  | 10, 10, 10 |  4000  | Automatic 
Bobby   | China  | 8, 7, 10 |  5000  | Automatic 
Kitty   | USA  | 9, 9, 9 |  6000  | Automatic 
Tempest   | Spain | 10, 9, 2 |  7000  | Manual <-- Who added will add the word "Manual" to it! 
Magneto   | USA  | 8, 0, 9 |  8000  | Manual 
Lizard   | India | 1, 3, 6 |  9000  | Manual 

表出現在附加到它的工作表中的新值 - 表2:

 Name  | Country | Grades | IDNumber | Identifier 
-------------------------------------------------------------------------- 
Tempest   | Spain | 10, 9, 2 |  7000  | Manual 
Magneto   | USA  | 8, 0, 9 |  8000  | Manual 
Lizard   | India | 1, 3, 6 |  9000  | Manual 

謝謝!

回答

1

您可以在Access中創建指向Excel電子表格的鏈接表。

Link to data in Excel

然後,您可以在Access中創建,抽出作爲在Excel中的數據行的查詢,不會出現在相應的Access表

Access表:

AccessTable.png

Excel工作表:

ExcelData.png

在Access鏈接表:

LinkedTable.png

查詢設計:

QueryDesign.png

查詢結果:

QueryResults.png

+0

謝謝,@Gord。有沒有辦法將一個固定值附加到列「標識符」(創建用於識別數據是否是手動的),爲每個找到的行添加「手動」?像Gord行中的「Manual」值一樣? – ZeldaElf

+0

@ZeldaElf你可以做些[this](http://i.stack.imgur.com/uy7Aw.png)。 –

+0

哇,真好!我會做的。如果我想在訪問表中創建這些「自動」(即使所有的「標識符」值仍然爲空),這很容易嗎? – ZeldaElf

0

您可以使用鏈接表(將Excel導入爲鏈接表,而不是數據)。這會導致它將Excel文檔中所做的更改直接反映到您的Access環境中。

然後,每當你的願望,你可以運行一個簡單的SQL語句,因爲這樣的:

Insert Into [Students]([Name],[Country],[Grades],[IDNumber]) 
Select [Name],[Country],[Grades],[IDNumber] from [LinkedTable] 
Where [IDNumber] Not In (Select [IDNumber] from [Students]) 

假設的IDNumber是主鍵。