Valor en cuadro de texto según condición

Si agrego un cuadro de texto txtEstado en la Sección de Detalle de un formulario que muestra los registros de una tabla T (campos: ..., Fecha,...), ¿sería posible establecer el valor de txtEstado, para cada registro, según sea el valor del campo Fecha, de modo que si Fecha es nulo, txtEstado="A" y si es no nulo, txtEstado="B"?

En las Propiedades de txtEstado, pestaña Datos, tenemos Origen de Control, Valor Predeterminado y Regla de validación, pero no sé cómo aplicar en ellos la condición que busco.

¿Cómo podría conseguirlo sin necesidad de agregar un campo adicional, "Estado", en la tabla T?

1 respuesta

Respuesta
1

Lo que buscas lo consigues fácil:

Abres el formulario en Vista Diseño, vas a la pestaña Datos, en Al activar Registro, le das a los (...) que aparecen a la derecha y Generar Código, y escribes este código:

Private Sub Form_Current()

If isnull(Me.Fecha) Then

Me.txtEstado.Value="A"

Else

Me.txtEstado="B"

End If
End Sub

Hola,

gracias por la ayuda, no obstante, no parece ser tan sencillo ya que si bien el txtEstado visualiza el valor correcto del If en un registro dado, resulta que el txtEstado de los registros restantes también visualizarán el mismo valor del If. Por ejemplo, si estoy en un registro con Fecha= null, el txtEstado = A, pero no sólo en él, sino en todos los registros restantes, independientemente de que en algunos de ellos Fecha no sea Null.

¿Qué opinas?

gracias

Prueba a poner Me.Refresh despues del End If.

Sucede lo mismo, creo que igual no tiene sentido lo que pretendo hacer basándome en un único cuadro de texto, pues en cada registro el txtEstado sólo puede almacenar un valor (y eso sí que lo hace bien en su registro).

Igual la única alternativa sea el uso de un campo adicional, "Estado", en la tabla T.

Un saludo

Por lo que comentas, entiendo que tienes el formulario diseñado como Tabular u Hoja de Datos, o que muestre varios registros (Formulario continuo)¿No?

Si ese es tu caso, y por el motivo que sea no le puedes cambiar el diseño o la propiedad Vista predeterminada del formulario(Vista diseño, pestaña Formato del formulario), no lo vas poder solucionar más que agregando el nuevo campo a la tabla.

Esto sucede porque txtEstado es un control independiente de los registros, y por medio del código lo único que puedes hacer es: o le das un valor fijo para todos, o uno relacionado con el registro activo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas