MS Access:从一对多关系中选择一行

时间:2012-02-18 18:09:47

标签: ms-access select ms-access-2010

在MS Access 2010中,我将TableA与TableB的一对多相关联,而TableB与TableC的一对多相关。 TableC有一个数字字段和一个日期字段(除了查找字段外)。

FormA的数据源是一个连接TableA和TableB的选择查询。我想向FormA添加一个额外的只读字段,其中包含TableC中来自具有最新日期的行的数字字段。

这样做的最佳方法是什么?我应该在TableB中创建一个字段并创建一个更新查询(或宏?),在连接查询运行之前填充该列?

感谢。

1 个答案:

答案 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]