【求高手指点asp操作EXCEL数据导入ACCESS时比较重复数据的代码】

江湖百晓生 2012-06-28 02:19:24
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'sql 连接驱动
dim conn,connstr,time1,time2,mdb,db
time1=timer
db="mdb/data.mdb"
'如果是sql 2000数据库,请用下面 连接驱动
'connstr = "Driver={SQL Server};server=(local);uid=sa;pwd=123;database=jmgl2007;"

'如果是Access数据库,请用下面 连接驱动
Set conn = Server.Createobject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"
Response.End
End If

sub closedb()
conn.close
set conn=nothing
end sub

dim aa
aa=request.form("bbb") '获取传递过来的值

Dim StrConnect,cc
Dim objConn
Dim rs
Dim Sql
cc=1 '记录数据的条数
cc=cc+1
'Excel连接驱动
aaa="provider=Microsoft.Jet.OLEDB.4.0; Data Source="&aa&";Extended Properties=Excel 8.0"


set StrConnect=CreateObject("ADODB.Connection")
StrConnect.Open aaa


Set objConn=CreateObject("ADODB.Connection")

objConn.Open StrConnect

'注意 表名一定要以下边这种格试 "[表名$]" 书写
Set rs = Server.CreateObject("ADODB.Recordset")
Sql="select * from [sheet1$] "
rs.Open Sql,StrConnect,2,2
IF rs.Eof And Rs.Bof Then
response.Write("<script>alert ('没有资料可以导入!');history.go(-1)</script>")


else


Do While Not rs.EOF
'列出表内信息"‖" 为分隔符
response.write"excel数据为: <br>"
response.write ""&rs(0)&"‖"&rs(1)&"‖"&rs(2)&"‖"&rs(3)&"‖"&rs(4)&"‖"&rs(5)&"‖"&rs(6)&"‖"&rs(7)&"‖"&rs(8)&"‖"&rs(9)&"‖"&rs(10)&"‖"&rs(11)&"‖"&rs(12)&""
response.write"<br>"
set rssql=server.CreateObject("adodb.recordset")
'插入SQL2000里
rssql.Open "select * from mynumber",conn,1,3
rssql.AddNew
if rs(0)<>"" then '写入数据,如果"id"编号为自动,请不要在xls表中加入"id字段"。
rssql(1)=rs(0)
end if
if rs(1)<>"" then
rssql(2)=rs(1)
end if
if rs(2)<>"" then
rssql(3)=rs(2)
end if
if rs(3)<>"" then
rssql(4)=rs(3)
end if
if rs(4)<>"" then
rssql(5)=rs(4)
end if
if rs(5)<>"" then
rssql(6)=rs(5)
end if
if rs(6)<>"" then
rssql(7)=rs(6)
end if
if rs(7)<>"" then
rssql(8)=rs(7)
end if
if rs(8)<>"" then
rssql(9)=rs(8)
end if
if rs(9)<>"" then
rssql(10)=rs(9)
end if
if rs(10)<>"" then
rssql(11)=rs(10)
end if
if rs(11)<>"" then
rssql(12)=rs(11)
end if
if rs(12)<>"" then
rssql(13)=rs(12)
end if

rssql.Update
Rs.MoveNext

Loop
end if
response.Write "<script language=javascript>alert('资料导入成功!\n共有"&cc&"条数据导入');history.go(-1)</script>"


%>




求高手指点,rssql.AddNew 这个后我不是直接添加,而是对比一下里面有没有这条数据的id,但是如果有的话,还要对比他其他的东西,如果有不同的,就update,如果都相同,就不插入!
我是学.net的,asp不会,思想步骤知道,但是不知道语言怎么写,求高手指点指点!!感激不尽!!
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2012-06-28
  • 打赏
  • 举报
回复
QQ348736477
dajin0530 2012-06-28
  • 打赏
  • 举报
回复
怎么搞得,不能说话吗
dajin0530 2012-06-28
  • 打赏
  • 举报
回复
卡看看
江湖百晓生 2012-06-28
  • 打赏
  • 举报
回复
大哥,能不能加小弟的QQ聊一下,我有点看不懂这个代码,我这个是网上下载的,跪谢了!


[Quote=引用 1 楼 的回复:]
//这个我们有很好的方法可以解决
rssql.Open "select * from mynumber where id="&rs(0),conn,1,3
if rssql.eof and rs.bof then
rssql.addnew
end if
'先以id号去查数据库,如果不存在直接addnew.如果存在就只是更新(而对应的内容更新不更新你下面已经有判断了)
[/Quote]
scscms太阳光 2012-06-28
  • 打赏
  • 举报
回复
//这个我们有很好的方法可以解决
rssql.Open "select * from mynumber where id="&rs(0),conn,1,3
if rssql.eof and rs.bof then
rssql.addnew
end if
'先以id号去查数据库,如果不存在直接addnew.如果存在就只是更新(而对应的内容更新不更新你下面已经有判断了)

28,390

社区成员

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

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