Domanda

In MS Access 2010, ho una tablea correlata a una to-to-many a TableB e TableB relativa a una to-to-many a Tablec. Tablec ha un campo numerico e un campo di data (oltre al campo di ricerca).

Forma's DataSource è una query selezionata che si unisce a Tablea e TableB. Voglio aggiungere un campo di sola lettura aggiuntivo a forma che contiene il campo numerico da Tablec dalla riga con la data più recente.

Qual è il modo migliore per farlo? Dovrei creare un campo in tableb e creare una query di aggiornamento (o macro?) Che popola quella colonna prima della query di join in esecuzione?

Grazie.

È stato utile?

Soluzione

Questo è un modulo e hai bisogno di lettura solo, quindi Dlookup dovrebbe adattarsi: http://support.microsoft.com/kb/208786

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

Ci sono due problemi con la modifica dell'OP, il primo è che lo suggerisce dateè un nome di campo accettabile, è una parola riservata e non dovrebbe essere utilizzata. In secondo luogo, suggerisce che le parentesi quadrate sono necessarie a Dlookup, non lo sono.

In alternativa:

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]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top