为什么excel表格里的数据不能正常导入access数据库?

highmen522 2009-06-19 04:54:41
由于自己以前的开发工具是java对asp不太熟悉但是最近给公司用ASP做个小项目,项目里有个部分需要将excel表格文件的企业信息数据导入access数据库的企业信息表里。。不知道为什么我的代码通过不了测试一直提示:

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
/pdxt/comm/qywjcl_sc.asp, 第 27 行

我的页面代码如下:


Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Excel Driver (*.xls)};ReadOnly=0;DBQ=" & Server.MapPath("uploadfile/qyxx.xls")
SQL1="select * from [sheet1$]"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL1, Conn


Set Conn2=Server.CreateObject("ADODB.Connection")
set cmd = server.createobject("adodb.command")
Conn2.Open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("kfxt.mdb")
cmd.activeconnection=Conn2

Do While Not rs.Eof
if rs(0)<>""and rs(2)<>"" then
strSql = "Insert into sys_qyxx qysh,qybh,qymc,qydz,qylxr,lxdh,sbfwzzrq,rzfwzzrq,ssdq,ssdx,kyzt) Values ('"& rs(0) &"', "& rs(1) &", '"& rs(2) &"', '"& rs(3) &"', '"& rs(4) &"', '"& rs(5)&"', '"& rs(6)&"', '"& rs(7)&"', '"& rs(8)&"', '"& rs(9)&"', '"& rs(10) &"')"
end if

cmd.commandtext=strSql <--------------27行 提示这行代码出错。。。。。
cmd.execute
rs.movenext
Loop
Conn2.close
Conn.close


sys_qyxx表的字段都是文本类型,excel表格里的数据也都是文本类型。


另外该操作需要保持原子性需要用到事务,不知道ado的事务是如何操作的也请赐教。谢谢。
...全文
614 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
haoru870303 2009-06-19
  • 打赏
  • 举报
回复
观望
shenzhenNBA 2009-06-19
  • 打赏
  • 举报
回复
那就检查你的SQL语句了,注意字段的顺序,数据类型等要相对应
格式:
insert into 表 (字段1,字段2,...) values ('值1','值2',...)
highmen522 2009-06-19
  • 打赏
  • 举报
回复
那个左括号是有的。我开始发贴的时候不小心把括号弄掉了。
if rs(0)<>""and rs(2)<>"" then
strSql = "Insert into sys_qyxx Values ('"& rs(0) &"', "& rs(1) &", '"& rs(2) &"', '"& rs(3) &"', '"& rs(4) &"', '"& rs(5)&"', '"& rs(6)&"', '"& rs(7)&"', '"& rs(8)&"', '"& rs(9)&"', '"& rs(10) &"')"
shenzhenNBA 2009-06-19
  • 打赏
  • 举报
回复
不要太懒,就多写一个右括号不就可以了吗?见红色部分:

if rs(0) <>""and rs(2) <>"" then
strSql = "Insert into sys_qyxx (qysh,qybh,qymc,qydz,qylxr,lxdh,sbfwzzrq,rzfwzzrq,ssdq,ssdx,kyzt) Values ('"& rs(0) &"', "& rs(1) &", '"& rs(2) &"', '"& rs(3) &"', '"& rs(4) &"', '"& rs(5)&"', '"& rs(6)&"', '"& rs(7)&"', '"& rs(8)&"', '"& rs(9)&"', '"& rs(10) &"')"
end if
shenzhenNBA 2009-06-19
  • 打赏
  • 举报
回复
修改见红色部分,

dim Conn
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Excel Driver (*.xls)};ReadOnly=0;DBQ=" & Server.MapPath("uploadfile/qyxx.xls")
SQL1="select * from [sheet1$]"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL1, Conn

dim Conn2
Set Conn2=Server.CreateObject("ADODB.Connection")
Conn2.Open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("kfxt.mdb")

Do While Not rs.Eof
if rs(0) <>""and rs(2) <>"" then
strSql = "Insert into sys_qyxx qysh,qybh,qymc,qydz,qylxr,lxdh,sbfwzzrq,rzfwzzrq,ssdq,ssdx,kyzt) Values ('"& rs(0) &"', "& rs(1) &", '"& rs(2) &"', '"& rs(3) &"', '"& rs(4) &"', '"& rs(5)&"', '"& rs(6)&"', '"& rs(7)&"', '"& rs(8)&"', '"& rs(9)&"', '"& rs(10) &"')"
end if

Conn2.execute(strSql)
rs.movenext
Loop
Conn2.close
Conn.close

set Conn=nothing
set Conn2=nothing



有分不? : )

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