Insercion de fecha automatica

Discute sobre las herramientas de la base de datos
Responder
Dominik
Mensajes: 3
Registrado: Mié Ago 30, 2017 8:27 pm

Insercion de fecha automatica

Mensaje por Dominik »

Buenas tardes, y ante todo gracias por existir. Hace poco que he empezado con Openoffice Base y con las Base de datos en general y gracias a vosotros he resuelto muchísimas dudas. Pero tengo una que no logro solventar. Tengo una tabla para prospección de inmuebles y una de los campos a introducir es la fecha. Hoy por hoy la estoy introduciendo manualmente pero me ayudaría mucho que fuese introducida automaticamente.

¿Como puedo hacer?


Mil gracias por adelantado y disculpar una pregunta tan tonta
Mac os Sierra
Apache Openoffice 4.1.3
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Insercion de fecha automatica

Mensaje por mauricio »

Hola...

Recuerda, la única pregunta "tonta", es la pregunta NO hecha...

Creo recordar que tu pregunta ya se ha contestado en estos foros... ¿ya hiciste una búsqueda?

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Dominik
Mensajes: 3
Registrado: Mié Ago 30, 2017 8:27 pm

Re: Insercion de fecha automatica

Mensaje por Dominik »

Buenas mauricio, la verdad es que si realice la búsqueda pero no logre dar con nada que me ayudase con mi problema (con este, el resto de los que se me han ido presentado los he podido solucionar gracias a este foro), estoy seguro de que algo he debido pasar por alto o de que estoy tan verde en esto que por eso las respuestas dadas no me han servido; no obstante si pudieras facilitarme algo de info o el hilo en cuestión te lo agradeceria enormemente!
Mac os Sierra
Apache Openoffice 4.1.3
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Insercion de fecha automatica

Mensaje por fornelasa »

Dominik, Sugiero dar más detalles de la consulta y de ser necesario subamos a esta pagina un archivo ejemplo.
Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Dominik
Mensajes: 3
Registrado: Mié Ago 30, 2017 8:27 pm

Re: Insercion de fecha automatica

Mensaje por Dominik »

Tengo una base de datos local, que utilizo para la prospección de viviendas en venta, en la cual he creado dos tablas; una de ellas llamada venta es la principal y la que se muestra a continuación. en la segunda, llamada tipo, simplemente se recogen los valores de un campo de selección para poder indicar el tipo de vivienda.

Imagen

El campo Fecha, de tipo Date, debe recoger la fecha en que ha sido añadida la entrada a la base de datos, para saber cuando he prospectado dicho inmueble.

Los datos son introducidos mediante el siguiente formulario (soy consciente de lo feo que es pero ya lo reformare una vez funcione todo bien):

Imagen

Mi intención es que el campo fecha recoja automáticamente la fecha actual para que esta sea almacenada en cada entrada de la bd, para evitar teclearla.

Las consultas de lso datos ya introducidos se realizan desde otro formulario en el que solo se muestran pero no se pueden modificar los datos.


La cuestión es que no se ni por donde empezar a solucionarlo; he leído algo sobre macros, pero no se si serviría ni como implementarlos.

Nuevamente mil gracias por cualquier ayuda que podáis darme
Mac os Sierra
Apache Openoffice 4.1.3
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Insercion de fecha automatica

Mensaje por RMG »

Hola,

Una posible solución simple. Ejecutar esta instrucción en Herramientas->SQL->Ejecutar comando

ALTER TABLE "PonerNombreTuTabla" ALTER COLUMN "Fecha" SET DEFAULT CURRENT_TIME;

ALTER TABLE "PonerNombreTuTabla" ALTER COLUMN "Fecha" SET DEFAULT CURRENT_TIMESTAMP; (este pone tambien la hora)

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)
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Insercion de fecha automatica

Mensaje por fornelasa »

Otra posible opción (semi automática) para capturar datos en un campo fecha es mostrar de las opciones del campo fecha la propiedad "Despegable".
Y al momento de capturar escogemos el botón hoy, como se muestra en el cuadro chiquito anexo, ejemplo:

Imagen
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Insercion de fecha automatica

Mensaje por Longi »

Buenas!

Si pones una macro como la que pongo abajo en el evento 'Después de modificar registro' del formulario en el que quieres trabajar, debiera funcionar:

Código: Seleccionar todo

Sub FechaPredeterminada (Event)
   
    Dim oCtrl As Object, oForm As Object
    oForm=Event.Source                                                                        ' Formulario afectado
    oCtrl = oForm.getByName("FECHA")                                                          ' Control fecha
    If oCtrl.BoundField.getString()<>"" Then Exit sub                                         ' Si ya hay una fecha, nos echa
    oCtrl.BoundField.UpdateString( (Year(NOW())) &"-" & (Month(Now()))&"-" & (Day(Now())))    ' Ponemos la fecha
 
End Sub
Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Insercion de fecha automatica

Mensaje por Longi »

Otra posibilidad (ya que la anterior en ocasiones no funciona) es:

1- En el evento 'Antes de acción en el registro':

Código: Seleccionar todo

Sub fijarpredeterminados

    oForm=ThisComponent.Drawpage.Forms.getByName("MainForm")                                 ' Modelo del formulario
    Fecha = oForm.getByName("FECHA COMUNICACION").CurrentValue                               ' Valor actual en el formulario
    FechaCTL= oForm.getByname("FECHA COMUNICACION")                                          ' Control en el formulario
    Globalscope.BasicLibraries.LoadLibrary( "Tools" )                                        ' Librería 
    '-----------------------------------------------
    ' 1º Si Fecha  está lleno, nos echa de la macro
    
    If FechaCTL.BoundField.getString()<> "" Then                                              ' Si la fecha no está vacía
    Exit sub                                                                                  ' Nos echa de la macro
    End if                                                                                    ' Acabamos la condición
    '--------------------------------------------------------------
    ' 2º Fijamos los valores que tenemos como predeterminados
    
    FechaCTL.BoundField.UpdateString( (Year(NOW())) &"-" & (Month(Now()))&"-" & (Day(Now()))) ' Ponemos la fecha
    '-------------------------------------------------------------
    ' 3º Al ejecutarse dos veces(por el tipo de evento que es), nos aseguramos de salir en caso de que Fecha esté vacía
   
    If FechaCTL.BoundField.getString()<> "" Then                                               ' Si la fecha no está vacía
    Exit sub                                                                                   ' Nos echa de la macro
    End if                                                                                     ' Acabamos la condición
 
    If oForm.isNew then                                                                         ' Si el formulario es nuevo
    oForm.insertRow                                                                             ' Insertamos una fila                            
    Else                                                                                        ' En caso contrario
    oForm.UpdateRow                                                                             ' Actualización de la fila
    End if                                                                                      ' Acabamos la condición 

End sub
En el Evento 'Después de modificar el registro' asignamos la siguiente:

Código: Seleccionar todo

Sub AnotarFechaInicioFormulario(Evento As Object)
   Dim oCtrl As Object, Programa As Variant
   Dim FechaBD As New com.sun.star.util.Date
   Globalscope.BasicLibraries.LoadLibrary( "Tools" )
   Programa= GetProductname()
   oCtrl = Evento.Source.getByName("FECHA COMUNICACION")
   If Evento.Source.IsNew Then
     if left(Programa, 11) <>"LibreOffice" Then    
        oCtrl.Date = Val( Format( Now, "YYYYMMDD" ) )
     Else
        FechaBD.Year=Year(NOW())
        FechaBD.Month=Month(NOW())
        FechaBD.Day=Day(NOW())
        oCtrl.Date = FechaBD
     End if
   End if
End Sub
De todos modos, supongo que alguien encontrará el caso en el que no funcione. :lol:

Otro saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
llalles
Mensajes: 31
Registrado: Vie Oct 20, 2017 8:28 am
Ubicación: Valencia

Re: Insercion de fecha automatica

Mensaje por llalles »

Muchas gracias por lo del campo deplegable.

Me ha venido de maravilla

Mi agradecimiento a todos los que haceis este foro
Apache Openoffice 4.1.3 en Windows 7
Responder