Fecha creación Base Datos Access

Tengo una base de datos que se abre automáticamente en un formulario de inicio.

Me gustaría tener un control en dicho formulario en el que se mostrara la fecha de creación de esa base de datos.

Lo he intentado mediante un cuadro de texto mediante la fórmula ==[CurrentProject].[DateCreated] pero me da error #¿Nombre?.

2 respuestas

Respuesta
2

Te da error porque el objeto CurrentProject no tiene la propiedad DateCreated, al menos que yo sepa (salvo que se la crees tu previamente)

Una cosa que puedes hacer es crear un módulo independiente en tu BD, copiar esta función:

Public Function fncFechaCreacion() as Date
Dim fs As Object, f As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(Application.CurrentProject.FullName)
fncFechaCreacion = f.DateCreated
End Sub

y en el cuadro de texto poner:

=fncFechaCreacion()

Si quieres omitir la hora, o formateas el cuadro de texto, o el valor devuelto por la función.

Un saludo.


Efectivamente la explicación técnica es que el objeto CurrentProject no tiene la propiedad DateCreated, sin embargo, por lo que señala el experto Icue Gonzales, existen otros comandos que sí la contienen.

En cualquier caso su consejo de crear la función es más adecuada para el desarrollo del trabajo futuro, la tendré en cuenta e intentaré utilizar el modelo para otras propiedades de la BD.

Muchas gracias. 

Lo que te indica Icue es buscar un valor en la tabla oculta MSysAccessStorage, tabla que se crea y rellena automáticamente al crear una BD.

Ahora bien, comprueba que efectivamente la fecha que te devuelve esa propuesta es correcta, porque yo probé antes de responderte con la función y en mi caso, hay objetos que se crean con fecha de 2009. Te adjunto una imagen de la BD que acabo de crear ahora mismo:

Como verás, hay objetos de fecha 2009 y otros de fecha de hoy (desconozco el motivo, porque el PC no es tan viejo...).

Gracias nuevamente por tu interés y esfuerzo en la solución de las cuestiones que planteo.

Las Tablas de Sistema no las había utilizado nunca y revisándolas he comprobado que existe una llamada MSysObjects que registra todas las modificaciones que realizamos sobre los diferentes objetos de la base de datos, cuestión que es la que me interesa poder conocer.

De forma que en un formulario, en mi caso en el formulario de inicio de la aplicación accde backend, he colocado un cuadro de texto (Texto25) que muestra la fecha más antigua (DMin) de las que aparecen en la columna "datecreate" de la tabla MSysObjects y la fecha más reciente (DMax) de las que aparecen en la columna "dateupdate" de la misma tabla, cuyo contenido se activa mediante un procedimiento de evento al abrir el formulario:

Texto25 = "Creada: " & DMin("datecreate", "msysobjects") _
& "; " & "Modificada: " & DMax("dateupdate", "msysobjects")

el resultado es: Creada: 15/11/17 20:15:42; Modificada: 02/03/19 14:20:23

De momento creo que la tabla "msysobjects" es más efectiva para mis deseos que la tabla "msysaccessstorage" aunque desconozco exactamente lo que se registra en cada una de ellas, pero por las pruebas que estoy haciendo creo que para conocer la fecha de creación de la base de datos y la fecha de la última modificación realizada en el diseño de la misma me sirve lo señalado, a pesar de que está registrando en "·dateupdate" el acceso al diseño de un objeto aunque no lo haya modificado realmente. 

Con las pruebas que siga realizando veré la idoneidad de los datos que registran una u otra tabla.

En cuanto a la aparición de fechas antiguas, en mi caso he creado una nueva base de datos en Access 2016 y los datos registrados en las tablas mencionadas son de la fecha de creación, no anteriores.

Reitero mi agradecimiento por vuestro tiempo.

Respuesta
2

Una forma más sencilla es, si tengo el formulario

Cuando pongo el cursor en el cuadro de texto0

En el evento Al recibir el enfoque le tengo puesto

Texto0 = DFirst("datecreate", "msysaccessstorage")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas