我有两个表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