Consultas con criterio de fechas

Quiero hacer una consulta de actualización donde unas determinadas fechas se modifiquen, el problema es que no quiero cambiar la fecha completa si no solo el día y el mes poner actualizar a: "31/12* o algo así con el fin de que el año de la fecha se mantenga!!Se puede hacer eso?¿
Respuesta
1
Hay que descomponer los datos de la fecha original y usar la función DateSerial() para volver a componerlo,
supongamos que tu campo se llame MiFecha
En Actualizar a: yo pondría lo siguiente:
DateSerial(year([MiFecha]), 12,31)
La función DateSerial recibe tres argumentos: año, mes y día. El año lo estarías tomando de tu campo MiFecha y agregarías el mes y el día.
Un detalle más: si quisieras que te pregunte el mes y el día:
En el lugar de 12 pondría [ingresar el mes]
En el lugar del 31 pondría [ingresar el día]
Quedaría algo así:
DateSerial(Year([MiFecha]),[Ingresar el mes],[Ingresar el día])
Suerte y contame, Marciana
Muchas gracias por responderme Marciana;
He probado de poner lo que has sugerido pero ahora me ha surgido otro problema. Me pone que no se actualiza por infracciones de clave, la fecha es la clave de la tabla pero junto con otro campo que se llama dni, aunque hay dnis que se repiten más de una vez la fecha siempre es distinta por lo tanto la clave esta bien definida.
Aquí tienes lo que he puesto en la consulta no se si te sera de utilidad.
Campo: fecha del pago Cobrado
Tabla: CUOTAS CUOTAS
Actualizar a: "DateSerial(year
                    ([MiFecha]), 12,31)"
Criterios No
Infracción de clave significa que hay valores que se repiten, es decir hay otro registro que ya tiene esa clave.
Deberías buscar otra solución. ¿No podrías usar otro campo de fecha con la fecha modificada? ¿Realmente necesitás que sea clave?
Si me explicaras el problema a lo mejor te podría sugerir alguna salida.
Gracias de nuevo, esta pregunta es más fácil simplemente quiero saber si tienes una clave compuesta por dos campos si esta permitido que uno de los campos tenga valores repetidos si el otro es diferente, es que no me ha quedado claro.
Bueno te explico toda la tabla porque así quizás encuentres otra solución es una tabla sobre facturación donde hay los siguientes campos: dni(texto), fecha del pago/fecha/hora), cobrado(si/no), al contado(si/no), nº de cuenta(texto) y cuota anual(moneda). Para que quede definido tengo que poner como claves dni y fecha del pago, pero claro si no pagan no lo puedo dejar como valor nulo porque debe aparecer el año, por eso se me acudió que apareciera siempre cuando no se pague la fecha 31/12/****, pero al hacer la consulta de actualización siempre tengo problemas. No se si me expresado bien, no sé.. crees que podría poner un campo más con código pago o algo así y entonces quedaría solucionado o si se te ocurre otra forma añadiendo otro campo o modificando algo...
A la espera de tu respuesta Marciana y de nuevo encantada con tu ayuda
Son5 :)
¿Qué tal si pusieras el campo NroFactura para integrar la clave en vez de la Fecha de pago?
No es obligatorio poner una clave. Algunas tablas no lo necesitan.
Yo tengo hechos sistemas de facturación y en general tengo las siguientes tablas
Facturas
FacturasDetalle
Clientes
Pagos
La fecha de la factura es la feche en que se emitió. La tabla pagos sirve para tener más información: un pago parcial, forma de pago: tarjeta, cheque, efectivo.
En la tabla Facturas va como clave un IdFactura autonumérico o el Número de factura real. El resto de los campos son la fecha, el cliente (IdCliente solamente), si hay un descuento.
En la tabla FacturasDetalle van un registro por cada iten de la factura con los siguientes campos:
IdFactura (que sirve para relacionar con la tabla Facturas)
Item
Cantidad
PrecioUnitario
En la tabla Pagos pondría los siguiente campos:
IdPago autonumérico
IdCliente
IdFactura
Fecha
Monto
Detalle (tarjeta, etc)
Luego con consultas podes determinar si una factura está paga. De este modo podes admitir pagos parciales.
Esta es la forma en que se aprovecha mejor las bases de datos.
Contame qué te parece, M

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas