Hacer invisible un campo si una etiqueta es invisible

En un formulario tengo varias etiquetas lb1, lb2, lb3 ..., etc. Esas etiquetas se visualizan en un formulario según una determinada condición. Al mismo tiempo tengo varios textbox llamados d1, d2, d3 ..., etc. Lo que necesito es que cuando la etiqueta correspondiente esté invisible, también lo esté un campo determinado; por ejemplo, si lb2 está invisible que también tanga el mismo estado el campo d3.

Hice el siguiente código al abrir el formulario, pero la etiqueta está invisible y el campo visible.

If Me.lb1.Visible = True Then
Me.d1.Visible = true
Else
Me.d1.Visible = True
End If

1 Respuesta

Respuesta
1

Marcelo: Por lo que veo, obligas siempre a visualizar el control.

Si quieres que no se visualice sería>>

If Me.lb1.Visible = True Then
Me.d1.Visible = true
Else
Me.d1.Visible = False
End If

Muchísimas gracias por la rapidez de la respuesta, pero no anduvo. Lo puse al cargar el form y nada, lo escribí en el textbox d1 al actualizar y tampoco. Me parece que estoy haciendo algo mal. Si puedes ayudarme te lo agradezco de antemano.

Quería agregar que etiqueta y campo no están relacionados. El form es como si fuera un calendario para cargar las horas de acuerdo al día, pero que si es feriado la etiqueta y el campo no sean visibles.

Marcelo: Encantado de poder ayudarte, si puedo.

Dime por favor el proceso un poco mas completo, y si tienes el código actual de visualizar y ocultar los controles y en el evento en el que lo haces, mejor como punto de partida.

Si tu ves que nos vamos a alargar, pones tu BD, aquí en un enlace poniendo datos ficticios. Saludos>> Jacinto

Jacinto, disculpa la demora en contestar.

Te cuento que el código lo tomé de un viejo ejemplo de calendario de Marta, y es el siguiente: 

"

Private Function LLenaMes()
Dim ContadorMes As Long
Dim ContadorDia As Long
Dim primerDiaMes As Long
Dim diasMes As Long
Dim etiquetaDia As Long
Dim lbl As Label
Dim txt As TextBox

' calculamos los dias que tiene el mes
diasMes = Day(DateSerial(txtYear, cuadroMes + 1, 1) - 1)
' el dia de la semana en el que empieza el mes
primerDiaMes = DatePart("w", DateSerial(txtYear, cuadroMes, 1), vbMonday)
' tenemos 42 etiquetas para representar las 6 posibles semanas (enteras o no)
' que puede tener un mes, iniciamos un bucle para recorrer todas las etiquetas
For ContadorMes = 1 To 42
Set lbl = Controls("lbl" & Format(ContadorMes, "00"))
etiquetaDia = etiquetaDia + 1
' si la posicion de la etiqueta es menor a la que tiene que mostrar
' el primer dia del mes o superior a la del ultimo dia
' la hacemos invisible
If etiquetaDia < primerDiaMes Or etiquetaDia >= primerDiaMes + diasMes Then
lbl.Visible = False
Else
' en caso contrario la mostramos y asignamos el valor del dia correspondiente
lbl.Visible = True
lbl.Caption = etiquetaDia - primerDiaMes + 1
' remarcamos la etiqueta del dia actual
'If CVDate(lbl.Caption & "/" & CuadroMes & "/" & txtYear) = Date Then
' lbl.BorderColor = 255
' Else
' lbl.BorderColor = 16777215
'End If

End If
Next ContadorMes

End Function"

Lo quiero adaptar teniendo debajo de cada día un campo donde ingresaría la cantidad de horas que hace una persona, pero que cambie por los meses del calendario. 

Ok: Lo miro y te contesto. Un saludo >> Jacinto

¡Gracias Jacinto por toda tu ayuda.

Marcelo: Lo que comentas, que es bonito hacer como ejercicio, creo que luego tendrá mucho más desarrollo, porque los datos de los TextBox ha de corresponderse con los del día adecuado según el mes.

Dado que hay muchas cosas ya resueltas, en la Web deNeckkito, tienes un Planing Mensual, que está concebido para citas, pero se ajusta a tu necesidad.

http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/97-ejemplos-explicados/ejemplos-especiales/147-calendario-planning-mensual 

Miralo por favor. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas