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")
它将搜索您的数据库(表、查询、表单、报告),以查找使用特定字段名的位置
文档和代码在这里