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

から列名を取得するには、コレクションQueryDefを使用できます。Fields

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

または、純粋な SQL とMSysObjectsおよびMSysQueriesシステム テーブルを使用することもできます。このテーブルの構造の詳細については、こちらを参照してください。

于 2013-07-31T14:57:30.450 に答える