Informe en Access Saldos a una Fecha

Tengo una tabla donde almaceno el kardex de productos, lo que deseo es un informe que me devuelva los saldos (que es una columna) de los productos a una fecha determinada. Mi problema radica por ejemplo que quiero saldos al 05/02/2019:

1. Solo debe devolver el último dato por producto aproximado a esa fecha, ya que es muy posible que existan productos que no tengan movimiento a esa fecha.

2. Solo debe devolver un dato por producto.

3. Todos los datos se encuentran en una tabla similar a esta

Fecha - Producto - Saldo

1/1/19 - A000 - 15

1/1/19 - A000 - 14

2/1/19 - A001 - 20

3/1/19 - A002 - 50

5/1/19 - A002 - 52

1 Respuesta

Respuesta
2

Tal como yo lo veo, puedes hacer una consulta de datos agrupados por Producto

En el Campo Fecha >> Pondría Max y en el Campo Saldo >> Ultimo

Un saludo >> Jacinto

Muchas gracias como siempre Jacinto, siempre me ha ayudado bastante tu experiencia, al parecer funciona pero tengo una inquietud, lo que sucede es que tengo que hacer un corte a una fecha determinada, he ingresar dicha fecha, por ejemplo al 04/01/2019, lo que implica que tendría que darme la siguiente información:

1/1/19 - A000 - 14 (porque es el último saldo)

3/1/19 - A002 - 50 (porque es el último dato a esa fecha)

el problema es que pongo en el criterio la fecha pero no me da ningún resultado porque no hay registro en esa fecha.

Creo que lo mejor es que te adjunte una figuar de Consulta y la SQL subyacente en el sentido de que tu puedas cambiar los Nombres por los que tu tengas.

SELECT Max(Pedidos.FechaPedido) AS UltPed, Pedidos.IdCliente, DLast("Cargo","Pedidos","FechaPedido = #" & Format([UltPed],"mm/dd/yyyy") & "#" & " AND IdCliente = '" & [IdCliente] & "'") AS UltC
FROM Pedidos
GROUP BY Pedidos.IdCliente
HAVING (((Max(Pedidos.FechaPedido)) Between #2/1/2015# And #7/31/2015#))
ORDER BY Max(Pedidos.FechaPedido);
En el Filtro de Fechas >> Donde yo pongo Entre... Tu pones > o < o...

Un saludo >> Jacinto

¡Gracias! Eres un capo

Jacinto, tu me puedes ayudar, te cuento que hice la consulta pero no me bota la información correcta:

SELECT Max(tbl_kardexa.fecha) AS MáxDefecha, tbl_kardexa.idMedicamento, tbl_medicamentos.Medicamento, tbl_medicamentos.FormaFarmaceutica, tbl_medicamentos.Concentracion, Last(tbl_kardexa.cantSaldo) AS ÚltimoDecantSaldo, Last(Round([precioP],10)) AS Precio, Last([CantSaldo])*Last(Round([precioP],10)) AS Total
FROM tbl_medicamentos INNER JOIN tbl_kardexa ON tbl_medicamentos.Id = tbl_kardexa.idMedicamento
GROUP BY tbl_kardexa.idMedicamento, tbl_medicamentos.Medicamento, tbl_medicamentos.FormaFarmaceutica, tbl_medicamentos.Concentracion
HAVING (((Max(tbl_kardexa.fecha))<=[Formularios]![frm_periodoA]![txt_fecha]));

se supone que todos los saldos están en cero, pero no me refleja eso :(

ayúdame por favor

Lamento no haberte contestado, pero hace mucho tiempo que no entraba en Todoexpertos, y al hacerlo me ha saltado ésta pregunta.

Dado que no te voy a poder responder por ahora, mi sugerencia es que generes una nueva pregunta y creo que te responderá algún otro experto. Gracias y un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas