ACCESS全库搜索

有时需要在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
%>


二、返回结果示例:

引用内容 引用内容
搜索重新开一贴结果:
表:Dv_bbs1 字段:Topic 行:11
表:Dv_Board 字段:LastPost 行:1
表:Dv_Board 字段:LastPost 行:2
表:Dv_Topic 字段:Title 行:3

总计34个表


三、实例下载

本例结合"先锋无组件上传类(杜绝上传漏洞版) Ver2004"实现搜索指定数据库内容:点击下载

上一篇: 巧用Server.Transfer回传消息
下一篇: XML动态菜单
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 4818
发表评论
登录后再发表评论!