Activar/Mostrar campos en formulario según otro campo

Estoy haciendo un proyecto de la U y no se utilizar access, pero en este sitio he encontrado mucha ayuda pero hay una que no resuelvo, espero me puedas ayudar.
Tengo un formulario que lo realize según una tabla, este formulario tiene 4 campos para asignar una nota cada bimestre, un campo promedio para el promedio de las 4 notas el cual lo calculo en origen de control, luego status según valor de promedio = Aprobado, Reprobado, Ademas otros campos, 1era recuperación, status1, 2da recuperación, status2.
Lo que deseo hacer es que si promedio < 60 me active y aplique la formula de origen de control de 1era recuperacion y de este status1.
Si 1era recuperacion < 60 active y aplique la formula de origen de control de 2da recuperación y statyus2. (Origen de control status, status1 y status2 =SiInm([ejemplo]<60,"aprobado","Reprobado")
Espero me puedas ayudar y desde ya gracias porque tengo que entregar ese proyecto y no logro concluir eso.

1 respuesta

Respuesta
1
Bien,
En el procedimiento del evento "al activar registro" del formulario ponle el siguiente código
If [ejemplo]<60 then
    status1.Value = "aprobado"
else
    status1.Value="reprobado"
end if
No se muy bien que deseas que pase con status2.
Pero tampoco se muy bien si esto es lo que necesitas. ¿Voy bien?
Hola de nuevo gracias por responder tan pronto, pero voy a tratar de explicarlo de nuevo agradezco tu ayuda.
Tengo 6 campos: Promedio, Status, 1era Recuperación, Status1, 2da Recuperación Status2. De los cuales me interesa que se vean o que estén activos solo promedio y Status, dependiendo del valor que tome promedio active 1era recuperación y status1, dependiendo del valor de 1era recuperación me active 2da recuperación y status2.
si promedio < 60, Status = Reprobado
Entonces active 1era recuperación y statu1.  si 1era recuperacion < 60, status1 = reprobado.
Entonces active 2da recuperación y statu2.  2da recuperacion < 60, status2 = reprobado.
Es para saber si un alumno aprueba o reprueba después de sus 4 bimestres normales y 2 recuperaciones. (Oportunidades). Perdón por el texto tan largo pero es que no logre explicarlo de otra manera. Y de nuevo te agradezco un montón.
¿Puedes ponerme un ejemplo de todos los casos que se pueden dar?
si promedio < 60, status = "Aprobado","Reprobado"
si 1era recuperacion < 60, Status1= "Aprobado","Reprobado"
si 2da recuperacion < 60, Status2= "Aprobado","Reprobado"
Siempre dependiendo de lo que dije anteriormente, 1era recuperación y status1 se activa según el valor de promedio. Y 2da recuperación y status2 se activa según el valor de 1era recuperación.
Gracias por tus prontas respuestas, interés y tiempo dedicado.
No entiendo el valor "aprobado","reprobado", ¿o es uno o es el otro no?
¿Cuándo es "aprobado" y cuando es reprobado?
A ver si es esto...
Ponemos en Visible = "no", 1era recuperación, 2darecuperacion, status1 y status2
En el procedimiento del evento "al activar registro":
If promedio.value < "60" then
    status.Value = "aprobado"
    1era_recuperacion.Visible = False
    2da_recuperacion.Visible = False
    status1.Visible = False
    status2.Visible = False
else
    status.Value="reprobado"
    status1.Visible = True
    1era_recuperacion.Visible = True
    If 1era_recuperacion.value < "60" then
        status1.Value="Aprobado"
        2da_recuperacion.Visible = False
        status2.Visible = False
    else
        status1.Value="Reprobado"
        2da_recuperacion.Visible = True
        status2.Visible = True
        if 2da_recuperacion.value < "60" then
            status2.Value = "Aprobado"
        else
            status2.Value = "Reprobado"
        end if
    end if
end if
Hola de nuevo gracias por tu respuesta, me sirvió de mucho.
Hice todo lo que me dijiste pero no me lo he resuelto del todo.
El Código lo modifique según los datos que tengo en el formulario y quedo así:
Private Sub Form_Current()
If Promedio.Value > "60" Then
    Status.Value = "Aprobado"
    Primera_Recuperacion.Visible = False
    Status1.Visible = False
    Segunda_Recuperacion.Visible = False
    Status2.Visible = False
Else
    Status.Value = "Reprobado"
    Primera_Recuperacion.Visible = True
    Status1.Visible = True
    Segunda_Recuperacion.Visible = False
    Status2.Visible = False
    If Primera_Recuperacion.Value > "60" Then
        Status1.Value = "Aprobado"
        Segunda_Recuperacion.Visible = False
        Status2.Visible = False
    Else
        Status1.Value = "Reprobado"
        Segunda_Recuperacion.Visible = True
        Status2.Visible = True
            If Segunda_Recuperacion.Value > "60" Then
                Status2.Value = "Aprobado"
            Else
                Status2.Value = "Reprobado"
            End If
    End If
End If
End Sub
Ahora el Problema es que tengo que actualizar cada vez que realizo cambios en el registro y solo me funciona con el primer registro. La verdad no se que esta mal.
Te sigo agradeciendo por todo. Este es mi correo [email protected] si puedes enviarme o darme tu correo para enviarte una foto del formulario para que tengas mejor la idea, claro si puedes si no no hay problema.
Vale, pues solo habrá que forzar la actualización.
Create una macro que se llame Actualizar con una única linea
EjecutarComando -> Actualizar
Y en el procedimiento del evento, "al perder enfoque" de los campos susceptibles de necesitar esa actualización ponle que haga la macro que has hecho
Gracias por toda tu ayuda que me has brindado hasta ahora.
Pero lastimosamente me sigue dando problemas, por ejemplo el campo Primera Recuperación que es al que le asigno un numero, no me retiene el numero o sea no lo guarda. Y Status1 debería cambiar al ingresarle un numero a primera recuperación y debería mostrar Aprobado o Reprobado según el numero de primera recuperación pero no lo hace. Lo mismo me pasa con segunda recuperación y status2.
Ya les asigne la macro que dijiste y no me funciona. Si puedes seguir ayudándome te lo voy a agradecer mucho ya que es lo único que me falta para terminar mi base de datos.
Y si pudieras enviarme tu correo para enviarte una imagen de los campos seria ideal. Pero si no no hay problema.
Y de nuevo gracias.
Prefiero no sobrecargar mucho mi correo electrónico, si no te importa.
Creo que lo que te pasa es que tienes un textbox con un campo calculado, pero al ser un campo calculado no te guarda el valor en la tabla.
Para eso lo que tienes que hacer es dos textbox.
Uno que sea el calculado, que será el que tengas en modo visible, y el otro, que será el que apunta a la tabla, en modo invisible.
En el procedimiento del evento "al perder enfoque" del campo calculado, podrías poner un código para que vuelque los datos del calculado al de tabla.
nombredeltextboxtabla. Value = nombredeltextboxcalculado.Value
De esta manera si que se te guardaran los datos en la tabla
Gracias men por todo el tiempo y la preguntas que me respondiste aunque aun no lo resuelvo te agradezco mucho voy a ver si encuentro alguien que me de otra opción o opinión. Pero sobre todo te agradezco. Hasta luego.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas