设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 4666|回复: 21
打印 上一主题 下一主题

[窗体] 导入Excel到Access的问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-1-28 13:12:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,请高手帮助一下,
要求选择excel文件后,再点击"导入数据",能把数据导入到表-"人员表"中,要求不能改变"人员表"的数据的格式,原来表中的数据又不能去掉,也不能出现编号重复,如果有编号相同的自动排除掉.
有什么好的办法能做到这一点?
另外,表"人员表"的字段实际上不止这么一点,大概有10几个字段,要求能够对字段能够扩展.
等待中.

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-1-30 13:04:38 | 只看该作者
不会太复杂吧?
3#
发表于 2009-1-30 13:10:56 | 只看该作者
DoCmd.TransferSpreadsheet acImport, , "商场进货表", Me.xls_path, True, "" '导入

好像就可以了
4#
发表于 2009-1-30 13:48:25 | 只看该作者
本帖最后由 ACMAIN_CHM 于 2009-1-30 13:57 编辑

如果知道SHEET名字的话,可以用下列代码



Private Sub Command21_Click()
    If Me.xls_path = "" Or IsNull(Me.xls_path) Then
        MsgBox "请按…按钮选择要导入的Excel数据表!", vbExclamation, "提示" '如果文件路径为空时提示
        Exit Sub
    End If
   
    Dim sSQL As String
    Dim nRowAffected As Long
   
    sSQL = "insert into 人员表" _
        & " select * from  [222$] IN '' [Excel 8.0;Database=" & Me.xls_path.Value & "] " _
        & " where 编号 not in (select 编号 from 人员表)"
    CurrentProject.Connection.Execute sSQL, nRowAffected
   
    If nRowAffected > 0 Then
        msbgox "[" & nRowAffected & "] Row inserted from excel file " & Me.xls_path.Value
    End If
   
    MsgBox "数据导入成功!", vbInformation, "导入成功" '提示导入成功
End Sub





*****************
*  一切皆有可能 *
*****************

QQ群48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/SList/Access .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
5#
 楼主| 发表于 2009-1-30 13:54:48 | 只看该作者
3# todaynew
6#
 楼主| 发表于 2009-1-30 13:58:07 | 只看该作者
DoCmd.TransferSpreadsheet acImport, , "商场进货表", Me.xls_path, True, "" '导入

好像就可以了
todaynew 发表于 2009-1-30 13:10

引用了"DoCmd.TransferSpreadsheet acImport, , "商场进货表", Me.xls_path, True, "" '导入"后可以用了,但是想增加几个字段却又不行,在Excel中和目标表中均增加了字段,但仍提示"目标表中的字段不存在",该如何解决?
7#
发表于 2009-1-30 14:25:33 | 只看该作者
6# 明镜

可以呀,我在E和A中分别增加性别字段后,一样可以导入。
8#
发表于 2009-1-30 16:57:10 | 只看该作者
4楼的nRowAffected做什么用的?
9#
发表于 2009-1-30 17:00:44 | 只看该作者
如何是OFFICE2003用4楼的办法也可以吧?
10#
发表于 2009-1-30 17:20:58 | 只看该作者
4楼的nRowAffected做什么用的?
ycxchen 发表于 2009-1-30 16:57


以下摘自 Microsoft Access Help

Execute 方法 (ADO Connection)
执行指定的查询、SQL 语句、存储过程或提供者特有的文本。

语法

对于不是以行返回的命令字符串:
connection.Execute CommandText, RecordsAffected, Options

对于以行返回的命令字符串:
Set recordset = connection.Execute (CommandText, RecordsAffected, Options)
返回值返回 Recordset 对象引用。

参数
CommandText
String 值,包含要执行的 SQL 语句、存储过程、URL 或提供者特有的文本。此外,仅当提供者被 SQL 识别时才可使用表名称。例如,如果使用“Customers”作为表名称,则 ADO 将自动预先根据标准 SQL Select 语法构成“SELECT * FROM Customers”,并将其作为 T-SQL 语句传递给提供者。
RecordsAffected
可选。Long 变量,提供者向其返回操作影响的记录数目。
Options
可选。Long 值,指示提供者计算 CommandText 参数的方式。该值可以是一个或多个 CommandTypeEnumExecuteOptionEnum 值的位掩码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-16 07:39 , Processed in 0.103542 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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