Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> ADO/DAO/ADO.NET  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/VS.NET2005
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 AppleVB
 我家网
 911静态资料2
 a9 BBS
 911搜什么
 MCSE技术论坛
 CSharp911.net
 BBS新闻列表
 911静态资料
 911搜C S D N
 911搜全国公交线路
 Office中国
 Java 编程资料站
 Access开发在线
 Access软件网
 CSDN
 MS Support
 上海朋扬电脑
 access爱好者
 交流中心
 ezlavie
 艾赛思俱乐部
 设计在线
 搜CSDN V2
 搜CSDN V3
 oaup
 宇宙网络
 
访问人次
 1004164
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

搜索整个数据库,找一段文字

作者:cg1  摘自:access911.net  :cg1  更新日期:2005-1-20  浏览人次:

 

下列代码搜索整个 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


本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
     如何实现windows的搜索功能(查找指定文件/文件夹)?(二)
     如何实现windows的搜索功能(查找指定文件/文件夹)?(一)
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利