通过 Visual Basic 从 Access 表中获取列的名称



我正在尝试将表的名称放入列表中,以便我可以使用它们创建一个SQL表。

我试图像SQL一样用information_scheme来做到这一点,但MS Access不支持它。

我不确定您是否希望根据问题标题获取列名称:

通过 Visual Basic 从 Access 表中获取的名称

或者根据您的问题内容显示表格名称:

我正在尝试将表的名称放入列表中,以便可以使用它们创建一个SQL表。

如果是前者,则可以循环访问相关 TableDef 对象的 Fields 集合,并查询每个 Field 对象的Name属性。

例如,以下函数将返回具有所提供名称的表所持有的字段名称数组:

Function FieldNames(strTbl As String) As String()
Dim dbs As DAO.Database
Dim def As DAO.TableDef
Dim fld As DAO.Field
Dim idx As Integer: idx = 0
Set dbs = CurrentDb
Set def = dbs.TableDefs(strTbl)
Dim rtn() As String
ReDim rtn(0 To def.Fields.Count - 1)
For Each fld In def.Fields
rtn(idx) = fld.Name
idx = idx + 1
Next fld
FieldNames = rtn
End Function

即时窗口 (Ctrl+G( 示例输出:

x = FieldNames("YourTable")
?x(0)
Field1
?x(1)
Field2
?x(2)
Field3

相反,如果要获取数据库中所有表名的数组,则可以循环访问数据库中的 TableDefs 集合,如以下函数所示:

Function TableNames() As String()
Dim dbs As DAO.Database
Dim def As DAO.TableDef
Dim idx As Integer: idx = 0
Set dbs = CurrentDb
Dim rtn() As String
ReDim rtn(0 To dbs.TableDefs.Count - 1)
For Each def In dbs.TableDefs
rtn(idx) = def.Name
idx = idx + 1
Next def
TableNames = rtn
End Function

最新更新