Question

Dans MS Access 2010, j'ai TableA afférant à plusieurs à TableB et TableB liés l'un à plusieurs à TableC. TableC a un champ numérique et un champ de date (en plus du champ de recherche).

datasource Forma est une requête de sélection qui joint TableA et TableB. Je veux ajouter un champ de lecture seule supplémentaire FormA qui contient le champ numérique de TableC de la ligne à la date la plus récente.

Quelle est la meilleure façon de s'y prendre pour le faire? Dois-je créer un champ dans TableB et créer une requête de mise à jour (ou macro?) Qui renseigne cette colonne avant la requête de jointure en marche?

Merci.

Était-ce utile?

La solution

Ceci est une forme et vous avez besoin de lecture seule, donc DLookUp devrait convenir: http://support.microsoft .com / kb / 208786

= DLookup("[numeric field]", "TableC", "[LookupKey] = " & [PK] & " AND TheDate = DMax(""TheDate"", ""TableC"", ""LookupKey=" & [PK] & """)")

Il y a deux problèmes avec le montage par l'OP, la première est qu'il suggère que dateis un nom de champ acceptable, il est un mot réservé et ne doit pas être utilisé. En second lieu, il suggère que les crochets sont nécessaires DLookUp, ils ne sont pas.

Vous pouvez également:

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]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top