Access valor de un campo a otro de otra tabla

Access 2003, tabla principal tengo un campo con el tipo de combustible que utiliza cada vehículo cargado en la misma. Tabla relacionada (por medio de la patente) de Cargas de combustible tengo fecha, litros cargados, etc. Como a posteriori voy a necesitar hacer un stock con otra tabla de compras de combustible, para evitar crear otra tabla tuve que agregar el campo TipodeCombustible también en la tabla de Cargas (así luego me sirve de "campo común" con la de compras de combustible.

Básicamente lo que ahora necesito es que cuando el operador esté completando el subformulario de cargas de combustible, al terminar de cargar un registro el campo TipodeCombustible se llene sólo, tomando el valor del campo TipodeCombustible de la tabla vehículos y sin necesidad de que el operador ni siquiera deba "pasar" por ese campo para confirmar ese dato.

¿Cómo puedo hacerlo?

1 Respuesta

Respuesta
1

Usa la función DLookUp() para obtener el tipo de combustible, pasándole como criterio el campo clave que identifique al vehículo. Algo así, en el evento después de actualizar de alguno de tus campos del formulario:

Me.TipoCombustible=DLookUp("TipoCombustible","Vehiculos","Matricula='" & Me.Matricula & "'")

Saludos!


Había probado poner:

[TIPOCOMBUSTIBLE] = Forms![CargasdeCombustible]![TIPOCOMBUSTIBLE]

y funcionaba, pero se me presentaba el problema de que el mismo subformulario a veces lo utilizaba desde un formulario (CargasdeCombustible) y a veces desde otro (Moviles). Obviamente con esa sentencia, cuando lo usaba desde CargasdeCombustible funcionaba bárbaro, pero cuando quería usarlo desde el formulario Moviles me tiraba error porque la sentencia estaba haciendo referencia a otro formulario. 

Con tu aporte ese problema quedó resuelto. Tuve un pequeño problema al principio, pero recordé que el campo PATENTE es alfanumérico y por ende había que ubicar bien el tema de las comillas dobles y simples. Quedó así y funciona bárbaro:

If IsNull(Me.TIPOCOMBUSTIBLE.Value) Then

Me.TIPOCOMBUSTIBLE = DLookup("[TIPOCOMBUSTIBLE]", "MOVILES", "[PATENTE] ='" & Me.PATENTE.Value & "'")

End If

¡Muchas Gracias y Excelente como siempre! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas