1

VBAを介してテーブルをレコードセットに結合しようとしています。これは可能ですか?基本的に2つのテーブルを結合したかったのですが、結合する前に、テーブルの1つをさらにフィルターで絞り込む必要がありました。

4

3 に答える 3

2

私はあなたが欲しいと思う:

SELECT ID, field1, field2 
FROM Table1 a
INNER JOIN (
    SELECT ID, field3, field4
    FROM Table2
    WHERE field5 = 42 ) b
ON a.ID = b.ID
于 2012-08-01T11:06:55.930 に答える
2

私の知る限り、レコードセットで結合を使用することはできません。たとえそれが可能であったとしても、複雑すぎて役に立たないコードが必要になります。)

結合でレコードセットを使用する代わりに、レコードセットから一時テーブルを作成することをお勧めします。

または、レコードセットの作成に使用したクエリを使用して、一時テーブルを直接作成します。次に、SQL クエリを使用して、最初のテーブルを一時テーブルに結合します。
データベースにテーブルtable1tableAがあるとします。

dim sqlString1 As String
dim sqlString2 As String
'the temporary table - this is what was in your recordset 
sqlString1 = "SELECT field1, field2 FROM table1 INTO tempTable"
'the join of existing tableA with the tempTable
sqlString2 = "SELECT field1, field2, fieldA, fieldB INTO joinedTable"& _
             "FROM table1"& _
             "JOIN tableA ON field1 = fieldA" 
CurrentDB.Execute sqlString1
CurrentDB.Execute sqlString2

JOIN結果をデータベースの別のテーブルに入れたことに注意してください。または、結果をレコードセットに保存することもできます。

于 2015-11-05T15:52:02.990 に答える