2011-03-04 81 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] & "';")