设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3660|回复: 11
打印 上一主题 下一主题

[表] 请教高手!导入表如何与原表合并?

[复制链接]
跳转到指定楼层
1#
发表于 2010-9-10 09:46:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教高手!导入表1如何与原表1合并?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-9-10 09:57:29 | 只看该作者
可以直接复制过去的.
3#
 楼主| 发表于 2010-9-10 19:42:11 | 只看该作者
回复 hjb016 的帖子

谢谢!这个办法有了,但想做一个按钮实现如何实现?
   
4#
发表于 2010-9-10 20:24:37 | 只看该作者
本帖最后由 todaynew 于 2010-9-10 20:25 编辑

试试这个子程序:

Sub MyInsert(tbname as string,Stbname as string,SPath as string)
'功能:将外部表数据追加到目标表中
'参数: tbname--目标表名称字符串
‘       Stbname--源表名称字符串
'       Spath--原表所在数据库完成文件名(含路径)
'示例: MyInsert  "学生表","学生资料","F:\成绩管理系统.mdb"
dim ssql as string
ssql="INSERT INTO " & tbname
ssql=ssql & " select * from " & stbname
ssql=ssql & " in " & Spath
docmd.runsql ssql
end sub
5#
 楼主| 发表于 2010-9-13 12:03:26 | 只看该作者
回复 todaynew 的帖子
好的,试试。感谢版主了!

   
6#
 楼主| 发表于 2010-9-13 12:06:50 | 只看该作者
回复 hjb016 的帖子
这种办法试过,但如何解决重复项信息?查询重复项,再删除?想做个按钮,一次搞定!指教帮助一下!

   
7#
发表于 2010-9-13 13:03:57 | 只看该作者
dim ssql as string
dim strWhere as string
dim rs as dao.recordset
on error resume next   '这个必须加,这样如果记录重复,自动循环下一条记录
set rs=currentdb.openrecordset("select * from " & stbname)

ssql="INSERT INTO 目标表"
ssql=ssql & " select * from 源表 "
do While Not Rs.EOF

    strWhere="条件"   '比如某个主关键字=当前记录的主关键字值.
    docmd.runsql ssql & strWhere     
    Rs.MoveNext
Loop
rs.close
set rs=nothing
8#
发表于 2010-9-13 13:53:01 | 只看该作者
本帖最后由 todaynew 于 2010-9-13 13:54 编辑
回复
这种办法试过,但如何解决重复项信息?查询重复项,再删除?想做个按钮,一次搞定!指教帮助一下!
...
程研 发表于 2010-9-13 12:06



Sub MyInsert(tbname as string,Stbname as string,SPath as string,WH as string)
'功能:将外部表数据追加到目标表中
'参数: tbname--目标表名称字符串
'      Stbname--源表名称字符串
'      Spath--原表所在数据库完成文件名(含路径)
'      WH--两表比较字数串
'示例: MyInsert  "学生表","学生资料","F:\成绩管理系统.mdb","b.姓名=a.姓名 and b.性别=a.性别"
dim ssql as string
ssql="INSERT INTO " & tbname
ssql=ssql & " select * from " & stbname & " as a"
ssql=ssql & " in " & Spath
ssql=ssql & " where not EXISTS (select * from " & tbname & " as b where " & WH & " )"
docmd.runsql ssql
end sub

9#
发表于 2010-9-13 14:00:10 | 只看该作者
按我的思路来说,我更愿意把导入表直接导入到某个临时表(T_Tem)里,然后追加到基础表里,再刷新数据。
按钮嘛,设置一个宏,包含:
1、SetWarning
选项:否(为防止追加和删除时弹出对话框)
2、TransferSpreadsheet
选项:
迁移类型:导入;电子表格类型:Microsoft Excel 8-10;表名称:T_Tem;
文件名称:C:\导入表.xls(这里假定导入表路径在C盘,如果经常变动,则建议把路径放在根目录下,改为:CurrentProject.path&"\导入表.xls“)
字段:否(T_Tem表里已经有字段了,因此选否)
3、运行查询(这一点,你自己看书了噢,这里不再示例)
OpenQuery
(查询表名:下拉选框里选择;其余默认即可)
4、RunSQL(DELETE T_Tem.* FROM T_Tem;)
(清空临时表数据,方便下一次工作)
5、Msgbox
(消息:已成功导入数据;标题:导数成功,其余默认)
10#
 楼主| 发表于 2010-9-13 17:12:13 | 只看该作者
回复 roych 的帖子

好的!多谢!
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-30 20:41 , Processed in 0.110252 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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