Mostrar u ocultar lbl en formulario

De nuevo disculpen que los moleste otra vez pero es que trato de hacerlo yo y no se que hago mal que no me sale, quiero poner en mi formulario que por ejemplo si el control vacaciones tiene un monto salga en ese registro de ese usuario la palabra vacaciones pero si esta en cero entonces no muestre nada y no se como hacer, probé con esto y nada, txtvacaciones es donde va el monto y txtvaca es el control donde debe salir la palabra vacaciones.

If Me.txtVacaciones = Me.Salario_Basico Then
Me.txtVaca.Enabled = True
End If

También así

If Me.txtVacaciones = 0 Then
Me.txtVaca.Enabled = False

else

Me.txtVaca.Enabled = True
End If

Y tampoco, pero también probé así

If Me.txtVacaciones = "0" Then
Me.txtVaca.Enabled = False

else

Me.txtVaca.Enabled = True
End If

Y así

If Me.txtVacaciones <> "" Then
Me.txtVaca.Enabled = False

else

Me.txtVaca.Enabled = True
End If

Y menos

1 Respuesta

Respuesta
2

Yorman: Como primera aproximación porque no veo claro que uses Enabled, después de citar >

"... Pero si esta en cero entonces no muestre nada ..."

.Enabled = True >> Es control Activado

.Visible = True >> Es control Visible

. Locked = True >> Es control Bloqueado y como ideas, para dejar un Control en Blanco o con un Valor >>

If Me.txtVacaciones = Me.Salario_Basico Then
Me.txtVaca = "Vacaciones"

ElseIf Me.TxtVacaciones = 0 Then

Me.TxtVaca = Null

Else

'Lo que quieras hacer
End If

También se puede usar un Select Case. Un saludo >> Jacinto

Amigo nada mira como tengo la cosa aquí ja ja

y el codigo esta así

Private Sub Form_Load()
If Me.txtVacaciones = Me.Total_Cobro Then
Me.txtVaca = "Vacaciones"
ElseIf Me.txtVacaciones = 0 Then
Me.txtVaca = Null
End If
End Sub

Y donde esta el circulo rojo debería aparecer la palabra Vacaciones y el código lo coloque en al cargar formulario

Aunque la idea es que salga en el informe de esas boletas

Yorman: Sin entrar a valorar ahora el lugar idóneo para el Código, lo que me extraña es que no te aparezca nada slavo que tengas ese control o no se trate de un TextBox.

En el titulo de la Pregunta ponías una lbl (Etiqueta)

Si eso fuera así, me extraña también que no te de error, pero aventurando que TxtVaca sea eso (una etiqueta)

If Me.txtVacaciones = Me.Total_Cobro Then
Me.txtVaca.Caption = "Vacaciones"
ElseIf Me.txtVacaciones = 0 Then
Me.txtVaca.Caption = ""
End If

Otra anomalía se puede presentar si TxtVacaciones no es un campo Numérico.

La verdad es que son ideas porque solo tu tienes delante los Objetos. Mira esas cuestioes y me comentas. Un saludo >> Jacinto

Si txtvacaciones es numérico porque es un campo de moneda y también es un campo de texto, había colocado un la etiqueta por eso lo de titulo pero antes de consultar aquí hice varias pruebas para estar seguro de que no me servía y los dos tanto txtvacaciones y total_cobro son numéricos 

Ahhhh me faltó decirte que el control txtvaca no está en la tabla ni embargo la consulta solo lo saque independiente eso afectará?

Yorman: Si el TxtVaca es independiente no debería de influir en que tome el valor, pero si que influye en el lugar donde está el código, que debe ser en el Form:Current() >> Al actualizar registro.

Cambialo a ese Evento y fuerza un menja para ver que valor tiene TxtVaca, por si no toma ninguno

If Me.txtVacaciones = Me.Total_Cobro Then
Me.txtVaca = "Vacaciones"
ElseIf Me.txtVacaciones = 0 Then
Me.txtVaca = Null

Else

MsgBox "El valor que toma el cuadro de texto TxtVaca es: " & Me.TxtVaca,vbINformation,"VALOR CUADRO TEXTO"
End If

Si toma algún valor el mensaje no debe salir y si te sale algo falla. Saludos >> Jacinto

Hola Jacinto ya me sale la palabra vacaciones y era culpa mía porque le estaba poniendo al cuadro de texto la palabra vacaciones y no lo dejaba vació ja ja disculpa, pero ahora trato de hacer lo mismo en el informe para que cuando se le imprima la boleta al empleado sepa que se esta pagando las vacaciones y estoy haciendo lo mismo pero no me sale la palabra vacaciones y solo copio y pego porque los controles son los mismos, de verdad como que la programación no es para mi jejejejejejeje

Private Sub Report_Current()
If Me.txtVacaciones = Me.Total_Cobro Then
Me.txtVaca = "Vacaciones"
ElseIf Me.txtVacaciones = 0 Then
Me.txtVaca = Null
End If
End Sub

Yorman: Primera etapa conseguida, y ahora vamos a por la final.

En el informe has de poner el mísmo código, pero no en el evento Form_Current(), sino en el Evento "Al dar formato" de la "Sección" del informe en la que están esos controles.

Vamos a suponer que están en el detalle:

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If Me.txtVacaciones = Me.Total_Cobro Then
    Me.txtVaca = "Vacaciones"
ElseIf Me.txtVacaciones = 0 Then
    Me.txtVaca = Null
End If
End Sub

Si quieres que el asistente te genere la primera y última línea, marcas la sección en vista de diseño, vas a Propiedades, pestaña Eventos y ahí verás >> Al dar formato, que creo es la segunda o tercera línea. A la drecha los tres puntos y sobre el Formulario pequeño emergente que se te abre, pulsas la tercera opción que es generar código. Te genera la primera y última línea y en medio pones los If... Ya me contarás. Un saludo >> Jacinto

¡Gracias! De verdad ustedes son lo mejor no se les escapa nada, tengo que ponerme a practicar y a estudiar más todo esto, muchas gracias Jacinto saludos estoy a la orden cualquier cosa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas