Jorge: Repasando mi respuesta, creo que no es adecuada y en su lugar te propongo:
Siguiendo la operativa para la creación de una consulta que te comento arriba, construyes una para guardarla, con el Nombre de: QryClientesEstadoActual (u otro Nombre que tu prefieras)
Lo que has de copiar en esa Consulta en vista SQL sería:
SELECT ClientesActualEstado.IdCliente, ClientesActualEstado.FechaEstado, ClientesActualEstado.Estado
FROM ClientesActualEstado
WHERE (((ClientesActualEstado.Estado) In (SELECT TOP 1 Estado FROM ClientesActualEstado AS DupliTabla WHERE DupliTabla.IdCliente = ClientesActualEstado.IdCliente ORDER BY DupliTabla.FechaEstado DESC, DupliTabla.Estado DESC)))
ORDER BY ClientesActualEstado. IdCliente, ClientesActualEstado. FechaEstado, ClientesActualEstado.Estado;
Al igual que te comentaba en mi primera respuesta, has de adecuar los Nombres a los que tu tengas. Lo de DupliTabla es un alias, que tu puedes sustituir por T1 por ejemplo
Después ya si desde tu Formulario en un Cuadro de Texto que voy a llamar TxtEstActualCliente, capturas el valor de ese Cliente en la Consulta creada.
Lo has de hacer en algún evento apropiado del Formulario. Ejemplo: Si vas a hacer un pedido, en el AfterUpdate del Cliente.
Me.TxtEstActualCliente = DLookUp(“Estado”,”QryClientesEstadoActual”, “IdCliente = “ & Me.idCliente)
Si ese Cliente no está te devolverá un Error, que se puede prevenir, pero como principio, asegura que esto que te envío te resuelve el problema. Un saludo >> Jacinto