Office中国论坛/Access中国论坛

标题: 如何导入excel表格为access的数据库表中 [打印本页]

作者: l3396949    时间: 2012-5-21 08:56
标题: 如何导入excel表格为access的数据库表中
现在数据库中有个表,如何通过代码将外部excel数据导入数据库的表中!
一列导入一个字段。数据格式不对就报错,取消导入过程!?
作者: chuang0321    时间: 2012-5-21 14:06
我在网上帮你查的

将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的列一样才保证不丢数据。

作者: nxjswt    时间: 2012-5-21 14:19
一般语句
DoCmd.TransferSpreadsheet acImport, 8, "1", "d:1.exls", True, ""
作者: roych    时间: 2012-5-21 17:24
格式对不对,应该先在Excel表里进行判断,而不是在导入后再处理。
如果Excel文件是标准表形式,可以参考2L的代码。




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