将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的代码。