Access - Problemas al sumar registros de un campo con DSum

   
Vista:

Problemas al sumar registros de un campo con DSum

Publicado por Oscar oscarrossi@yahoo.com (2 intervenciones) el 29/10/2014 01:59:01
Por favor soy nuevo con Access y tengo un problema al tratar de sumar ciertos registros de un campo utilizando DSum en Access 2010. Para poder explicarlo he creado este ejemplo. Se trata de una tabla1 con dos campos: campo1 y campo2. El campo1 es el campo que contiene los registros que se quiere sumar y sus valores son enteros. El campo2 es el campo que contiene los criterios para filtrar los registros y solo considera entre sus registros las siguientes tres opciones: “A”, “B” o “C”.
Se ha creado el formulario1 donde el valor del criterio deseado “A”, “B” o “C” se ingresa a través de un cuadro de texto que se denomina ingresar_criterio. Otro cuadro con el nombre de obtener_suma refleja el resultado y además es el que realiza la acción al hacer click. El código utilizado es el siguiente:

1
2
3
4
5
6
7
8
9
Private Sub obtener_suma_Click()
 
Dim mi_variable As String
Dim mi_resultado As Integer
mi_variable = ingresar_criterio.Value
mi_resultado = DSum("[campo1]", "tabla1", "[campo2]='mi_variable'")
obtener_suma.Value = mi_resultado
 
End Sub

Al ejecutar me sale un mensaje “Se ha producido el error 94 En tiempo de ejecución. Uso no valido de Null”. Lo cual se produce en la fila mi_resultado = DSum("[campo1]", "tabla1", "[campo2]='mi_variable'")

Agradecería si pudiesen explicarme cual es el error. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problemas al sumar registros de un campo con DSum

Publicado por Jesús Manuel (134 intervenciones) el 29/10/2014 08:45:25
Tal y como lo has escrito no estas usando como criterio el valor que le has dado a mi_variable (A, B o C), estas usando el texto mi_variable, y como el campo2 de tu tabla no tiene ese valor, pues el resultado es un null.

Como estas usando una variable para introducir el criterio tendrías que construir el Dsum de la siguiente forma:

DSum("[campo1]", "tabla1", "[campo2]='" & mi_variable & "'")


De todas formas, puedes evitar declarar las variables y dejar todo el código en una única línea:

obtener_suma.value=DSum("[campo1]", "tabla1", "[campo2]='" & ingresar_criterio.Value & "'")


Y esto lo retocaria con la función Nz, por sí no existe ningún registro a contar con el criterio indicado:

obtener_suma.value=Nz (DSum("[campo1]", "tabla1", "[campo2]='" & ingresar_criterio.Value & "'"),0)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problemas al sumar registros de un campo con DSum

Publicado por oscarrossi oscarrossi@yahoo.com (2 intervenciones) el 30/10/2014 00:22:45
Jesús Manuel, muchas gracias por tu tiempo. El código funciona muy bien. Oscar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar