1

对于普通表,我可以使用

SELECT column_name FROM INFORMATION_SCHEMA_COLUMNS WHERE table_name = '" & Tbl & "' "

它有效......

但是在执行 VBA 代码期间,我还需要不是从表中检索列名,而是从查询后产生的表中检索列名,我怎样才能在 VBA 中获得它?

Dim Qry as QueryDef
Dim MrgTbls as QueryDef
Dim T1 as String
Dim T2 as String
Dim SQLJoin as String

...

Set MrgTbls = CurrentDb.CreateQueryDef(Qry.Name, SQLJoin)

...稍后我想创建一个查询,例如

SELECT column_name FROM INFORMATION_SCHEMA_COLUMNS WHERE table_name = 'MrgT' 

与其他表不同,它不返回任何内容,因为表 MrgT 不在 INFORMATION_SCHEMA_COLUMNS 中。

4

1 回答 1

1

要从 a 获取列名QueryDef,您可以使用该Fields集合:

Dim firstColumnName As String
firstColumnName = MrgTbls.Fields(0).Name

或者,您可以使用纯 SQLMSysObjectsMSysQueries系统表。有关此表结构的详细信息,请参见此处

于 2013-07-31T14:57:30.450 回答