您的位置:程序门 -> web 开发 -> asp



excel数据导入access中,谁能帮我看看错在哪,在线等,谢谢!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


excel数据导入access中,谁能帮我看看错在哪,在线等,谢谢!!
发表于:2007-02-02 11:30:20 楼主
<%
on   error   resume   next
'这个很重要     后面有提示
dim   conn1,conn,rs1,rs,sql1,sql
'定义变量是个好习惯

set   conn=server.createobject( "adodb.connection ")
connstr= "dbq= "+server.mappath( "db.mdb ")+ ";defaultdir=;driver={microsoft   access   driver   (*.mdb)} "
conn.open   connstr
set   rs=server.createobject( "adodb.recordset ")
sql= "select   *   from   xwplant "
set   rs=conn.EXECute(sql)

'首先打开需要接受数据的access表
'表xwplant   中的字段有中文名     拉丁文名   科名   备注字段     等

set   conn1   =   server.createobject( "adodb.connection ")
connstr1= "dbq= "+server.mappath( "11.xls ")+ ";defaultdir=;driver={microsoft   excel   driver   (*.xls)} "
conn1.open   connstr1
set   rs1=server.createobject( "adodb.recordset ")
sql1= "select   *   from   [sheet1$] "
set   rs1=conn1.EXECute(sql1)
'得到可以读取excel文件的记录集对象
'必须注意的是       在excel中     第一行数据被认为是字段名       而且不能含有数字

dim   i
i=0
'统计写入的列数

do   while   not   rs1.eof
if   rs( "中文名 ") <> rs( "拉丁文名 ")   then
'这个很有趣     因为excel是别人设计的   备注字段单独为一列
'结构如下
'1   a           b           c         d         /表头
'2     a1       b1       c1       d1     /一个植物的数据
'3   aaaaaaaaaaaaaaaa/还是上一个植物的数据     备注字段   实际上是excle中的两行或者多行对应access中的一列
'所以我们必须判断一下     如果   rs( "a ") <> rs( "b ")就说明在access中可以插入了

rs.addnew
rs( "中文名 ")=rs1( "chinese ")
rs( "拉丁名 ")=rs1( "lading ")
rs( "中文科名 ")=rs1( "classification ")

rs( "中文名 ")=rs1( "description ")
rs.update
rs.movenext

if   err   then   err   clear
'这里可能会出现写入错误     因为所有植物的拉丁名都是唯一的     所以在设计access库的时候     对应字段是不
'允许重复的     这样有些时候出现运行错误     所有第一行才   设置了on   error   resume   next   同时可以方式写入重复的数据

i=i+1
end   if
rs1.movenext
loop

rs.close
rs1.close
set   rs=nothing
set   rs1=nothing
conn.close
set   conn=nothing
response.write   i& "个植物写入成功! "
%>
发表于:2007-02-02 11:49:541楼 得分:0
怎么没有人回复呢


快速检索

最新资讯
热门点击