Foro VBATotal

Aprender a programar en Visual Basic

Por favor, o Regístrate para crear mensajes y debates.

Ordenar Consulta antes de Acumular Saldo

Buenos días estimados,

La presente es para recurrir a su ayuda, tengo una base de datos en Access, en la cual almaceno todos los movimientos bancarios de una empresa, armé una consulta donde me calcula el saldo de cada banco, todo funciona bien, el saldo se calcula por fila (diferenciando banco), el problema es cuando registran información nueva con fecha anterior, como el saldo se calcula por fila, entonces ignora la fecha, al momento de generar un reporte (Lo genero en Excel usando VBA) los saldos no coinciden debido a las fechas. traté de ordenar por Id y luego por Fecha en la consulta, pero no lo ordena, cómo podría hacer? adjunto el Archivo para que puedan entender mejor mi situación, la consulta se llama "Report_Macro". Adicionalmente a eso, el cálculo que realizo en la consulta para tener el saldo es el siguiente:

Saldo: (select sum(ccur([Monto]))from [Conciliacion] as temp where [temp].[Id]<=[Conciliacion].[Id] and [temp].[Id Banco]=[Conciliacion].[Id Banco])

Desde ya quedo muy agradecido por su ayuda, estaré atento al foro por si se necesita de alguna información adicional.

El archivo: (Lo publico en Link ya que no me permite adjuntarlo directamente)

Buenos días,

He añadido un registro en la tabla Conciliación con fecha del año 2020 y al ejecutar la consulta Report_Macro, sí que me ha aparecido.

Te adjunto capturas de pantalla.

Saludos.

Archivos subidos:
  • Tienes que conectarte para acceder a las subidas.
jsalas1204-user ha reaccionado a esta publicacion.
jsalas1204-user
Por favor, si te he ayudado, haz clic en algún banner publicitario. Es una gran manera de ayudarme. También puedes realizar una donación en Paypal por la cantidad que desees https://paypal.me/vbatotal
Cita de Administrador en 6 de marzo de 2023, 09:19

Buenos días,

He añadido un registro en la tabla Conciliación con fecha del año 2020 y al ejecutar la consulta Report_Macro, sí que me ha aparecido.

Te adjunto capturas de pantalla.

Saludos.

Buenos días, si aparece, el problema es el orden, ya que la fórmula calcula los saldos por banco y por número de fila, no concidera las fechas, entonces al momento de generar un reporte en Excel los saldos no coinciden debido a eso, la imagen que te envío es una captura de un reporte que diseñé en Excel, que lo único que hace es mostrarme la información de los movimientos en 2 listbox de la consulta Report_Macro aplicando el filtro de banco y rangos de fecha, entonces si te fijas los saldos no coinciden ya que deberían de ser el resultado de sumar el saldo anterior con el monto de la fila actual, por eso quería ver la manera de primero ordenar por fecha la consulta y luego realizar el cálculo. Con las disculpas del caso, derepente no expliqué bien mi problema, te adjunto una imagen con el reporte que eh creado en Excel. Si sumas los saldos (Saldo Anterior + Monto de la Fila actual), te vas a dar cuenta que no coincide el resultado. Adicionalmente adjunto una imágen con el Excel también, detallando el problema en una hoja de cálculo. Si te fijas en la tabla tiene fechas anteriores al 12/01/2023 y cuando realizo el filtro en el listbox me muestra los datos que coincidan con las fechas junto con su saldo ya calculado en la consulta Report_Macro, pero al haber una fecha posterior en medio del rango de fechas seleccionadas, el saldo no tiene sentido. Espero haber aclarado un poco mejor mi situación. Muchas gracias por tu tiempo

 

Archivos subidos:
  • Tienes que conectarte para acceder a las subidas.

Buenas,

En tal caso sólo tienes que modificar el orden de las columnas de la consulta, para que el orden prevalente sea el de la fecha, y no el de la ID.

