2011-01-12 133 views
0

我設計了一個包含3個表格的Access 2003數據庫:APPLICATIONS,SERVERS和INSTALLATIONS。 APPLICATIONS和SERVERS表中的記錄由合成主鍵(在Access中爲「自動編號」)唯一標識。 INSTALLATIONS表本質上是APPLICATIONS和SERVERS之間的映射表:它是哪些應用程序安裝在哪些服務器上的記錄列表。 INSTALLATIONS表中的記錄也由合成主鍵標識,並且它由各自表中記錄的APPLICATION_ID和SERVER_ID組成。將Excel電子表格數據導入到現有Access數據庫

我有一個Excel 2003電子表格我想導入到這個數據庫中,但是這很困難。電子表格由多個選項卡/工作表組成,每個選項卡代表一個服務器,並具有自己的已安裝應用程序列表。我不確定如何繼續導入 - Access中的「獲取外部數據 - >導入」功能有一個導入「在現有表格」選項,但它變灰。我也不確定如何構建應用程序和服務器之間的關係,以便將記錄導入INSTALLATIONS表。

我以前曾經在Access數據庫文件中添加一些安全性。我認爲我刪除了一切,但也許我沒有,這是造成這個問題?

從Excel電子表格中的一些樣本數據:

SERVER101
*的Adobe Reader 9的
*的BMC Remedy用戶7.0
* HostExplorer 2008
* Microsoft Office 2003的
*的Microsoft Office 2007
*記事本++

S ERVER102
* ADOBE READER 9
*的DameWare迷你遙控
* Microsoft Office 2003的
*的Microsoft .NET Framework 3.5 SP1
*甲骨文9.2

SERVER103
* AWDView
* EXTRA !個人客戶32位
* Microsoft Office 2003的
*的Microsoft .NET Framework 3.5 SP1
* SnagIt的9.1
* WinZip的12。1

的Access數據庫的設計非常簡單:

應用
* APPLICATION_ID(自動編號)
* APPLICATION_NAME(VARCHAR)

服務器
* SERVER_ID(自動編號)
* SERVER_NAME(varchar)

安裝
* INSTALLATION_ID(自動編號)
* APPLICATION_ID(數量)
* SERVER_ID(數量)

回答

0

如果導入到現有的表不工作,我會建議從導入數據「獲取外部數據 - >導入「到新表格中。然後,根據需要運行INSERT INTO查詢以將數據插入到表中。

如果以這種方式導入它們,您必須爲每個工作表執行一次導入。

如果您發佈了一些結構化數據,那麼我可能可以幫助您瞭解應用程序和服務器之間的關係。

編輯:SQL查詢

所以到應用程序導入到應用程序表,首先要查詢:

 
INSERT INTO 
[APPLICATION] (APPLICATION_NAME) 
FROM [Query] ([Field Name]) 

要填充:

 
SELECT * 
FROM [SERVER101] 
UNION 
SELECT * 
FROM [SERVER102] 
UNION 
SELECT * 
FROM [SERVER103] 

然後進入插入運行INSTALLATION表,與每個服務器的表一起工作,你實際上不需要很多連接。 這是我想什麼工作,爲SERVER101表:

 
INSERT INTO 
[INSTALLATION] (APPLICATION_ID, SERVER_ID, ?other fields?) 
FROM [APPLICATION] (APPLICATION_ID, 101, ?other fields?) 
INNER JOIN [SERVER101] 
ON [SERVER101].[Application Name] = [APPLICATION].[APPLICATION_NAME] 

而我只想做服務器表數據錄入,除非你有描述服務器單獨的電子表格。

+0

我在編輯中添加的上述數據是否能爲您提供一些幫助? – Keeb13r 2011-01-12 20:02:50

相關問題