| 网站首页 | 新闻 | 新书 | 专家 | 技巧 | 源码作品 | 工具/资源 | 商城 | 风采 | 留言 | 论坛 | 网址 | 承接 | 
您现在的位置: Access/Office中国 >> 技巧 >> Access >> DAOADOADP链接表DBMS >> 文章正文 用户登录 新用户注册
搜索整个数据库中指定的文字         ★★★
搜索整个数据库中指定的文字
作者:cg1 文章来源:Access911 点击数: 本日:{$DayHits} 更新时间:2005-2-6 12:35:16

原文:http://access911.net/72FAB31E17DCEAF3.htm

下列代码搜索整个 SQL SERVER 数据库,找所有 VarChar 字段,只要包含搜索字串的就报告。我在查看其他软件的结构时使用的一段代码,现在贴出来。


Function test2()
    SearchAllDatabase "xk"
End Function

Function SearchAllDatabase(strFind As String)
    Dim MyTableName As String
    Dim MyFieldName As String
   
   
    Dim MyDB As New ADOX.Catalog
    Dim MyTable As ADOX.Table
    Dim MyField As ADOX.Column
    Dim pro
   
   
    On Error GoTo Err_GetFieldDescription
    Dim strCnn As String
    strConn = "Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=SA;Initial Catalog=;Data Source="
    Dim Conn As New ADODB.Connection
    Conn.Open strConn
    Dim strSQL As String
    MyDB.ActiveConnection = Conn
   
   
    Dim Rs As New ADODB.Recordset
    'CurrentProject.Connection.Execute "delete from 表1"
    For Each MyTable In MyDB.Tables
        If MyTable.Type = "table" Then
            For Each MyField In MyTable.Columns
           
                If MyField.Type = adVarChar Then
                    strSQL = strSQL & " or " & MyField.Name & " like '%" & strFind & "%'"
                    'CurrentProject.Connection.Execute "insert into 表1(a) values ('" & MyTable.Name & Chr(45) & MyField.Name & Chr(45) & FieldTypeD(MyField.Type) & Chr(45) & MyField.DefinedSize & "')"
                End If
            Next
            DoEvents
            If strSQL <> "" Then
                strSQL = Right(strSQL, Len(strSQL) - 3)
                strSQL = "select count(*) from " & MyTable.Name & " where " & strSQL & vbCrLf
                Rs.Open strSQL, Conn, 1, 1
                If Rs(0) > 0 Then
                    Debug.Print MyTable.Name & " 中找到 " & Rs(0) & " 条指定的数据"
                End If
                Rs.Close
            End If
            strSQL = ""
        End If
    Next
     
    
    Set MyDB = Nothing
    Conn.Close
   

Bye_GetFieldDescription:
    Exit Function

Err_GetFieldDescription:
    Beep
    MsgBox Err.Description, vbExclamation
    GetFieldDescription = Null
    Resume Bye_GetFieldDescription

End Function
 

文章录入:tmtony    责任编辑:tmtony 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    再提数据库正规化之数据
    数据库设计注意事项
    压缩、修复指定的数据库
    将Access数据库移植到SQ
    Access键盘快捷键大全
    模块的使用技巧
    数据库设计的技巧
    Access数据库开发技巧
    Access数据库开发技巧
    Access开发技巧
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)