我不确定您是否希望根据问题标题获取列名:
通过 Visual Basic 从 Access 表中获取列的名称
或每个问题内容的表名:
我正在尝试将表的名称放入一个列表中,以便我可以使用它们创建一个 SQL 表。
如果是前者,您可以遍历相关TableDef object 的Fields collection 并查询每个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 collection,如以下函数所示:
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