2011-01-12 207 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

相关问题