Office中国论坛/Access中国论坛

标题: 【通用工具源码】通用Excel数据导入模块 [打印本页]

作者: 红尘如烟    时间: 2011-5-7 21:06
标题: 【通用工具源码】通用Excel数据导入模块
        之前做的一个通用导入模块,不过后来又找到更高效的办法,差点抛弃,不过后来想想,这个模块虽然效率比较差,不过易用性上来讲还是不错的,因此发上来给大家作个参考。

用法: 1. 直接打开窗体时允许手动选择要导入的目标表:
       DoCmd.OpenForm "ImportFromExcel"
       2. 通过OpenArgs参数传递指定表名,这样不允许手动选择要导入的目标表,只能向指定的表中导入数据:
       DoCmd.OpenForm "frmImportFromExcel", , , , , , "表1"
要点: 1. 指定要导入的Excel工作簿文件后,会自动识别有数据的工作表,如果工作表不止一个,允许选择任意工作表。
       2. Excel中第一行必须是字段名或字段标题,会自动对应列和字段。Excel中的列标题可以是字段标题,并且读取时也是优先识别字段标题和Excel列标题进行对应。
       3. 可以选择某些字段是否导入,无法自动对应的默认为不导入。
       4. 使用非常友好的进度条,可以清楚的知道导入进度,防止数据量大时假死引起误操作。
       5. 友好的错误判断,如果某些行的数据导入失败,会在导入完成后自动打开Excel文件,并 在工作表的数据右边显示错误信息,以便明白导入失败的原因。注意错误信息默认不会在Excel中保存,关闭之后就不会存在。
       6. 可以重复进行导入,不需要重新打开导入窗体。

[attach]45506[/attach]

[attach]45508[/attach]

[attach]45507[/attach]






作者: ycxchen    时间: 2011-5-8 08:58
谢谢分享,下载学习!
作者: ycxchen    时间: 2011-5-8 09:01
如果数据量很大,进度条显示会很慢吗?
作者: szyewj    时间: 2011-5-10 22:54
谢谢分享,下载学习
作者: stvent    时间: 2011-5-14 14:41
本帖最后由 stvent 于 2011-5-14 14:42 编辑

能否再加个导入条件,如果表中有大量数据,且表中有日期字段,能否只能导一段时期内的数据,如我只导入2011/5/1~2011/5/14日的
作者: zhao__feng    时间: 2011-5-14 19:55
谢谢分享,下载学习
作者: lkkl66    时间: 2011-5-14 23:51
回复 红尘如烟 的帖子

好!谢谢!收藏!
作者: goto2008    时间: 2011-5-24 11:13
谢谢分享
作者: cz3056    时间: 2011-7-16 09:03
认真学习,呵呵!
作者: yanghua1900363    时间: 2011-7-29 11:28
似曾相识 几天终于见到了 收藏
作者: yanghua1900363    时间: 2011-8-3 23:29
谢谢了!
作者: yanghua1900363    时间: 2011-8-4 17:36
红尘老师你好!excel to access 通用数据导入 程序已经试用 非常好用再次谢过! 另一个问题请你帮忙:通用导入程序只能实现向指定表中追加新的数据,请问怎么才能直接做到向指定表中更新数据。说白了,就是用excel 表中的数据导入同时更新access数据库表中特定字段的值。
作者: zww3008    时间: 2011-8-12 18:36
要是加入三个功能选项就更好了:
1、可重复追加
2、不重复追加
3、更新数据(如有相同的更新,不相同的追加)
作者: zww3008    时间: 2011-8-12 18:49
本帖最后由 zww3008 于 2011-8-12 19:02 编辑

当将目标表的某个字段的索引设置为“有(无重复)”时,可实现不重复追加。
但是,我允许某个字段有重复,但却不允许几个字段联合起来时都重复,我以前也用过类似方法,但没红尘的通用性好。我的方法是先导入一个临时表,删除重复数据,再利用不重复追加功能将临时表导入到目标表。
然后对比目标表与临时表,再将临时表中相同部分删除,最后弹出临时表,即表示未能成功导入的部分,以提示用户。
红尘直接利用EXCEL作为错误提示,更好。

版主的这个实例可以帮我简化我的第一步导入临时表,后面的还需按我自己方法。
要实现上面说到的三个功能选项,看能否改进一下以实现。

作者: yanghua1900363    时间: 2011-8-14 10:46
能否根据“目标表”的不同而打开不同的窗体,以对导入数据进行进一步的处理!谢谢大家的支持!
作者: shuix    时间: 2011-10-25 07:29
非常感谢
作者: wangjinhu80809    时间: 2011-10-25 15:24
能否将目的表设置一下权限?根据不同角色的登录选择显示不同的表,或者操作不同的表?
作者: wangjinhu80809    时间: 2011-10-27 13:54
zww3008 发表于 2011-8-12 18:49
当将目标表的某个字段的索引设置为“有(无重复)”时,可实现不重复追加。
但是,我允许某个字段有重复, ...

15楼能否将成品上传分享?
作者: newsun    时间: 2011-11-1 23:49
这个要顶
作者: yodong    时间: 2011-11-22 15:04
这个例子太好了.版子能不能改一个ADO版本的.因为如果用在ADP上,就必须是用ADO才行.
作者: yodong    时间: 2011-11-22 15:38
[attach]47418[/attach]
版主.帮我看看.为什么我改为ADO版.会不行呢?
作者: yodong    时间: 2011-11-22 15:39
我是要用在ADP上的.
作者: itdesigner    时间: 2015-3-28 20:49
谢谢分享,下载学习!
作者: purplerose    时间: 2015-7-24 22:12
如烟,您说的 不过后来又找到更高效的办法,是什么方法呀,方便说吗?
作者: WFH6898    时间: 2015-11-12 13:08
谢谢分享,下载学习!
作者: cshiq    时间: 2016-1-16 20:17
通用Excel数据导入模块.r
作者: hjinexe    时间: 2016-3-5 18:36
学习啦~!
作者: baidu321    时间: 2016-3-15 10:53
看看这个怎么用
作者: 布谷0000    时间: 2016-3-20 23:07

正是我想要的,多谢了
作者: wq1918    时间: 2016-6-16 15:44
111
作者: access学习交流    时间: 2016-6-16 16:03
看看
作者: 王者至尊    时间: 2016-6-17 04:38
谢谢分享,学习一下
作者: 王者至尊    时间: 2016-6-17 04:39

作者: 王者至尊    时间: 2016-6-17 04:39
:
作者: 李力军2    时间: 2016-6-18 09:02
学习了收藏
作者: banyan772    时间: 2017-9-18 10:28
先看看再说,一个脑壳两个大~
作者: qqsugar_chen    时间: 2017-9-29 20:07
近期在学习导入 ,学习了。谢谢分享!
作者: 快乐向前走    时间: 2018-10-1 16:44
的沙发上飞
作者: 快乐向前走    时间: 2018-10-1 16:44
的撒发生发生的发生的付阿斯顿发生地发大水法萨芬阿斯顿发阿是飞洒发顺丰爱迪生发生发顺丰萨芬萨芬阿是飞洒发大水发刚发的个 搞活动费还给代付风搞活动的复合弓东方红个地方官黄谁过水电费嘎斯的SDF AS FASFASDF ASDF ASDF ASD FDFGSDGFHSDFGSDF
作者: yang0503    时间: 2018-12-8 20:52
有参考价值
作者: boon    时间: 2019-3-28 21:49
大师之作
作者: boon    时间: 2019-3-28 23:38
谢谢分享
作者: wuwu200222    时间: 2020-4-15 11:06
学习
作者: 天蚕宝宝    时间: 2020-12-8 13:27
谢谢分享!!!!!!!!!!!!!!!
作者: YXH_YXH    时间: 2021-7-17 08:31
大师之作。谢谢分享!!!
作者: iameee    时间: 2022-5-29 21:03
谢谢分享
作者: wuwu200222    时间: 2022-10-18 11:19
学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3