Database 在MDB中查找字段的Access实用程序

Database 在MDB中查找字段的Access实用程序,database,ms-access,Database,Ms Access,嗨 我想找到一个特定的字段,它存在于Access数据库的表中。有什么实用程序可以找到这个吗?是的,你可以用VBA代码找到它。我已经给你发了电子邮件 Public Function FindField(fieldname As String) Dim db As Database Dim td As TableDef Dim fd As Field Set db = DBEngine(0)(0) db.TableDefs.Refresh Fo


我想找到一个特定的字段,它存在于Access数据库的表中。有什么实用程序可以找到这个吗?

是的,你可以用VBA代码找到它。我已经给你发了电子邮件

Public Function FindField(fieldname As String)


    Dim db As Database
    Dim td As TableDef
    Dim fd As Field

    Set db = DBEngine(0)(0)
    db.TableDefs.Refresh

    For Each td In db.TableDefs
        For Each fd In td.fields
            If fieldname = fd.Name Then
                Debug.Print td.Name
            End If
        Next
    Next
    db.Close

End Function

是的,你可以用VBA代码来做。我已经给你发了电子邮件

Public Function FindField(fieldname As String)


    Dim db As Database
    Dim td As TableDef
    Dim fd As Field

    Set db = DBEngine(0)(0)
    db.TableDefs.Refresh

    For Each td In db.TableDefs
        For Each fd In td.fields
            If fieldname = fd.Name Then
                Debug.Print td.Name
            End If
        Next
    Next
    db.Close

End Function

您可以使用ADO模式:

   Function ListTablesContainingField(SelectFieldName) As String
   ''Tables returned will include linked tables
   Dim cn As New ADODB.Connection
   Dim rs As ADODB.Recordset
   Dim strTempList As String

       On Error GoTo Error_Trap

       Set cn = CurrentProject.Connection

       ''Get names of all tables that have a column called <SelectFieldName>
       Set rs = cn.OpenSchema(adSchemaColumns, _
       Array(Empty, Empty, Empty, SelectFieldName))

       ''List the tables that have been selected
       While Not rs.EOF
           ''Exclude MS system tables
           If Left(rs!Table_Name, 4) <> "MSys" Then
               strTempList = strTempList & "," & rs!Table_Name
           End If
           rs.MoveNext
       Wend

       ListTablesContainingField = Mid(strTempList, 2)

   Exit_Here:

       rs.Close
       Set cn = Nothing
       Exit Function

   Error_Trap:

       MsgBox Err.Description
       Resume Exit_Here
   End Function
函数ListTablesContainingField(SelectFieldName)作为字符串
''返回的表将包括链接表
Dim cn作为新的ADODB.连接
将rs设置为ADODB.Recordset
作为字符串的Dim strTempList
关于错误转到错误陷阱
设置cn=CurrentProject.Connection
''获取包含名为
设置rs=cn.OpenSchema(adSchemaColumns_
数组(空、空、空、SelectFieldName))
''列出已选择的表
而不是卢比
''排除MS系统表
如果左(rs!表格名称,4)“MSys”,则
strTempList=strTempList&“,”&rs!表名称
如果结束
下一个
温德
ListTablesContainingField=Mid(strTempList,2)
从这里退出:
rs.Close
设置cn=Nothing
退出功能
错误陷阱:
MsgBox错误说明
继续离开这里
端函数

另请参见:

您可以使用ADO模式:

   Function ListTablesContainingField(SelectFieldName) As String
   ''Tables returned will include linked tables
   Dim cn As New ADODB.Connection
   Dim rs As ADODB.Recordset
   Dim strTempList As String

       On Error GoTo Error_Trap

       Set cn = CurrentProject.Connection

       ''Get names of all tables that have a column called <SelectFieldName>
       Set rs = cn.OpenSchema(adSchemaColumns, _
       Array(Empty, Empty, Empty, SelectFieldName))

       ''List the tables that have been selected
       While Not rs.EOF
           ''Exclude MS system tables
           If Left(rs!Table_Name, 4) <> "MSys" Then
               strTempList = strTempList & "," & rs!Table_Name
           End If
           rs.MoveNext
       Wend

       ListTablesContainingField = Mid(strTempList, 2)

   Exit_Here:

       rs.Close
       Set cn = Nothing
       Exit Function

   Error_Trap:

       MsgBox Err.Description
       Resume Exit_Here
   End Function
函数ListTablesContainingField(SelectFieldName)作为字符串
''返回的表将包括链接表
Dim cn作为新的ADODB.连接
将rs设置为ADODB.Recordset
作为字符串的Dim strTempList
关于错误转到错误陷阱
设置cn=CurrentProject.Connection
''获取包含名为
设置rs=cn.OpenSchema(adSchemaColumns_
数组(空、空、空、SelectFieldName))
''列出已选择的表
而不是卢比
''排除MS系统表
如果左(rs!表格名称,4)“MSys”,则
strTempList=strTempList&“,”&rs!表名称
如果结束
下一个
温德
ListTablesContainingField=Mid(strTempList,2)
从这里退出:
rs.Close
设置cn=Nothing
退出功能
错误陷阱:
MsgBox错误说明
继续离开这里
端函数

另请参见:

我在access和Allen Browne编写的vba模块中做了大量维护和集成工作

在即时窗口中键入

?Findfield("myfieldname")
它将搜索您的数据库(表、查询、表单、报告),以查找使用特定字段名的位置


这里有文档和代码

我在access和Allen Browne编写的vba模块中做了大量维护和集成工作

在即时窗口中键入

?Findfield("myfieldname")
它将搜索您的数据库(表、查询、表单、报告),以查找使用特定字段名的位置

文档和代码在这里