我正在尝试将表的名称放入列表中,以便可以使用它们创建一个SQL表。
我试图像SQL一样使用information_scheme
执行此操作,但是MS Access不支持它。
我不确定您是否要获取每个问题标题的列名:
通过Visual Basic从Access表中获取列的名称
或每个问题内容的表名:
我正在尝试将表的名称放入列表中,以便我可以用它们创建一个SQL表。
[如果是前者,则可以遍历相关Fields collection的TableDef object并查询每个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