Saludos.

Archivos subidos:
  • Tienes que conectarte para acceder a las subidas.
Por favor, si te he ayudado, haz clic en algún banner publicitario. Es una gran manera de ayudarme. También puedes realizar una donación en Paypal por la cantidad que desees https://paypal.me/vbatotal
Cita de Administrador en 6 de marzo de 2023, 15:02

Buenas,

En tal caso sólo tienes que modificar el orden de las columnas de la consulta, para que el orden prevalente sea el de la fecha, y no el de la ID.

Saludos.

Que tal,

Lo que pasa es que el cálculo lo realiza en base a la tabla "Conciliacion" y lo realiza en base al número de fila (ID) de esa base, entonces si ordeno la consulta para que sea prevalente la fecha, efectivamente se ordena, pero no le afecta al cálculo, por lo tanto sigue calculando los saldos por fila. Lo ideal sería que se ordene primero y luego realice el cálculo pero ya no en base a la tabla "Conciliacion" si no en base a la consulta, ya que ahí está ordenada, pero no sé como hacer eso, estuve investigando por ahí y una de las soluciones que vi es crear otra consulta adicional donde ordeno la información por fecha y luego le agrego una columna con el número de fila (ID2) y ya en la consulta "Report_Macro" realizo el cálculo en base a la consulta anteriormente creada, pero no sé como agregar una columna en una consulta con el número de fila, o con algún correlativo, eso se puede?.

Saludos.

Buenas,

Si no he entendido mal, lo que necesitas es ordenar los registros por fecha y, posteriormente, enumerarlos de más antiguo a más reciente. ¿Es así?

Saludos.

Por favor, si te he ayudado, haz clic en algún banner publicitario. Es una gran manera de ayudarme. También puedes realizar una donación en Paypal por la cantidad que desees https://paypal.me/vbatotal
Cita de Administrador en 7 de marzo de 2023, 08:00

Buenas,

Si no he entendido mal, lo que necesitas es ordenar los registros por fecha y, posteriormente, enumerarlos de más antiguo a más reciente. ¿Es así?

Saludos.

Que tal,

Así es estimado, ya que la fórmula que puse no considera a las fechas, entonces la solución que vi es crear una consulta previa donde primero ordene toda la base del mas antiguo al mas reciente y agregarle un correlativo en ese mismo orden, de tal manera que ya aplico la fórmula sobre esa consulta y ahí si debería de darme los saldos correctos sin ningún problema, el problema es que no sé como agregar una columna a una consulta con un correlativo (enumerarlos)

Saludos.

Buenas,

Te devuelvo la BBDD con la solución.

He creado una tabla llamada "Consulta" con los mismos campos que la consulta "Report_Macro", y he convertido tu consulta en una de anexado. De esta manera, al ejecutarla, va a copiar los resultados de la consulta en dicha tabla, respetando el orden establecido en la consulta.

La única pega es que tendrás que borrar el contenido de la tabla "Consulta" y "compactar la BBDD" antes de ejecutar la consulta para que el autonumérico empiece desde el 1 y no continúe por donde se quedó.

Espero que te sirva.

Saludos.

Archivos subidos:
  • Tienes que conectarte para acceder a las subidas.
jsalas1204-user ha reaccionado a esta publicacion.
jsalas1204-user
Por favor, si te he ayudado, haz clic en algún banner publicitario. Es una gran manera de ayudarme. También puedes realizar una donación en Paypal por la cantidad que desees https://paypal.me/vbatotal

Buenos días,

Gracias estimado, funciona perfectamente, aunque tardé un poco en entenderlo, pero funciona. Muchas gracias

Me alegro.

Saludos 😉

Por favor, si te he ayudado, haz clic en algún banner publicitario. Es una gran manera de ayudarme. También puedes realizar una donación en Paypal por la cantidad que desees https://paypal.me/vbatotal

Contacto