【原创】Excel数据导入到Access ,Excel数据插入到Access ,Excel数据更新到access, ASP代码演示

来源:互联网   编辑:思良  发表时间:2015-07-10  关注度:1438  

思良:看不到图片还是去百度空间查看原文, http://wenzhang.baidu.com/page/view?key=3d36195d5c342d2a-1426994983

最近同事要我帮她解决一个问题:我们有个值班表,每天要更新,她想直接修改EXCEL来实现修改ACCESS数据。网站是ASP的,值班表是通过ASP调用ACCESS数据显示的,上网搜索了一些代码,大部分是把EXCEL数据插入到ACCESS里,这不是我想要的,我们每个月1号,上面发个EXCEL格式的值班表来,然后每天进网站后台按照当天值班表修改ACCESS数据(这样很麻烦所以才想解决),ACCESS数据库中,值班表的表有个ID主键字段,网站显示数据的条件是按ID=1到31(既那天对应那天的ID数,例10号对应ID=10)虽然能按网络上给的代码插入数据,但表中主键ID会自动增加,那么显示数据的话还得修改显示值班表的页面,后台也有很多页面都有调用到值班表的数据,这样修改其他工作量很大,而且那个循环语句也不好写(每个月天数还不同,想起头都大),所以想到如果能直接更新该值班表的表就好了,去百度知道提问,也许没说明白,大家都没给出好的解决方法,只能靠自己,插入数据用into语句,更新数据用update语句,因为更新语句要有条件,不然把表更新成同样的数据了,我对ASP不太了解,就在" ,' 什么的操作上折腾半天,终于update语句写通了,下面给出实例:

文件目录:(大家想测试可以按照下面给出的文件做出样例来)

根目录:#123tel.mdb(access数据库)   index.asp(显示值班表网页不用做)up(文件夹)

up(文件夹):dabiaoadoconn.asp(连接数据库网页)update.asp(更新数据库网页)file(文件夹)

file(文件夹):zbb.xls(excel文件)

访问:http://localhost/up/update.asp就实现更新

1,#123tel.mdb  ACCESS数据库,里面有值班表zbb,字段如下,ID主键,数字自动增长,其他字段为文本,(就是这个主键ID的数据类型,引起很多问题,按网络上的代码并不能插入下面表中,是有错误的,如果不要主键,怎么插数据都可以的,当然我是不能删除主键的,不然值班表怎么显示,开始测试插入时,怎么插都不行,后来修改ID的数据类型,改为其它的,例如文本就可以插入,如果想更新就直接不管,按我的方法做吧)


2,zbb.xls   excel表,其它字段就不抓出来,下面那个zbb就是excel的表

3,连接数据库的asp---dabiaoadoconn.asp,DB="../#123tel.mdb",我是把更新数据库的页面放到跟目录里的UP文件夹里,所以连接代码写../

代码:

--------------------------------------------

<%
DB="../#123tel.mdb"
path=Server.MapPath(DB)
set conn=server.createobject("adodb.Connection")
connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source="&path
conn.Open connstr
Set rs=server.CreateObject("adodb.recordset")
%>
------------------------------------

4,更新数据库的ASP---update.asp 

代码:

-----------------------------------------------------

<!-- #include file="dabiaoadoconn.asp" -->
<%
'连接excel数据库
path="./"
Dim xlsconn,strsource,xlbook,xlsheet,i
Dim myConn_Xsl,xlsrs,sql,objCmd  
Set xlsconn = server.CreateObject("adodb.connection") 
Set xlsrs = Server.CreateObject("Adodb.RecordSet")

filename="file/zbb" 
file2="zbb" 
source=server.mappath(path&filename&".xls")

myConn_Xsl="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &source& ";Extended Properties=Excel 8.0"
xlsconn.open myConn_Xsl

sql = "Select * from ["&file2&"$]"
xlsrs.open sql,xlsconn,1,1 
If xlsrs.eof Then
else
 i=1
  response.write "<TABLE border=1><tr><a href='index.htm'>点我返回</a></tr><TR><TD>id</TD><TD>bm1</TD><TD>tel1</TD><TD>bm2</TD><TD>tel2</TD><TD>ks</TD><TD>xzzw</TD><TD>bm3</TD><TD>tel3</TD><TD>tel4</TD><TD>tel5</TD><TD>bm4</TD><TD>bm5</TD></TR>"
 Do While not xlsrs.eof 
 id=xlsrs("id")
 bm1=xlsrs("bm1")
 tel1=xlsrs("tel1")
 bm2=xlsrs("bm2")
 tel2=xlsrs("tel2")
 ks=xlsrs("ks")
 xzzw=xlsrs("xzzw")
 bm3=xlsrs("bm3")
 tel3=xlsrs("tel3")
 tel4=xlsrs("tel4")
 tel5=xlsrs("tel5")
 bm4=xlsrs("bm4")
 bm5=xlsrs("bm5")
 
%>
 
     <TD>&nbsp;<%=id%></TD>
  <TD>&nbsp;<%=bm1%></TD>
  <TD>&nbsp;<%=tel1%></TD>  
  <TD>&nbsp;<%=bm2%></TD>
  <TD>&nbsp;<%=tel2%></TD>
  <TD>&nbsp;<%=ks%></TD>  
  <TD>&nbsp;<%=xzzw%></TD>  
  <TD>&nbsp;<%=bm3%></TD>
  <TD>&nbsp;<%=tel3%></TD>  
  <TD>&nbsp;<%=tel4%></TD>  
  <TD>&nbsp;<%=tel5%></TD>
  <TD>&nbsp;<%=bm4%></TD> 
  <TD>&nbsp;<%=bm5%></TD></TR><% 
sql="update zbb set bm1='"&bm1&"',tel1='"&tel1&"',bm2='"&bm2&"',tel2='"&tel2&"',ks='"&ks&"',xzzw='"&xzzw&"',bm3='"&bm3&"',tel3='"&tel3&"',tel4='"&tel4&"',tel5='"&tel5&"',bm4='"&bm5&"',bm5='"&bm5&"'where id="&id&""
  conn.execute(sql)
 i=i+1 
 xlsrs.MoveNext
    Loop  
 response.write "</table>"
End If
xlsrs.close

Response.write "共更新<font color='red'>" & i-1 & "</font>条记录.<br>" & vbCrLf
set xlsconn=nothing 
set objCmd=nothing 
%>

----------------------------------------------------

说明:

代码有点多,

1,filename="file/zbb"(这个是excel文件位置和名字,zbb是excel名字file是放zbb.xls的文件夹,)    file2="zbb" (excel里面最下面那个表名,上图红线标出,自己做样例时默认名字是Sheet1) ,

 2,response.write "<TABLE border=1><tr><a href='index.htm'>点我返回.....这段代码作用是显示更新数据后的数据,怎么修改漂亮一点看各位网页编辑能力了。

效果:

,3,最关键的是SQL语句写法:sql="update zbb set bm1='"&bm1&"',tel1='"&tel1&"',bm2='"&bm2&"',tel2='"&tel2&"',ks='"&ks&"',xzzw='"&xzzw&"',bm3='"&bm3&"',tel3='"&tel3&"',tel4='"&tel4&"',tel5='"&tel5&"',bm4='"&bm5&"',bm5='"&bm5&"'where id="&id&""
开始一直错误,后来网络搜索,asp中id=数字时不必用',大家注意下了。

4,现在顺便给出删除SQL语句和插入语句

删除语句:sql="DELETE FROM zbb WHERE ID>0"
插入语句: sql="insert into zbb(id,bm1,tel1,bm2,tel2,ks,xzzw,bm3,tel3,tel4,tel5,bm4,bm5) values('"&id&"','"&bm1&"','"&tel1&"','"&bm2&"','"&tel2&"','"&ks&"','"&xzzw&"','"&bm3&"','"&tel3&"','"&tel4&"','"&tel5&"','"&bm4&"','"&bm5&"')"
5,出现错误:

错误类型:

Microsoft JET Database Engine (0x80004005)

解决方法:文件夹选项,去掉简单共享,找到c盘系统文件夹window里的temp文件夹,看属性,打开安全,给users用户一个写入权限(最好是完全权限),不然不能写东西,如果还不行,找到网站文件夹,同样给它一个完全权限。

6,出现错误:

错误类型:
Microsoft JET Database Engine (0x80004005)
Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
解决方法:它已经被别的用户以独占方式打开说明你打开着zbb.xls 或者#123tel.mdb 文件,关闭了

7,好了用EXCEL更新ACCESS数据库代码写完,但还有一个步骤是,上传,每个月更新时,要把excel上传到file文件夹里,把新的替换原来的,接着运行update.asp就更新数据了,

因为不同员工的权限不同,同事她只能进网站后台,不能进服务器,所以上传文件只能由网站管理员来操作,所以为了不想让她每个月都来烦我,我就从网络上下了一个上传文件的源码来,在后台页面里加了一个连接,这样她就可以直接通过上传页面来实现上传excel文件,不过一般的上传源码上传的文件都自动改名了,这个也不是我想要的,好在我找到一个可以直接自己命名的,不命名为原名的上传源码,这篇文章就不写出了,给个下载地址:http://www.asp300.com/SoftView/10/SoftView_29627.html

 

--------------------------------------------------------

方便大家测试,我已经把做好的例子上传到网盘了,具体操作在里面说了

http://dl.dbank.com/c0s61m7an2

    支付宝扫码领红包,不用多说,用过的人都知道,双赢的,你得红包,我得到同等推广红包,比如你扫到1元,我也得1元,大家得到的红包可以去实体店消费!新用户至少10元以上哦,每天都有!希望大家每天来本站扫码!感谢感谢!

    把打赏改成扫码红包了!支持本站就扫码下!


下一篇:ASP代码中如何屏蔽ip地址 禁止某IP段访问网站


上一篇:【原创】axp读取excel 代码,提示错误解决


小提示:按 回车[Enter]键 返回,按 ←键 返回上一页, 按 →键 进入下一页。

网友评论(0条评论)

选择头像
     

新闻评论(共有 0 条评论)

手机访问

本站APP

联系我

加我微信