[英]Importing data from access into an open excel spreadsheet? (Excel VBA)
[英]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
* Adobe Reader 9
* BMC补救用户7.0
* HostExplorer 2008
* Microsoft Office 2003
* Microsoft Office 2007
*记事本++
服务器102
* Adobe 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.