Operaciones matemáticas con ACCESS

Tengo una tabla con los siguientes campos: Nombre (con datos), DNI (con datos), LicenciadoenDerecho Si/No, OtraLicenciatura1, OtraLicenciatura2, 3cursosDerecho Si/No, Diplomatura1, Diplomatura2, Historialcademico (siendo este la suma de los anteriores campos)
Pero ahora viene el problema:
-Si es Licenciado en Derecho le tengo que dar 12 puntos
-Si tiene una Licenciatura le tengo que dar 10 puntos
-Si tiene otra Licenciatura le tengo que dar 10 puntos
-Si tiene una Diplomatura 6 puntos
-Si tiene otra Diplomatura, 6 puntos
-Si tiene 3 cursos de derecho, 8 puntos, (obviamente si tiene licenciatura en Derecho, en este campo no debería poder escribir, porque sería puntuarle 2 veces por lo mismo)
-Y por último un campo suma, siendo el mástimo permitido 12 puntos.
Quiero saber como a tavés de un formulario introducir los datos y sobre todo como hacer que no pueda escribir en el campo 3cursosDerecho, si el campo LicendiadoenDerecho es SI, y las suma que no supere los 12 puntos.
Muchísimas gracias por adelantado.

1 Respuesta

Respuesta
1
Con el asistente de formularios, armas un formulario para cargar todas las opciones (Supongo que serán campos si/no) y el de historial numérico.
Luego editas el formulario en modo diseño, eliges el cuadradito del click de cada una de las opciones, propiedades, eventos, después de actualizar y escribes:
Private Sub LicenciadoenDerecho_AfterUpdate()
   Call calcula
End Sub
igua para todos ellos.
Al final escribes despues del último end sub
Private Sub calcula()
If LicenciadoenDerecho = True Then
Historialcademico = 12
End If
If OtraLicenciatura1 = True or OtraLicenciatura2 = True Then
Historialcademico =10
End If
If Diplomatura1 = True or Diplomatura2 = True Then
Historialcademico = 6
End If
if 3cursosderecho = true then
Historialacademico=8
end if
End Sub
Si quieres que cuando seleccione en licenciado en derecho, no pueda seleccionar el 3cursosderecho
Seleccionas el cuadro de click del LicenciadoenDerecho, propiedades, eventos, después de actualizar modificas el código agregando:
Private Sub LicenciadoenDerecho_AfterUpdate()
If LicenciadoenDerecho = True Then
 [3cursosderecho].Enabled = False
Else
 [3cursosderecho].Enabled = True
End If
Call calcula
End Sub
Saludos. Jorge

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas