¿Cómo hago para que una consulta en access me devuelva solo los valores de la semana en curso?

Tengo dos tablas una con los clientes y otra con las retiradas en la de las retiradas tiene un campo que indica el día en que se hizo la retirada.

El caso es que esas retiradas están limitadas a 15 unidades semanales por lo que cuando se quiere hacer una nueva retirada quiero crear una consulta donde indique las unidades que lleva retiradas en la semana actual.

En la ayuda de access he encontrado esto como criterio pero no me resulta

DatePart("ww", [SalesDate]) = DatePart("ww", Date()) and Year( [SalesDate]) = Year(Date())

¿Alguien sabe como tengo que aplicarlo o si hay otra manera de hacerlo?

1 respuesta

Respuesta
2

Te digo lo que haría, ¿para qué hacer una consulta si puedes tener al momento de introducir datos, lo que lleva retirado esa semana? Supongamos que tengo una tabla

Hago un formulario, y para no tener que llenar muchos registros, en lugar de 15 le pongo 4. Empiezo a rellenar(ten en cuenta que para los puñeteros yanquis la semana empieza en domingo, se puede cambiar)

Como el 14 es de una semana pero el 15 es de otra. Como desde el 15 al 18 son de la misma semana cuando pulso enter

El código es

Como no sé que quieres que haga cuando llegue a la retirada 15 le he puesto lo de docmd. Cancelevent, con lo que al aceptar en el mensaje el cursor se vuelve al cuadro de texto Fecharetirada para que la cambies.

¡Gracias! Por la respuesta pero creo que no me he explicado bien al hacer la pregunta

Un clente puede hacer por ejemplo el lunes retirar 2 unidades, el miércoles 3, y el jueves 2 de nuevo, supongamos que hoy es viernes y yo quiero que me de en una consulta automáticamente las 7 unidades que lleva esta semana y me descarte las de fechas anteriores a esta semana en curso.

Quizá no me he explicado bien, ya que no sabía eso del cliente, pero es exactamente igual, sólo que en los criterios hay que hacer mención al Idcliente o NombreCliente, dependiendo de como esté construida la tabla, por ejemplo, vamos a suponer que en esa tabla Tabla1 tienes también un Idcliente. El código sería

Dsum..............................................=" & s & " and idcliente=" & me.idcliente & ""

Lo mismo que abajo en Dcount

Dcount...................""ww"") and idcliente=" & me.idcliente & "")=4

¡Gracias! POR TU AYUDA

Ha ver si me entero bien, según dices tu lo mejor seria tener otro campo en la tabla que fuera Semanal, pero no veo en ningún lado del código que haga referencia a ese campo.

Y luego en el formulario meter el código ¿o en donde esta el campo semanal?

Perdona pero es que no estoy seguro muy bien soy bastante novato y no se si me explico bien, en la tabla de ejemplo que me mandaste no se tampoco muy bien de donde salen los datos de semanal ni el porque del mensaje.

Voy a volver a explicarlo con más detalles.

Tengo dos tablas:

TablaClientes con los campos IDCliente, Nombre, y Apellido

TablaRetiradas con los campos IDRetiradas, IDCliente, Unidades, y FechaRetirada

Tengo un formulario que me abre la TablaClientes y la TablaRetiradas, así cuando busco un cliente ya tengo la TablaRetiradas debajo para introducir las unidades que va a retirar y la fecha del día que se hace la retirada (esto se hace en el momento de la retirada por lo que siempre es el día en curso), tengo hecho un buscador en el formulario para localizar al cliente que hace la retirada, que cuando actualiza abre automáticamente una consulta con las unidades que lleva retiradas ese cliente en la semana en curso, el tema que el criterio de esa consulta por fecha tendría que cambiarlo cada semana manualmente la fecha del primer día de la semana.

Mirando en la ayuda de access encontré en criterios esto

DatePart("ww", [SalesDate]) = DatePart("ww", Date()) and Year( [SalesDate]) = Year(Date())

Pero al introducirlo en el criterio me dice que hay algo mal escrito yo sustituyo SAlesDate por FechaRetiras pero me dice que hay error por alguna coma o así

Por partes, en el código, en el evento Después de actualizar del cuadro de texto Cantidad, sí pone

semanal=dsum.....

Por otro lado, creo que lo mejor es que si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Iban, ya que si no sé quien me escribe no los abro.

¡Gracias! Gracias te he mandado el correo

Lo de semanal tienes razón como andaba tan perdido ni me di cuenta.

Otra pregunta dentro de ese código que hace para que salte el mensaje de "hasta aquí hemos llegado", me refiero a es si se pasa de 15 unidades

¿Si se pasa de 15 unidades o si se pasa de 15 retiradas? En la que te he mandado, como no sabía esto te he puesto que a la cuarta retirada te avise. En el código sólo tienes que cambiar el 4 por el 15. Si se refiriera a unidades, dímelo que te cambio el código y te lo mando.

¡Gracias!

Si prefiero limitado a unidades no a retiradas más adelante en el mensaje te digo un porque de eso

En el ejemplo que me mandaste funciona bien lo único unas cositas me dijiste que habías puesto un evento antes de actualizar del cuadro de texto fecha pero no aparece no sale

El de después de actualizar el cuadro cantidad si y me funciona muy bien lo único cambie el 4 ya que no lo limita a un solo cliente si no a todos ¿se puede hacer que ese numero sea ilimitado si no le pongo ningún valor, o mejor que le ponga un numero alto por ejemplo el numero de clientes multiplicado por 15 que seria el numero máximo por semana si retirara por un supuesto de uno en uno cosa que nunca es así. Pero por lo demás funciona perfecto mejor y más cómodo que lo que yo esperaba hacer

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas