2012-07-31 76 views
1

我想通过VBA连接一个记录集的表。这可能吗?我基本上想要加入两张桌子,但是其中一张桌子在加入之前需要进一步滤除。加入MS Access中的记录集和表VBA

+0

您通常可以使用UNION来连接两个记录集(假设您的意思是追加而不是合并)如果这不是您想要的,那么更多的细节可能会有用。 – 2012-07-31 22:52:47

回答

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 
2

不能使用在记录联接,据我所知。而且,即使有可能,也将需要是太令人费解是有用的代码。)

我建议,而不是使用记录的加盟,从记录作临时

或者,使用您用于使记录集直接创建临时表的查询。然后使用SQL查询将第一个表与临时表连接起来。
假设您的数据库中有一张表表1表A;

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结果放在数据库中的另一个表中。或者,您可以将结果保存在记录集中。

+0

究竟是table1,tableA,joinedTable和tempTable?我很难理解在示例中哪个是哪个。 – Paradox 2016-07-21 13:38:12

+0

我最终找到了清晰的[这里](https://www.tutorialspoint.com/sql/sql-inner-joins.htm)。 – Paradox 2016-07-21 14:02:44