Problema con función Dsum

Buenas,
Tengo un problema con la función Dsum que no sé cómo resolver:
Tengo una tabla [SALES] dentro de la cual hay un campo con números de
teléfono [PHONE_NUMBER]
La idea es que al ejecutar una query, en un campo me calcule la suma
de los 5 últimos números de cada teléfono que además cumplan la
condición de que en otro campo [RECORD_TYPE] tengan el valor "RS"
Yo lo que había puesto en la query es:
DSuma("Der([SALES]![PHONE_NUMBER];5)";"[SALES]";"[SALES]![RECORD_TYPE]
='RS'")
Pero esto me da un error de sintaxis.
Si quito la función "Der" del primer argumento de la función sí que me
funciona, pero claro, no me da el valor que yo estoy buscando. He
intentado incluso crear otro campo aparte que me haga la función "Der"
Y luego incluir este campo en lugar de la función pero también me da
error
Si lo que hago es quitar las comillas del primer argumento, la query
se me ejecuta pero en el campo en cuestión me aparece "#Error"
¿Alguien sabría cómo solucionar este problema?
Muchas gracias

1 Respuesta

Respuesta
1
A ver que tal así...
DSuma("Val(Der([SALES]![PHONE_NUMBER];5))";"[SALES]";"[SALES]![RECORD_TYPE]
='RS'")
No lo he probado, pero es posible que la aplicación de la función Der convierta el numero a texto (con lo que no se sumaria), cosa que podríamos solucionar cogiendo el Valor de esa cadena.
Xavi
Pues nada... lo he metido tal cual pero me sigue dando error de sintaxis.
He leído que el primer argumento de la función Dsum sí acepta funciones dentro siempre que no sean de agregado, pero desde luego es al meter funciones cuando está dando los problemas...
De todas formas me tiene intrigado el planteamiento que propones: "en un campo me calcule la suma de los 5 últimos números de cada teléfono"
Ya, ya sé que suena un poco raro...
Es una aplicación que para la tabla en cuestión, utiliza ese cálculo como método de control para ver si falta algún registro que debiera estar. En caso de que no sea así, genera un mensaje de error.
Yo en un Access quiero hacer una validación "casera" de ese campo pero me está costando más de lo que pensaba :-/
¿Puedes mandarme una tabla de ejemplo con algunos datos, la consulta en cuestión y una explicación de los resultados a conseguir?
Mi dirección es [email protected]
Importante: Quita lo que está en mayúsculas de la dirección (QUITAESTO) y que la base de datos esté comprimida en un zip, rar o 7z
Hola, Xavi, finalmente ya conseguí descubrir qué es lo que ocurría:
Resulta que dentro de la función Dsum hay que usar la referencia original a las funciones y no su "traducción" ("Right" en lugar de "Der"), además hay que aplicar la normativa interna de Access, es decir, hay que usar coma en lugar de punto y coma.
De esta manera la función quedaría:
DSuma("Right([SALES]![PHONE_NUMBER],5)";"[SALES]";"[SALES]![RECORD_TYPE]='RS'")
Escribiéndola así me funciona perfectamente y me calcula el valor que yo buscaba.
La verdad es que no se me habría ocurrido en la vida :-O
Muchas gracias por tu ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas