Access - Hora que se genere y no se actualice

   
Vista:
Imágen de perfil de compumakro

Hora que se genere y no se actualice

Publicado por compumakro (29 intervenciones) el 26/07/2012 05:27:07
Amigos de Access 2007

Agradecería una mano a lo siguiente:

Voy a facturar, al traer un formulario nuevo el autonumérico aparece ##### y basta que pulse una tecla para que inmediatamente se genere el consecutivo.
Así mismo quiero hacer con un campo que tenga exclusivamente la hora, que se vea Hora:##### y al pulsar una tecla aparezca el autonumérico en su campo y la hora am/pm en el suyo y que esa hora no se actualice después de generarse en ese registro.

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Hora que se genere y no se actualice

Publicado por deneg_nhj (349 intervenciones) el 28/07/2012 00:19:58
Pues es muy sencillo, en la tabla al campo de la hora, ponle el valor predeterminado HoraActual(), luego en el formulario la muestras pero no permitas que la modifiquen.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Compumakro

Hora que se genere y no se actualice

Publicado por Compumakro (29 intervenciones) el 29/07/2012 04:48:50
deneg_nhj, gracias por tu consejo, pero no funciona. Me da la hora, pero cada que consulto una factura anterior, me muestra la hora actual del computador. ¿Es posible que lograr que esa hora quede fija y que en 2 meses yo vuelva a consultar la factura y aparezca la hora en que se elaboró ese día.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

Hora que se genere y no se actualice

Publicado por Neckkito (1104 intervenciones) el 30/07/2012 11:24:58
Hola!
Vamos a ver...
No es que al pulsar cualquier tecla se te active el autonumérico, sino que eso se produce en el momento en que empiezas a rellenar el registro con información. Y es así porque ese es el comportamiento predeterminado de Access por lo que respecta al autonumérico.
En relación con el campo de hora que comentas necesitas indicarle a Access que, en el momento en que pulses una tecla, te rellene el campo (siempre y cuando esté vacío, porque si no te lo sobreescribirá). Y necesitas determinarle qué tecla quieres que active el proceso (aunque podrías programar que se produzca la activación por la pulsación de varias teclas).
Para hacer eso tienes que decirle a Access que se active antes el evento de formulario que el evento de control, porque si no no funcionará la detección de pulsación.
Te pongo un ejemplo de cómo se haría con la pulsación del tabulador, suponiendo que el campo donde quieres que se escriba la hora tiene el formato ya asignado y se llama [Hora].
1.- Pones el formulario en vista diseño y sacas sus propiedades
2.- Te vas a la pestaña Eventos y buscas un evento que se llama "Tecla de vista previa", y le cambias la propiedad a SÍ (esto hace que se detecten antes los eventos de formulario)
3.- Ahora te vas al evento "Al bajar una tecla" y le generas el siguiente código:
...
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim miTab As Integer
Dim vAhora As Variant
vAhora = Nz(Me.Hora.Value, 0)
miTab = vbKeyTab
If miTab Then
If vAhora = 0 Then
Me.Hora.Value = Now()
End If
End If
End Sub
...
Y ya está. Cuando, en el formulario, pulses la tabulación, si el campo [Hora] está vacío se te rellenará con la hora del sistema, y, salvo que lo cambies manualmente, te guardará esa hora en la tabla sin modificaciones, como pedías.
A ver si con esto te va bien.
Un saludo,
Neckkito
... http://neckkito.eu5.org ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar