Hacer visible o invisible un texto en base a una selección de otro

He realizado una base de datos de clientes y hay tramites que ya finalizaron, he logrado bloquear los ya finalizados para que estos no sean cambiados luego de clickear sobre un campo que agregue de FINALIZADO = "si/no" y este evita la edición de los ya seleccionados, pero ahora quisiera que todos los demás campos dentro de la página cambiaran de color o agregarle un texto resaltado que me indique visualmente que este expediente ya esta terminado o bien algo más llamativo, como cambiar de color todos los registros si este campo FINALIZADO tiene seleccionado "si" o bien lo contrario en "no"... He estado dando vueltas y les coloco el código que tengo para la selección de edición y veremso si encuentran como lograr esto, dese ya muy agradecido por su tiempo y esfuerzo a esta duda.

Private Sub Form_Current()
If Not IsNull(Me.TERMINADO) Then
Me.AllowEdits = Not Me.TERMINADO
Else
Me.AllowEdits = True
End If
End Sub

1 Respuesta

Respuesta
1

Para hacer visible o no un objeto, tienes la propiedad Visible, que funciona igual que AllowEdits.

Por tanto si pones:

If Me.Finalizado=True Then

Me.CuadroTexto.Visible=True

Else

Me.CuadroTexto.Visible=False

End If

Se te mostrará el control llamado "CuadroTexto" si Finalizado está marcado, y si no lo está, quedará oculto.

También puedes jugar con los colores, por código (propiedad ForeColor), o bien usando el formato condicional.

Muchas gracias por la respuesxta, ¿todo esto lo hago en donde? Osea en que línea del código lo coloco porque créeme que soy un principiante solo he ido aprendiendo de algo en algo... antes del if va un

private sub

Como coloco este y así le doy entrada al código que me expones, gracias nuevamente.

Lo puedes poner en el mismo evento en el que bloqueas o no los registros.

Obviamente, usa los nombres de tus controles (campos), no hagas un simple copia-pega, porque lo más probable es que no te funcione...

Excelente la respuesta del código, ya lo probé y quedo así:

Private Sub Form_Current()
If Not IsNull(Me.TERMINADO) Then
Me.AllowEdits = Not Me.TERMINADO
Else
Me.AllowEdits = True
End If
If Me.TERMINADO = True Then
Me.Etiqueta226.Visible = True
Else
Me.Etiqueta226.Visible = False
End If
End Sub

Ahora si no es mucha la interrupción y molestadera, en esta misma página de formulario tengo más campos que ya no son editables, como los cambio de color en base a este campo que selecciona FINALIZADO. Así visualmente todos los registros son diferentes en base a la respuesta de "si/no" de este campo.

Como te decía puedes usar su propiedad forecolor, por ejemplo:

If Me.TERMINADO = True Then
Me.Etiqueta226.Visible = True

Me.Campo1.ForeColor=vbRed
Else
Me.Etiqueta226.Visible = False

Me.Campo1.ForeColor=vbWhite
End If

o bien usar el formato condicional:

https://support.office.com/es-es/article/cambiar-la-apariencia-de-un-control-mediante-el-formato-condicional-6ba9e9fa-4347-4183-b335-44e43b05e22f 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas