在MS Access 2010中,我将TableA与TableB的一对多相关联,而TableB与TableC的一对多相关。 TableC有一个数字字段和一个日期字段(除了查找字段外)。
FormA的数据源是一个连接TableA和TableB的选择查询。我想向FormA添加一个额外的只读字段,其中包含TableC中来自具有最新日期的行的数字字段。
这样做的最佳方法是什么?我应该在TableB中创建一个字段并创建一个更新查询(或宏?),在连接查询运行之前填充该列?
感谢。
答案 0 :(得分:0)
这是一个表单,您需要只读,因此DlookUp应该适合:http://support.microsoft.com/kb/208786
= DLookup("[numeric field]", "TableC", "[LookupKey] = " & [PK] & " AND TheDate = DMax(""TheDate"", ""TableC"", ""LookupKey=" & [PK] & """)")
OP的编辑有两个问题,第一个是它表明date
是一个可接受的字段名称,它是一个保留字,不应该使用。其次,它建议在DlookUp中需要方括号,它们不是。
可替换地:
Dim rs As DAO.Recordset
s = "SELECT TOP 1 c.[numeric field] " _
& "FROM TableC c " _
& "WHERE c.LookupKey= " & Me.[PK]
& "ORDER BY c.TheDate DESC"
set rs = currentDB.Openrecordset(s)
Me.SomeControl = rs![numeric field]