设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 7779|回复: 13

[查询] 【Access小品】国中之国 -- Excel表局部数据导入示例

[复制链接]
发表于 2015-4-30 16:01:52 | 显示全部楼层 |阅读模式
本帖最后由 todaynew 于 2015-4-30 16:39 编辑

  世界上有四个国家是国中之国:梵蒂冈、圣马力诺、莱索托王国、摩纳哥,所谓国中之国是指其边界线为一国所包围。这都是一些比较特殊的小国,其形成的历史在此不论。

  今天,版友chinasa同志问是否可以导入Excel表中的一个局部的数据块。我觉得这就如同将Excel表中的局部数据,看成是国中之国一样。如果整体上Excel表能看成一国,并能处理的话,其国中之国当然也能处理。就此问题的处理技巧有很多种,我觉得可以借用红尘如烟同志所倡导的“一句查询代码实现Excel数据导入导出”的方法,这一方法简洁明快。只是在对待本问题时,需要经过一些变形的处理。

  红尘如烟同志的方法的核心是一个Select语句,这个语句大体写为如下:

  Select * FROM [Excel 8.0;DATABASE=E:\桌面\测试数据.xls].[Sheet1$]

  暂且不论红尘如烟同志对FROM子句的变形写法,重点关注的是[Sheet1$]。也就是说红尘如烟同志将[Sheet1$]看成一国,也就是一个数据集。那么由此推论,[Sheet1$].[A3:C20]做为国中之国,也就是一个数据子集,也是可行的。这样就可以解决在一个Sheet表中,分块来导入不同数据的问题了。也就是在一个Sheet中你尽可以放入多个表,然后用Access分别读取它们。甚至你如果需要,还可以读取一个表的部分数据。

  不过,通常我们是按表(指Sheet中的某个完整的表)来全部读取数据的,那么我们还可以更简单一些。我们可以这样来做,先在Excel中选择一个表(包括字段名和记录,如果记录不能完全确定条数,可以选择的空白记录条数多一些),然后在表的左上角的名称框中为这个选中的区域命名,比如我们命名这个区域为“Data1”。需要注意的是,Excel的Name对象(实际是一个由名称命名的数据区域),并不从属于Sheet对象。因此,调用这个对象时,只需要指明其名称即可。由此,我们的Select语句就可以这样来写了:


  Select * FROM [Excel 8.0;DATABASE=E:\桌面\测试数据.xls].[Data1]

  这样我们就可以轻松愉快的读到国中之国的数据了。至于你想进一步将这些数据导入到Access中的某个对应数据表中,只需要INSERT INTO一下。这很简单,相信你懂的。


示例:


视图:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

发表于 2015-4-30 16:11:10 | 显示全部楼层
斑竹的思维就是有品位.
看标题让我想到的是城中村.
这图实在加载不上,个头是不挺大?
 楼主| 发表于 2015-4-30 16:23:16 | 显示全部楼层
风中漫步 发表于 2015-4-30 16:11
斑竹的思维就是有品位.
看标题让我想到的是城中村.
这图实在加载不上,个头是不挺大?

你的网速太慢了,找电信投诉。
发表于 2015-4-30 16:27:53 | 显示全部楼层
印象中TransferSpreadSheet也是可以导入区域的。
不过个人还是不建议这样处理,毕竟标题、合并单元格等等把一个好好的标准表改得乱七八糟,始终不是一件好事。

点击这里给我发消息

发表于 2015-4-30 16:36:39 | 显示全部楼层
看老汉的贴,就是看小说。反而把正题给忘记了:)
发表于 2015-5-1 15:38:34 | 显示全部楼层
我来学习学习,到处看看
发表于 2015-5-2 21:34:21 | 显示全部楼层
谢谢,下载收藏,免需要时到处找。

点击这里给我发消息

发表于 2015-5-4 20:24:54 | 显示全部楼层
收了,不错的想法
发表于 2015-7-20 14:32:06 | 显示全部楼层
学习学习,谢谢分享!
发表于 2015-7-20 14:32:46 | 显示全部楼层
学习学习,谢谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-26 16:22 , Processed in 0.102026 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表