设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1363|回复: 3
打印 上一主题 下一主题

[Access本身] 如何导入excel表格为access的数据库表中

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-21 08:56:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在数据库中有个表,如何通过代码将外部excel数据导入数据库的表中!
一列导入一个字段。数据格式不对就报错,取消导入过程!?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-5-21 17:24:09 | 只看该作者
格式对不对,应该先在Excel表里进行判断,而不是在导入后再处理。
如果Excel文件是标准表形式,可以参考2L的代码。
3#
发表于 2012-5-21 14:06:49 | 只看该作者
我在网上帮你查的

将Excel中的数据导入到Access中(用Excel中的第一行数据做为表的字段名):
<%
dim conn
dim conn2
set conn=CreateObject("ADODB.Connection")
conn.Open "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("test.mdb") & ";"

set conn2=CreateObject("ADODB.Connection")
conn2.Open "rovider=Microsoft.Jet.OLEDB.4.0;Jet OLEDBatabase Password=;Extended properties=Excel 5.0;Data Source=D:\test.xls"

sql = "SELECT * FROM [Sheet1$]"
set rs = conn2.execute(sql)
while not rs.eof
    sql = "insert into tableName([a],[b],[c],[d]) values('"& fixsql(rs(0)) &"','"& fixsql(rs(1)) &"','"& fixsql(rs(2)) &"','"& fixsql(rs(3)) &"')"
    conn.execute(sql)
    rs.movenext
wend

conn.close
set conn = nothing
conn2.close
set conn2 = nothing

function fixsql(str)
    dim newstr
    newstr = str
    if isnull(newstr) then
        newstr = ""
    else
        newstr = replace(newstr,"'","''")
    end if
    fixsql = newstr
end function
response.write("恭喜,导入成功!")
%>
注意:Access数据库要先建好,同时表也要建好,表名与上面的SQL语句的表名一致。最好字段的个数和EXCEL的列一样才保证不丢数据。
4#
发表于 2012-5-21 14:19:49 | 只看该作者
一般语句
DoCmd.TransferSpreadsheet acImport, 8, "1", "d:1.exls", True, ""
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-22 15:59 , Processed in 0.085690 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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