2011-03-04 76 views
0

这应该很明显,但我很难。如何使用其他记录集中的值打开Access记录集

我在Access 2007中,并且正在循环查看记录。我想在第一个过滤第二个记录集。

的代码如下:

Dim db as Database 
Dim rst1 as DAO.Recordset, rst2 as DAO.Recordset 
Set rst1 = db.OpenRecordset("TABLE1", dbOpenDynaset) 

rst1.MoveFirst 
Do Until rst1.EOF 
    rst1.Edit 
    set rst2 = db.OpenRecordset("SELECT * FROM TABLE2 WHERE ID = 'rst1![ID]';") 
    .... 

这并不打开上过滤ID的记录集。但是,下面的代码运行时没有错误(其中ID = 0001),并且我得到了适当过滤的记录集。

set rst2 = db.OpenRecordset("SELECT * FROM TABLE2 WHERE ID = '0001';") 

我已经测试,以确保RST1![ID] = 0001。我有一个变量放在0001,放在变量声明,也没有运气。我注意到使用rst(“ID”)语法会导致立即出错。我也尝试在查询编辑器中构建SQL并复制和粘贴。

我错过了什么?

+0

这看起来真的很傻代码。你为什么认为你需要打开两个记录集? – 2011-03-05 21:47:39

回答

1

尝试类似:

sSql = "SELECT * FROM TABLE2 WHERE ID = '" & rst1!ID & "'" 
set rst2 = db.OpenRecordset(sSql) 
1

行更改为

set rst2 = db.OpenRecordset("SELECT * FROM TABLE2 WHERE ID = '" & rst1![ID] & "';")