Campos calculados en tablas Access

Tengo un campo SI/No en una tabla y lo que deseo hacer es que: cuando se clickee en el campo siguiente coloque la fecha del día en curso.

Si alguien puede ayudarme se lo agradezco.

1 Respuesta

Respuesta
1

Suponiendo que tu campo si/no se llama chkDia y que tu campo de destino del día se llame elDia el código que debes generar en el evento "Al hacer clic" del check sería el siguiente:

...

Private Sub...

If me.chkDia.value=true then

me.elDia.value=date

else

me.elDia.value=null

end if

end sub

...

Si el la fecha no te sale como quieres en cuestión de formato recuerda que puedes sacar las propiedades del control (lo que yo he llamado elDia) y ahí le puedes dar el formato adecuado.

A ver si te sale.

Me acabo de dar cuenta de que hablas de que quieres operar directamente en la tabla, y no trabajar a través de formulario.

En ese caso, en las propiedades del campo donde quieres que aparezca la fecha, le deberías generar la expresión que te devolviera el resultado requerido.

En este caso tenemos el handicap de que la función date() no se puede utilizar en un campo tipo calculado. Lo lógico sería escribir una expresión así:

Iif([CampoSiNo]=True;date();Null)

Pero Access te avisa de que "no se puede utilizar la expresión Date() en una columna calculada".

Para solventar este pequeño "problema" vamos a "engañar" a nuestro amiguete Access. Lo que haremos será:

1.- Añadir un campo auxiliar a la tabla, que llamaremos por ejemplo [FechaHoy], de tipo fecha, y cuyo valor predeterminado será:

Date()

2.- Modificar la expresión que no nos funcionaba y escribirla así:

Iif([CampoSiNo]=True;[FechaHoy];Null)

Y con eso conseguiremos que nos escriba la fecha actual.

Y, ya que sale el tema, aprovecho para comentarte que si quieres profundizar un poco en el tema de los campos calculados en tabla puedes echar un vistazo a este ejemplo: http://bit.ly/1iLFr8u

Por cierto, doy por sentado que tienes una versión de Access 2010 o superior, que es donde aparece el tipo de dato "Campo calculado" en una tabla.

Si tienes una versión anterior por tabla no se puede hacer mucha cosa; tendrás que hacerlo a través de formulario.

Saludos. Neckkito

¡Muchísimas Gracias!  Neckkito sos un genio como siempre y por eso siempre sigo tu web.

La segunda opción ya la había puesto en práctica y me parecía un parche, pero es lo que resulta hasta ahora.

Estaba pensando, si a lo que llamamos [FechaHoy] puede conectarse con una función con VB de forma que devuelva el Date(). es lo que se me ocurre. 

Quizás la inexperiencia hace aumentar mi imaginación.

Saludos Sebas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas