不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
ACCESS全库搜索
编辑:dnawo 日期:2007-01-29
有时需要在ACCESS数据库中查找一特定字符串,ACCESS自身的查找功能只能实现一个一个表的去搜索,碰上表非常多的话,一次一次的按"CTRL+F",设定"查找内容"、"查找范围"和"匹配",这无疑是一件非常烦琐的事情!
一、下边的函数实现在ACCESS全库中搜索指定字符串:
<%
Function searchaccess(key,access)
Dim searchstr,searchstr2,conn,rs,rs2,sqlstr,t_count,table_name,i,j
Searchstr = key
Searchstr2 = ""
If searchstr ="" then
Searchaccess = searchaccess & "请输入搜索字符串!"
Exit function
End if
Searchaccess = searchaccess & "<b>搜索<font color=red>" & searchstr & "</font>结果:</b><br>"
On error resume next
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Connectionstring="provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Server.MapPath(access)
Conn.open
If err then
Searchaccess = searchaccess & "错误:找不到ACCESS数据库,请检查!"
err.clear
Response.End
End if
On error goto 0
T_count = 0
Set rs = Conn.openschema(20)
Do while not rs.eof
If rs("table_type")="TABLE" then
j = 0
T_count = T_count + 1
table_name = rs("table_name")
Sqlstr = "select * from " & table_name
Set rs2 = Server.CreateObject("ADODB.RecordSet")
Rs2.open sqlstr,conn,0,1
Do while not rs2.eof
j = j + 1
For i=0 to rs2.fields.count-1
If instr(rs2.fields(i).value,Searchstr)>0 then
searchstr2 = searchstr2 & "表:" & table_name & " 字段:" & rs2.fields(i).name & " 行:" & j & "<br>"
End if
Next
rs2.movenext
Loop
Rs2.close
Set rs2 = nothing
End if
Rs.movenext
Loop
If searchstr2 ="" then
Searchaccess = searchaccess & "Sorry,没有搜索到相关信息!"
Else
Searchaccess = searchaccess & searchstr2
End if
Searchaccess = searchaccess & "<p>"
Searchaccess = searchaccess & "<b>总计</b><font color=red>" & t_count & "</font><b>个表</b>"
Rs.close
Set rs = nothing
Conn.close
Set conn=nothing
End function
%>
二、返回结果示例:
引用内容
三、实例下载
本例结合"先锋无组件上传类(杜绝上传漏洞版) Ver2004"实现搜索指定数据库内容:点击下载
一、下边的函数实现在ACCESS全库中搜索指定字符串:
复制内容到剪贴板
程序代码

<%
Function searchaccess(key,access)
Dim searchstr,searchstr2,conn,rs,rs2,sqlstr,t_count,table_name,i,j
Searchstr = key
Searchstr2 = ""
If searchstr ="" then
Searchaccess = searchaccess & "请输入搜索字符串!"
Exit function
End if
Searchaccess = searchaccess & "<b>搜索<font color=red>" & searchstr & "</font>结果:</b><br>"
On error resume next
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Connectionstring="provider=Microsoft.Jet.OLEDB.4.0;Data source=" & Server.MapPath(access)
Conn.open
If err then
Searchaccess = searchaccess & "错误:找不到ACCESS数据库,请检查!"
err.clear
Response.End
End if
On error goto 0
T_count = 0
Set rs = Conn.openschema(20)
Do while not rs.eof
If rs("table_type")="TABLE" then
j = 0
T_count = T_count + 1
table_name = rs("table_name")
Sqlstr = "select * from " & table_name
Set rs2 = Server.CreateObject("ADODB.RecordSet")
Rs2.open sqlstr,conn,0,1
Do while not rs2.eof
j = j + 1
For i=0 to rs2.fields.count-1
If instr(rs2.fields(i).value,Searchstr)>0 then
searchstr2 = searchstr2 & "表:" & table_name & " 字段:" & rs2.fields(i).name & " 行:" & j & "<br>"
End if
Next
rs2.movenext
Loop
Rs2.close
Set rs2 = nothing
End if
Rs.movenext
Loop
If searchstr2 ="" then
Searchaccess = searchaccess & "Sorry,没有搜索到相关信息!"
Else
Searchaccess = searchaccess & searchstr2
End if
Searchaccess = searchaccess & "<p>"
Searchaccess = searchaccess & "<b>总计</b><font color=red>" & t_count & "</font><b>个表</b>"
Rs.close
Set rs = nothing
Conn.close
Set conn=nothing
End function
%>
二、返回结果示例:

搜索重新开一贴结果:
表:Dv_bbs1 字段:Topic 行:11
表:Dv_Board 字段:LastPost 行:1
表:Dv_Board 字段:LastPost 行:2
表:Dv_Topic 字段:Title 行:3
总计34个表
表:Dv_bbs1 字段:Topic 行:11
表:Dv_Board 字段:LastPost 行:1
表:Dv_Board 字段:LastPost 行:2
表:Dv_Topic 字段:Title 行:3
总计34个表
三、实例下载
本例结合"先锋无组件上传类(杜绝上传漏洞版) Ver2004"实现搜索指定数据库内容:点击下载
评论: 0 | 引用: 0 | 查看次数: 5074
发表评论
请登录后再发表评论!