Asignar valores a un campo en una Tabla dependiendo de una condición

Quiero pedirle el favor de lo siguiente ya sea haciendo uso del VBA o de las consultas en el propio Access, tengo una tabla llamada Tabla_preguntas y una consulta llamada ConsultaAsignableaBoton1
Dentro de la tabla llamada Tabla_Preguntas, tengo dentro de un conjunto de campo uno que se llama NRC1 (Numero de Respuestas Correctas) los datos de dicho campo proviene de un calculo que se realizo dispongo de otro campo llamado Nota en donde se calculan las notas de acuerdo al Numero de Respuestas Correctas y finalmente tengo un campo llamado CalculoCondicional en donde deseo alojar el resultado de una condición que explicare mas adelante,, por otro lado tengo una consulta llamada ConsultaAsignableaBoton1 en donde tengo un campo llamado NRC.

Lo que deseo realizar en resumen es lo siguiente:

En el campo llamado CalculoCondicional alojar el valor del campo Nota de la tabla Tabla_preguntas si el valor de NRC de la consulta llamada ConsultaAsignableaBoton1es igual al de NRC1 de la tabla llamada Tabla_preguntas.
He realizado lo siguiente en VBA:
Dim rst , rst1 as dao.recordset
Set rst = CurrentDb.OpenRecordset("Select * from Tabla_Pregunta")
Set rst1 = CurrentDb.OpenRecordset("Select * from ConsultaAsignableaboton1")
rst.addnew
rst1.addnew ‘ opcional
if rst1.NRC= rst.NRC1 then
rst! CalculoCondicional = rst! Nota
end if
rst.update
rst1.update
Me. Refresh
Pero no he logrado nada no me completa nada en el campo llamado CalculoCondicional dela tabla Tabla_pregunta.
Intente también realizando dentro de la consulta llamada ConsultaAsignableaBoton1 la vinculación de consulta de origen de datos llamada consulta1funciondevalidacion con la tabla llamada Tabla_pregunta (realizando la relación correspondiente para evitar un numero excesivo de rgistro) y realizar la siguiente consulta mediante Siinm
Expr1: SiInm([NRC]=[Tabla_Pregunta]![NRC1];[Tabla_Pregunta]![NOTA];0)

Y me llevo la sorpresa de que me salen 1326 registros siendo que deben de ser tan solo 26 y además el campo Expr1 me sale #Error

¿Cómo arreglo eso?

2 respuestas

Respuesta
1

En la primera solución, prueba a introducir una sentencia edit:

Rst. Edit
rst("calculocondicional").Value = rst("nota").Value

rst.Update

Cuéntame.

Respuesta
1

No es necesario almacenar dicho valor, solo calcularlo bastará.

Respecto al arror de Expr1 es el siguiente: al referirse a una tabla y su campo no debe ser con el signo !. Hágalo con un punto (.) Entonces esto quedaría así.

SiInm([NRC]=[Tabla_Pregunta].[NRC1];[Tabla_Pregunta].[NOTA];CInt(0))


Note que al final convertí el 0 en entero con la función de conversión Cint() ya que puede interpretarse que el 0 pueda ser un texto a pesar de que no lo es.

Otra cosa quizás salen muchos registros porque quizás necesite agrupar, ya que puede tener relaciones entre tablas de 1 a varios. ojo con eso.

Pruebe la solución y me comenta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas