Insertar autofecha en un campo nulo de formato fecha

Tengo un problema y es que quiero que un formulario pueda asignar el valor de autofecha a un campo fecha que tiene valor nulo, si le pongo en el valor predeterminado Fecha() no me hace nada y si en el evento pongo al abrir formulario o al activar registro

If Nz(fechapago;0)=0 Then

fechapago = Fecha()

End if

o

If IsNull(fechapago) Then

fechapago = Fecha()

End if

me da error en 

fechapago = Fecha()

1 Respuesta

Respuesta
2

En VBA no existe la función Fecha(), a no ser que la crees tu. Usa en su lugar Date().

El valor predeterminado no funciona para darle un valor a los registros existentes.

Cuando escribo

fechapago = Date()

Me borra los paréntesis () y lo deja en Date

Y me da el siguiente error

Se ha producido el error '2448' en tiempo de ejecución:

No se puede asignar un valor a este objeto

Lo de los paréntesis es normal. Lo del error, ya no.

¿Tu campo se llama efectivamente fechapago? ¿Es un campo normal o calculado?

Es un cuadro de texto con formato de Fecha Corta, mascara de entrada 99/99/99 y con valor null, lo he borrado y creado de nuevo y el error que me da es el siguiente:

se ha producido el error '-2147352567 (80020009) en tiempo de ejecución:

No se puede asignar un valor a este objeto. 

si le inserto la fecha manual no tengo problema, es cuando quiero que esta sea auto fecha.

¿El cuadro de texto en el formulario se llama realmente así (fechapago)?

este archivo: http://www.filebig.net/files/GmGvfHR46W 

Si abres la tabla, verás que los dos primeros registros no tienen FechaPago.

Si abres el formulario, verás que se autorellena la fecha del primer registro con la actual, y si navegas por los registros, pasa lo mismo con el del segundo, mientras que los registros 3 y 4 no varían de fecha.

Si creas un registro nuevo, también se genera la fecha actual.

El único código que lleva el formulario es en el evento "al activar registro" y es éste:

Private Sub Form_Current()
If IsNull(Me.FechaPago) Then Me.FechaPago = Date
End Sub

Que viene a ser lo mismo que tienes tu, por eso me parece raro que te de error en tu caso, salvo que el control no se llame así...

Muchísimas gracias, he puesto la sentencia tal y como tú me has enviado y funciona perfectamente lo único que observo es que yo no le puse el "me." delante del campo, por lo demás todo estaba igual.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas