将Excel电子表格数据导入现有Access DB

时间:2011-01-12 19:29:52

标签: database excel-2003 ms-access-2003 import-from-excel

我设计了一个包含3个表的Access 2003 DB:APPLICATIONS,SERVERS和INSTALLATIONS。 APPLICATIONS和SERVERS表中的记录由合成主键唯一标识(在Access中,"自动编号")。 INSTALLATIONS表本质上是APPLICATIONS和SERVERS之间的映射表:它是在哪些服务器上安装了哪些应用程序的记录列表。 INSTALLATIONS表中的记录也由合成主键标识,它由各自表中记录的APPLICATION_ID和SERVER_ID组成。

我有一个Excel 2003电子表格我想导入到这个数据库中,但它证明很难。电子表格由多个选项卡/工作表组成,每个选项卡/工作表代表一个服务器,其中包含已安装应用程序的列表。我不确定如何继续导入 - "获取外部数据 - >进口" Access中的功能具有导入功能"在现有表格中#34;选项,但它是灰色的。我还不确定如何构建应用程序和服务器之间的关系,以便将记录导入INSTALLATIONS表。

我以前曾为Access DB文件添加一些安全性而上当了。我想我删除了所有内容,但也许我没有,而且导致了这个问题?

Excel电子表格中的一些示例数据:

SERVER101
* Adob​​e Reader 9
* BMC Remedy用户7.0
* HostExplorer 2008
* Microsoft Office 2003
* Microsoft Office 2007
* Notepad ++

SERVER102
* Adob​​e Reader 9
* DameWare迷你遥控器
* Microsoft Office 2003
* Microsoft .NET Framework 3.5 SP1
* Oracle 9.2

SERVER103
* AWDView
*额外!个人客户端32位
* Microsoft Office 2003
* Microsoft .NET Framework 3.5 SP1
* Snagit 9.1
* WinZip 12.1

Access DB设计非常简单:

应用
* APPLICATION_ID(自动编号)
* APPLICATION_NAME(varchar)

服务器
* SERVER_ID(自动编号)
* SERVER_NAME(varchar)

安装
* INSTALLATION_ID(自动编号)
* APPLICATION_ID(号码)
* SERVER_ID(数字)

1 个答案:

答案 0 :(得分:0)

如果导入现有表格不起作用,我建议将“获取外部数据 - >导入”中的数据导入新表。然后,运行INSERT INTO查询以根据需要将数据插入到表中。

如果以这种方式导入,则必须按工作表进行一次导入。

如果您发布一些结构数据,那么我可以帮助解决应用程序和服务器之间的关系。

编辑:SQL查询

因此,要将应用程序导入APPLICATION表,请先进行查询:

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

然后运行INSERT INTO:

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

要填充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]

我只会在SERVER表上进行数据输入,除非您有一个描述服务器的单独电子表格。