Error 2465 - Base de datos de Access

Estoy teniendo un problema con una base de datos que estoy implementando.

El error es:

El código es: 

Sub ActualizaMontoPagadoCurso1()
    Dim vPagadoCurso As Double
    Dim vSql As String
    Dim dbs As Database, rst As Recordset
        vSql = "SELECT Sum(PAGOS_ALUMNO.PAGO_MONTO) AS SumaDePagos FROM PAGOS_ALUMNO WHERE PAGOS_ALUMNO.[CURSO_ID] = " & ALU_ID_CURSO1 & " AND PAGOS_ALUMNO.[ALU_ID] = " & ALU_ID
        If Not IsNull(ALU_ID_CURSO1) Then
            Set rst = Application.CurrentDb.OpenRecordset(vSql)
            If IsNull(rst.Fields(0)) Then
                ALU_PAGOS_CURSO1 = 0
            Else
                ALU_PAGOS_CURSO1 = rst.Fields(0).Value
            End If
        Else
            ALU_PAGOS_CURSO1 = 0
        End If
End Sub
Sub ActualizaMontoPagadoCurso2()
    Dim vPagadoCurso As Double
    Dim vSql As String
    Dim dbs As Database, rst As Recordset
        vSql = "SELECT Sum(PAGOS_ALUMNO.PAGO_MONTO) AS SumaDePagos FROM PAGOS_ALUMNO where PAGOS_ALUMNO.[CURSO_ID] = " & ALU_ID_CURSO2 & " AND PAGOS_ALUMNO.[ALU_ID] = " & ALU_ID
        If Not IsNull(ALU_ID_CURSO2) Then
            Set rst = Application.CurrentDb.OpenRecordset(vSql)
            If IsNull(rst.Fields(0)) Then
                ALU_PAGOS_CURSO2 = 0
            Else
                ALU_PAGOS_CURSO2 = rst.Fields(0).Value
            End If
        Else
            ALU_PAGOS_CURSO2 = 0
        End If
End Sub

Lo que quiero hacer con este código es, hacer una consulta en la tabla PAGOS_ALUMNO donde sume los pagos que coincidan con el ID del alumno y el ID del curso. 

Si bien, el código funciona el error me lo da cuando cambio de una pestaña de navegación a otra en modo diseño en:

Espero que me puedan ayudar a solucionarlo, ya que estoy desorientado y no soy experto en el tema, mas bien, estoy experimentando y aprendiendo a la vez.

Respuesta
1

Jonathan: Ignoro donde tienes esos procedimientos y como haces la llamada a los mismos.

Puede ser que ALU_ID_Curso1 sea un cotrol que está en el Objeto asociado a Alumnos y no a Cursos.

Puede que el Nombre real sea ALU ID Curso1 y Access le haya puesto los guiones bajos.

Es la costumbre muy generalizada de Nombrar con espacios. Puede ser...

Si puedes a partir de lo que te comento descubrir algo, estupendo, pero de momento poco más te puedo decir. Saludos >> JTJ

Hola, Jacinto! Antes que nada muchas gracias por tu respuesta. te comento..

El procedimiento lo llamo desde el formulario Alumnos únicamente, en el formulario Cursos no tengo código:

el ALU_ID_CURSO1 (que es un campo de la tabla DATOS_ALUMNO) lo determino mediante una lista desplegable de cursos en el formulario Alumnos, donde se selecciona el curso al que pertenece el alumno (de la tabla DATOS_CURSOS) y se utiliza el DATOS_CURSOS[ID_CURSO] 

Cuando se selecciona un curso desde la lista desplegable el ID_CURSO se guarda en la tabla DATOS_ALUMNO[ALU_ID_CURSO1] 

El mismo procedimiento se utiliza para el curso 2, que no todos tienen que tener un curso 2 obligatoriamente, sin embargo el ALU_ID_CURSO1 sí es obligatorio.

Espero que se pueda entender

Jonathan: La verdad es que no acabo de ver la causa del problema, salvo que el cursor esté en >>

PAGOS_ALUMNO_CURSO1 y al tener programado el Evento al Salir (Exit), al cambiar de pestaña no encuentra el ALU_ID_CURSO1 y salta el Error.

Supongo que ese Nombre está en los datos de la pestaña Alumnos.

Voy un poco a cirgas, pero prueba "Programando" otro Evento en lugar de ese>> Ejemplo al hacer Click o al recibir el Foco o... Un saludo >> JTJ

Vos sabes que si era eso.. una boludez pero nunca se me habría ocurrido, le saqué lo del evento Salir y no dio más error.

Muchísimas gracias por tu ayuda, problema solucionado

Abrazo!

Me alegra que el problema se haya resuelto, y si valoras la respuesta perfecto>> Saludos >> JTJ

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas