Office中国论坛/Access中国论坛
标题:
【Access小品】国中之国 -- Excel表局部数据导入示例
[打印本页]
作者:
todaynew
时间:
2015-4-30 16:01
标题:
【Access小品】国中之国 -- Excel表局部数据导入示例
本帖最后由 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一下。这很简单,相信你懂的。
示例:[attach]56250[/attach]
视图:
[attach]56251[/attach]
作者:
风中漫步
时间:
2015-4-30 16:11
斑竹的思维就是有品位.
看标题让我想到的是城中村.
这图实在加载不上,个头是不挺大?
作者:
todaynew
时间:
2015-4-30 16:23
风中漫步 发表于 2015-4-30 16:11
斑竹的思维就是有品位.
看标题让我想到的是城中村.
这图实在加载不上,个头是不挺大?
你的网速太慢了,找电信投诉。
作者:
roych
时间:
2015-4-30 16:27
印象中TransferSpreadSheet也是可以导入区域的。
不过个人还是不建议这样处理,毕竟标题、合并单元格等等把一个好好的标准表改得乱七八糟,始终不是一件好事。
作者:
tmtony
时间:
2015-4-30 16:36
看老汉的贴,就是看小说。反而把正题给忘记了:)
作者:
xzj5324269
时间:
2015-5-1 15:38
我来学习学习,到处看看
作者:
goway
时间:
2015-5-2 21:34
谢谢,下载收藏,免需要时到处找。
作者:
zhidao
时间:
2015-5-4 20:24
收了,不错的想法
作者:
nncchh
时间:
2015-7-20 14:32
学习学习,谢谢分享!
作者:
nncchh
时间:
2015-7-20 14:32
学习学习,谢谢分享!
作者:
c68678
时间:
2015-10-18 19:18
嗯看,学习了
作者:
WFH6898
时间:
2015-11-12 12:45
学习了
作者:
utalents
时间:
2018-6-6 23:52
学习了 ,谢谢
作者:
wuwu200222
时间:
2020-4-28 11:23
学习
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3