[RESUELTO] Valor predeterminado campo fecha

Discute sobre las herramientas de la base de datos
Responder
José Luis L.
Mensajes: 19
Registrado: Mar Nov 20, 2018 6:57 pm

[RESUELTO] Valor predeterminado campo fecha

Mensaje por José Luis L. »

¿Es posible hacer que un campo fecha tenga como valor predeterminado el del día que se introduce?

Saludos, José Luis L.
Última edición por José Luis L. el Mar Ene 01, 2019 10:06 am, editado 1 vez en total.
OpenOffice 4.1.5 en Windows 10
Longi
Mensajes: 810
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Valor predeterminado campo fecha

Mensaje por Longi »

Si, pero por desgracia con macros.
Si cuelgas el ejemplo que te pido en el otro hilo, podemos añadir la macro para ello, aunque también se respondió varias veces en el foro y las bases de datos de ejemplo de RMG lo tienen implementado.

Otro saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
José Luis L.
Mensajes: 19
Registrado: Mar Nov 20, 2018 6:57 pm

Re: Valor predeterminado campo fecha

Mensaje por José Luis L. »

Adjunto el archivo. El campo fecha va en el formulario efemérides.
¿Dónde puedo localizar las bases de ejemplo de RMG?

Saludos, José Luis L.
Adjuntos
Para foro Apache.rar
(16.09 KiB) Descargado 362 veces
OpenOffice 4.1.5 en Windows 10
RMG
Mensajes: 3884
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Valor predeterminado campo fecha

Mensaje por RMG »

Hola,

Como dice Longi con macros se puede crear un campo con el valor de la fecha actual, otra posibilidad es hacer que se cree automáticamente, para tu caso concreto creo que esta segunda opción es la apropiada.

Después de crear el campo fecha y guardar la tabla, ejecuta esta sentencia SQL.

ALTER TABLE "Savriti_efemerides" ALTER COLUMN "fech" SET DEFAULT CURRENT_DATE;

Este enlace te muestra bastantes ejemplos de BD.

https://forum.openoffice.org/es/forum/v ... m.php?f=70

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
José Luis L.
Mensajes: 19
Registrado: Mar Nov 20, 2018 6:57 pm

Re: Valor predeterminado campo fecha

Mensaje por José Luis L. »

¿Podrías indicarme qué es una sentencia SQL y dónde debo ejecutarla?

Saludos, José Luis L.
OpenOffice 4.1.5 en Windows 10
RMG
Mensajes: 3884
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Valor predeterminado campo fecha

Mensaje por RMG »

En menú,
Herramientas->SQL->comando a ejecutar, pones ALTER TABLE "Savitri_efemerides" ALTER COLUMN "fech" SET DEFAULT CURRENT_DATE;
Botón ejecutar, puedes copiar y pegar. A partir de ese momento en cada registro nuevo se creará la fecha del día automáticamente.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
José Luis L.
Mensajes: 19
Registrado: Mar Nov 20, 2018 6:57 pm

Re: Valor predeterminado campo fecha

Mensaje por José Luis L. »

Gracias por la aclaración.
Hecho: Tras darle a ejecutar, en la ventana inferior de la ventana aparece "Estado: Comando ejecutado satisfactoriamente", le doy a Cerrar. Y al comprobar... nada sucede. Cierro la base de datos, la vuelvo a abrir, por si así carga el comando y... nada sucede.

Saludos, José Luis L.
OpenOffice 4.1.5 en Windows 10
Longi
Mensajes: 810
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Valor predeterminado campo fecha

Mensaje por Longi »

Buenas!
Esto debiera escribirlo RMG, pero tengo que colgar una respuesta, así que allá va todo:
La modificación ha sido hecha satisfactoriamente, y lo que ha ocurrido es que la tabla ha pasado a tener un campo que antes era de fecha normal, y ahora es de fecha con un valor predeterminado (el día de hoy), y verás los efectos una vez que te pongas a rellenar registros en tu formulario, eso si, no debes escribir nada en el control 'fech', y cuando añadas algo en 'Notas' verás que el campo 'fech' se rellena solo al cambiar al siguiente registro. (Ese es el cambio).
Si deseas un formulario como el que estás presentando aquí (un control de tabla para ir rellenando), la solución más acertada es la proporcionada por RMG, aunque ya digo, se ve el resultado después de añadir algo en el control 'Notas' y vas al siguiente registro.
Yo nunca usé así un formulario, ya que para eso, ya escribiría directamente en la tabla, así que he encontrado un 'efecto' que no encontré antes. Me explico:
Tengo una rutina (dos macros) para hacer lo que se ve en Access para un campo de fecha con una fecha predeterminada: te ofrece la fecha, pero en realidad no graba nada hasta que has introducido datos en el resto del formulario y das el beneplácito pasando a un nuevo registro. Bien, esto no me funciona en el control de tablas, y he visto que la columna de fechas en el control de tablas no funciona exactamente igual que un control de fechas en un formulario digamos 'standar', y además funciona de forma diferente en LibreOffice y en ApacheOpenOffice.
En la base de datos que aporto encontrarás un formulario 'Savitri_efemérides' que es el que ya habías puesto, pero le añadí las dos macros, y el efecto que tiene es que, si usas LibreOffice, cuando te pones en el nuevo registro que quieres rellenar, en el campo 'fech', se rellena con la fecha de hoy, pero, cuando pasas al campo 'notas' la fecha desaparece, sin embargo, si rellenas el campo 'Notas' y pasas al siguiente registro, queda grabado el que escribiste con la fecha de hoy y te ofrece esa misma fecha para el nuevo registro....
 Editado: En el caso de ApacheOpenOffice no hay efecto ninguno (tedré que revisar la macro) 
En el caso de ApacheOpenOffice grabaría la fecha una vez que has escrito en el campo 'Nota' y pasas al siguiente registro, así que mi solución para este caso queda un poco rara tanto en LibreOffice como en ApacheOpenOffice (más o menos lo mismo que la solución de RMG).
'Savitri_efemérides1'está basado en una tabla añadida con este mismo nombre, pero con el arreglo de RMG, y verás que si dejas la fecha sin rellenar, rellenas el campo 'notas' y al pasar al siguiente registro, el campo fecha se rellena automáticamente.
'Savitri_efemérides2' es un formulario de los que yo llamaría 'stándar', donde hay en pantalla un solo registro, y aquí están cargadas las dos macros que te comentaba. Al ir a un nuevo registro se rellena automáticamente la fecha, pero no graba nada, hasta que rellenas el campo 'notas' y decides pasar a otro registro. En ese momento lo graba, de tal manera que te oferta una fecha, pero no te obliga a tener un registro nuevo para tener la fecha en pantalla ( esto es lo que yo llamo una fecha predeterminada)
'Savitri_efemérides3' es otro modelo de formulario en forma de tabla, en el que con una sola macro escribe la fecha de hoy, pero cuando la escribe te graba un nuevo registro, de tal manera que si decides no escribir nada y no quieres que te quede un registro sin más datos que la fecha tendrás que eliminar ese registro.

Bueno!, quizá con tanta explicación lo he liado todo un poco, pero espero que al ver el ejemplo se clarifique todo algo.

Un saludo y feliz año nuevo! ;)
Adjuntos
Para foro Apache ampliación.7z
(38.26 KiB) Descargado 319 veces
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
José Luis L.
Mensajes: 19
Registrado: Mar Nov 20, 2018 6:57 pm

Re: Valor predeterminado campo fecha

Mensaje por José Luis L. »

Vaya, después de muchas pruebas, ¡ha funcionado!

El caso es que cuando escribí en contestación a RMG, había hecho el corta-pega con una de las dos sentencias, prácticamente iguales, pero con una ligera diferencia que me pasó inadvertida, una letras bailadas: (Savriti por Savitri).

Subsanado eso, el formulario funciona poniendo la fecha del día. Es decir que funciona la solución primera 'Savitri_efemérides1' que menciona Longui. Respecto a la segunda solución que planteas me gusta la idea de que se abra un calendario, pero creo que no funcionaría en un formulario del tipo actual en el que pueden verse múltiplos registros.

La explicación como ves, no era liosa, aunque desde luego sí extensa.

En fin que afortunadamente, gracias a vuestras indicaciones, puedo terminar felizmente el año con el campo fecha solucionado.

Saludos y feliz año nuevo.
OpenOffice 4.1.5 en Windows 10
Responder