Página 1 de 1

[RESUELTO] UPDATE con CASE WHEN o con IF

Publicado: Lun Feb 11, 2019 1:42 pm
por pmartimor
Buenos días:
Estoy intentando hacar una actualización de datos en una tabla de forma condicionada.

Necesito hacer lo siguiente:

Si FECHA_BAJA IS NULL (O VACIA) ' Fecha_Baja es un campo que ya existe en la tabla
....... FECHA_HASTA = FECHA_FIN ' Fecha_Fin es un campo de la consulta creado a partir del contenido de una caja de texto del formulario
ELSE
....... Si FECHA_BAJA < FECHA_FIN
............. FECHA_HASTA = FECHA_BAJA ' Fecha_Hasta es el campo al que queremos dar valor con un UPDATE y Fecha_Baja es un campo que ya existe en la tabla
....... ELSE
............. FECHA_HASTA = FECHA_FIN
....... END
END

Esto se haría sobre la tabla 'datosfechas' para todos los registros de la tabla. Todos los campos citados son de esta tabla.
Pero he de hacerlo en una macro, para que lo pueda hacer el usuario, ya que los campos FECHA_FIN es un campo creado para la consulta desde una caja de texto del formulario
frmFechas y FECHA_BAJA es un campo de la tabla que no siempre tendrá el mismo contenido
y además se irán añadiendo registros nuevos a la tabla en los que de entrada FECHA_BAJA y FECHA_FIN estarán vacíos e irán tomando valores con el paso del tiempo
cuando proceda.
Vemos que siempre es el campo FECHA_HASTA el que cambiará con los contenidos del campo que corresponda según las condiciones expuestas, pues es el campo al que
queremos hacer el UPDATE.

En la macro se modifica la consulta.


Trabajo con OpenOffice 4.1.5

Saludos y gracias anticipadas.

Re: UPDATE con CASE WHEN o con IF

Publicado: Lun Feb 11, 2019 5:30 pm
por RMG
Hola,

Si adjuntas un pequeño ejemplo, te podremos ayudar mejor.

Saludos

Re: UPDATE con CASE WHEN o con IF

Publicado: Lun Feb 11, 2019 9:11 pm
por pmartimor
RMG escribió:Hola,

Si adjuntas un pequeño ejemplo, te podremos ayudar mejor.

Saludos
Buenos días:
Estoy intentando hacar una actualización de datos en una tabla de forma condicionada.

Necesito hacer lo siguiente:

Si FECHA_BAJA IS NULL (O VACIA) ' Fecha_Baja es un campo que ya existe en la tabla
....... FECHA_HASTA = FECHA_FIN ' Fecha_Fin es un campo de la consulta creado a partir del contenido de una caja de texto del formulario
ELSE
....... Si FECHA_BAJA < FECHA_FIN
............. FECHA_HASTA = FECHA_BAJA ' Fecha_Hasta es el campo al que queremos dar valor con un UPDATE y Fecha_Baja es un campo que ya existe en la tabla
....... ELSE
............. FECHA_HASTA = FECHA_FIN
....... END
END

Esto se haría sobre la tabla 'datosfechas' para todos los registros de la tabla. Todos los campos citados son de esta tabla.
Pero he de hacerlo en una macro, para que lo pueda hacer el usuario, ya que los campos FECHA_FIN es un campo creado para la consulta desde una caja de texto del formulario
frmFechas y FECHA_BAJA es un campo de la tabla que no siempre tendrá el mismo contenido
y además se irán añadiendo registros nuevos a la tabla en los que de entrada FECHA_BAJA y FECHA_FIN estarán vacíos e irán tomando valores con el paso del tiempo
cuando proceda.
Vemos que siempre es el campo FECHA_HASTA el que cambiará con los contenidos del campo que corresponda según las condiciones expuestas, pues es el campo al que
queremos hacer el UPDATE.

En la macro se modifica la consulta conFechas para realizar un filtro de datos creando los alias Fecha_Inicio y Fecha_Fin que corresponden a fórmulas
en las que entran los datos que se recogen de cajas de texto en el formulario frmFechas. Envío un fichero ejemplo.


Trabajo con OpenOffice 4.1.5

Saludos y gracias anticipadas.

Re: UPDATE con CASE WHEN o con IF

Publicado: Mar Feb 12, 2019 5:41 pm
por RMG
Hola,

Mira si te sirve esta solución.

Saludos

Re: UPDATE con CASE WHEN o con IF

Publicado: Jue Feb 14, 2019 5:47 pm
por pmartimor
RMG escribió:Hola,

Mira si te sirve esta solución.

Saludos
Gracias por la buena solución. No sé por qué me había empeñado en hacerlo con una sola línea de código, cosas de novato :? :?

Gracias a los foros se puede seguir aprendiendo a través de programadores ya experimentados.

:super: