Ocultar eiqueta según resultado

El otro día me salvaron en como eligiendo una opción de un cuadro combinado se ocultaban las etiquetas, lo que necesito ahora es similar
Como ocultar una etiqueta según el resultado que se obtiene en otra etiqueta
Detallo:
La etiqueta "P10" tiene un calculo [p1] + [p3] ese resultado es en porcentaje
Por otro lado la etiqueta "imagen1" se tiene que ocultar si el valor de "P10" es menor que 60%

1 respuesta

Respuesta
1
Bien,
Ve "al perder enfoque" de P3 y ponle código.
If P1+P3 <60 then
    imagen1.visible=False
else
    imagen1.visible=true
end if
La fórmula funciona perfectamente, pero no la puedo aplicar por los siguiente,
El resultado de la etiqueta "p3", se actualiza a medida que se llena una grilla de preguntas, probé con afterUpdate pero me tira un error creo que se debe por que en "p3" cuando se inicia la grilla no tiene ningún valor, ¿cómo puedo corregirlo?
Modifica el código por este
DoCmd. DoMenuItem acFormBar, acRecordsMenu, 5,, acMenuVer70
If P1+P3 <60 then
    imagen1.visible=False
else
    imagen1.visible=true
end if
El código que me indicas funciona, provisionalmente agregue un botón para que muestre la imagen que corresponde, se puede ver como se modifica es decir se oculta o se muestra la imagen a medida que se cargan los datos en la grilla, es decir cuando se actualizar la etiqueta "p3" ya que esta seria el objetivo, Después de esta prometo no molestar más
Con la instrucción:
DoCmd. DoMenuItem acFormBar, acRecordsMenu, 5,, acMenuVer70
Fuerzas una actualización, puedes ponerla "al perder enfoque" de cualquier textbox que necesites que actualice luego.
Funciona perfecto, gracias, ahora te hago una pequeña consulta, tengo la siguiente fórmula
TOTAL1 = [ACIERTOS1] / [INTENTOS1]
El problema es cuando en intentos da como resultado 0 o Nulo lo cual arroja un error, probé solucionarlo con
TOTAL1 = siInm(([INTENTOS1] > 0), ([ACIERTOS1] / [INTENTOS1]), "0")
¿Pero no lo soluciona que estoy haciendo mal?
La fórmula donde la tienes, ¿en el formulario o en código VB?
En codigo VB
Quítale las comillas al cero
Buenas
Te comento les quite las comillas pero sigo con el mismo problema, te detallo un poco más, tengo una grilla en la cual en cada pregunta tiene la opción de tres respuestas "si" "no" "n/a", a medida que se actualiza la carga de ellas se genera un calculo
los "si" sobre los "si" + "no" "(aciertos) /( Intentos)",
te dejo el código completo, donde se ven V1B, v2B, etc, son las opciones elegidas de cada pregunta,
luego se multiplica por un peso que tiene cada una de ellas ya que todas las preguntas no tienen la misma importancia,
todo sale perfecto mientras se usen "si" o "no" en las opciones,
el problema son los "N/A" solo cuando es en la primer pregunta que se utiliza, si se utiliza desde la segunda pregunta no hay problema.
Creo que el problema corresponde por que queda 0 / 0 y lógicamente da error,
el error me lo marca justamente en el calculo de Total1 donde se aplica "aciertos" sobre "intentos", que me recomendás para corregirlo
Sub PUNT()
Dim V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, INTENTOS1, ACIERTOS1, TOTAL1 As Double
ACIERTOS1 = 0#
'Aciertos "SI"
If V1B.Value = "SI" Then
V1 = 1 * Peso1.Value
End If
If V2B.Value = "SI" Then
V2 = 1 * peso2.Value
End If
If V3B.Value = "SI" Then
V3 = 1 * peso3.Value
End If
If V4B.Value = "SI" Then
V4 = 1 * peso4.Value
End If
If V5B.Value = "SI" Then
V5 = 1 * peso5.Value
End If
If V6B.Value = "SI" Then
V6 = 1 * peso6.Value
End If
If V7B.Value = "SI" Then
V7 = 1 * peso7.Value
End If
If V8B.Value = "SI" Then
V8 = 1 * peso8.Value
End If
ACIERTOS1 = CDbl(V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8)
P2.Value = ACIERTOS1
INTENTOS1 = 0#
If V1B.Value = "NO" Then
V9 = 1 * Peso1.Value
End If
If V2B.Value = "NO" Then
V10 = 1 * peso2.Value
End If
If V3B.Value = "NO" Then
V11 = 1 * peso3.Value
End If
If V4B.Value = "NO" Then
V12 = 1 * peso4.Value
End If
If V5B.Value = "NO" Then
V13 = 1 * peso5.Value
End If
If V6B.Value = "NO" Then
V14 = 1 * peso6.Value
End If
If V7B.Value = "NO" Then
V15 = 1 * peso7.Value
End If
If V8B.Value = "NO" Then
V16 = 1 * peso8.Value
End If
INTENTOS1 = CDbl(V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8 + V9 + V10 + V11 + V12 + V13 + V14 + V15 + V16)
P3.Value = INTENTOS1
TOTAL1 = IIf(([INTENTOS1] = 0), 0, ([ACIERTOS1] / [INTENTOS1]))
'TOTAL1 = [ACIERTOS1] / [INTENTOS1]
P1.Value = TOTAL1
End Sub
Bien,
Sustituye
Total1 = IIf(([Intentos1] = 0), 0, ([Aciertos1] / [Intentos1]))
Por
If [Intentos1]=0 then
     Total1 = [Aciertos1] / [Intentos1]
Else
     Total1 = 0
End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas