Access 2007: Campos dependientes en formularios

A tod@s,

Tengo un problemilla que no le encuentro solución, a ver si alguien puede echarme una mano.

En un formulario [Expediente] tengo varios campos calculados (uno para cada apartado de la asignatura), que después sumo en otro campo calculado que es [NotaFinal]. 

Tengo otro campo [Letra] en el que quiero que aparezca una letra dependiendo de el resultado de el campo [NotaFinal].

Ejem. Si NotaFinal >= 96.5 = A+

Si NotaFinal < 96.5 And >= 92.5 = A...

He tratado de ponerle condiciones al campo [Letra], pero [NotaFinal] al ser un campo calculado, NO almacena el valor del dato en el campo.
Tengo una tabla [Letras] en el que están los campos IdLetra, Intervalo y Letra. Está relacionada con el campo de la tabla Expediente.

¿Solución?

P.D.: No sé si en otras versiones de Access lo habrán corregido, yo he usado 2000, 2003 y ahora 2007.

Hacer algo para que sea más fácil crear campos dependientes y que te guarden el valor en ese mismo campo. Es el típico ejemplo de un combobox en el que elijes un país y dependiendo del país que elijas en el siguiente combobox puedes elegir las ciudades de ese país. Prácticamente hay que hacer un máster para hacer algo tan simple.

2 respuestas

Respuesta
1

¿Ya probaste asignándole a una variable tu campo calculado? Después haces la comparación.

En el evento después de actualizar de tu campo calculado

variable = me.campocalculado

Podrías desarrollarlo o explicarte mejor?

Donde y cómo creo la variable?

¿Qué código meterías para comparar? Perdona pero es que el VisualBasic lo tengo bastante oxidado.

Así como dice jacinto

Respuesta
1

Josh: No he probado lo que te voy a citar, por lo que si no funciona me comentas.

En la línea que apunta Antonio, se trata de hacer una comparación del valor en NotaFinal.

Private Sub NotaFinal_Change()
Select Case NotaFinal
      Case >=96.5
           Me.Letra = "A+"
      Case >= 92.5 And < 96.5
          Me.Letra = "Lo que Quieras"
      Case Else
          'Aqui nada o si quieres un Mensaje
End Select
End Sub

Mis saludos >> Jacinto

Josh: Si no funciona, tal como te he comentado, programa el Evento AfterUpdate del "Ultimo Control que hace que se actualice el valor de NotaFinal. Un saludo >> Jacinto

Jacinto eres un crack.

Lo puse en el evento después de actualizar el campo. 
Y el código... bueno lo del And < 96.5 no me lo cogía. Decía error de compilación se necesita una expresión. Al final lo he dejado de esta forma y con las pruebas que he hecho parece que funciona.

Select Case NotaFinal
Case Is >= 96.5
Me.Letra = "A+"
Case Is >= 92.5
Me.Letra = "A"
Case Is >= 89.5
...

Case Else
Me.Letra = "F"
End Select

¡Gracias figura! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas