繁体   English   中英

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

[英]Importing Excel spreadsheet data into existing Access DB

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

我有一个Excel 2003电子表格,我想导入该数据库,但是事实证明这很困难。 电子表格由几个选项卡/工作表组成,每个选项卡/工作表代表一台服务器,并具有自己的已安装应用程序列表。 我不确定如何继续进行导入-Access中的“获取外部数据->导入”功能具有“在现有表中”导入选项,但它显示为灰色。 我也不确定如何建立应用程序和服务器之间的关系以将记录导入到INSTALLATIONS表中。

我以前曾愚弄过为Access DB文件添加一些安全性。 我想我删除了所有内容,但也许我没有删除,这就是问题所在吗?

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

服务器101
* Adob​​e Reader 9
* BMC补救用户7.0
* HostExplorer 2008
* Microsoft Office 2003
* Microsoft Office 2007
*记事本++

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

服务器103
* 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(数字)

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

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

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

编辑:SQL查询

因此,要将应用程序导入到“应用程序表”中,首先进行查询:

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表上进行数据输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM