我有兩個表Table1
和Table2
。在Table1
有列叫做FileID
和Table2
有列叫做FileID
。現在FileID
不是唯一的,所以在兩個表中都有一些行重複FileID
。 我有一個Access中的表單,其中有一個從Table1
調用GetDate
的字段。 我需要的東西在VBA,如果你改變的形式(這是從Table1
表)上GetDate
一部分,那麼它應該與當前的日期和時間,這是Table2
編輯,更新記錄與DAO.Recordset
我做了以下更新列Date
辦法。但其更新只有Date
的第一條記錄從Table2
與當前時間,而不是第二個與FileID = 1
。 FileID = 1
有兩條記錄,在table2
中,所以它應該更新2條記錄與當前日期而不是一條。 這是我的代碼。
Option Compare Database
Private Sub GetDate_AfterUpdate()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
' Dim rst2 As DAO.Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("SELECT [GetDate], [DATE] FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID2 where Table1.FileID = Table1.FileID", dbOpenDynaset)
'Begin row processing
Do While Not rst.EOF
rst.Edit
rst![Date] = Now
rst.Update
rst.MoveNext
Exit Do
Loop
rst.Close
Set rst = Nothing
End Sub
感謝您的幫助!
代碼看起來很好,所以誤差必須在您用來設置記錄的查詢。你有沒有嘗試作爲一個查詢自己運行,並確保它返回兩個記錄?如果沒有,編輯它,直到它! – BFWebAdmin
查詢從兩個表中返回整個集合記錄。我不需要。所以我的另一個問題是,我可以做一個查詢,從表單中讀取「FileID」字段。例如。我正在嘗試編輯窗體上的「GetDate」字段和當前記錄的「FileID」,可以這樣說。2 – user3473275
是的,但我懷疑這是Google的工作,並且在查詢時玩了一會兒。但是,在這裏有一個奇怪的WHERE條件可能是一個起點:其中Table1.FileID = Table1.FileID將始終爲真,因此將返回所有記錄。如果這就是你想要的,那麼它是多餘的,應該被拿出來。如果這不是你想要的(正如我懷疑的那樣),那麼我猜想那就是你的錯誤所在。 – BFWebAdmin