Access - Enrique: casi, casi me funciona.

   
Vista:

Enrique: casi, casi me funciona.

Publicado por Álvaro (5 intervenciones) el 28/06/2008 11:31:48
Hola, Enrique: Al problema que planteé el 27 de junio y que me respondiste con Me.Requiry me hace lo siguiente: es cierto, me actualiza el subformulario pero se me va al primer registro, y como tengo ajustado los límites del subformuario al registro con el que pretendo operar, pues al darle a alguno de los botones de actualizar fecha, me cambia la hora pero me deja el subformulario en el primer registro, por lo que así, le pierdo la vista al registro con el que estoy operando. ¿Conoces alguna manera de que refrescando el subformulario se actualicen los datos del registro en el que opero y no se me mueva la visualización deel registro con el que opero? Ya veo que es un problema muy puñetero.
Si quieres te envío mi pequeña base de datos por e-mail para que lo veas...

Gracias por la atención, Álvaro.

(Tu respuesta fue:

Hola de nuevo Álvaro:

Tienes razón, es cierto que no funciona porque es necesario refrescar el Subformulario, pero en lugar de hacerlo con un Refresh es mejor con un Requery:

Private Sub Comando1_Click()
Me.NombreDelCampo = Now
DoCmd.RunCommand acCmdSaveRecord
Me.Requery '<--- Esto es lo que te falta poner
End Sub

Prueba ahora. Saludos
Enrique

)
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

RE:Enrique: casi, casi me funciona.

Publicado por Enrique (1299 intervenciones) el 30/06/2008 21:16:30
Hola Álvaro:
Cuando se actualiza un formulario contínuo o vista hoja de datos con Refresh o Requery, el control se va al primer registro (es inevitable), pero esto lo suelo resolver de la siguiente forma:

Private Sub Comando1_Click()
'ASIGNAR A UNA VARIABLE EL REGISTROS EN EL QUE ESTAMOS
Dim RegAct
RegAct = Me.CurrentRecord

'EN TU CASO DARLE VALOR AL CAMPO FECHA/HORA
Me.NombreDelCampo = Now

'GRABAR EL VALOR EN LA TABLA SIN CAMBIAR DE REGISTRO
DoCmd.RunCommand acCmdSaveRecord

'ACTUALIZAR FORMULARIO PARA QUE EL CAMPO MUESTRE EL NUEVO VALOR
Me.Requery

'VOLVER AL REGISTRO DE PARTIDA USANDO LA VARIABLE "RegAct"
DoCmd.GoToRecord , , acGoTo, RegAct
End Sub

Espero que te funcione y caso contrario envíame la mdb y lo veo de primera mano.

Saludos
Enrique
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

RE:Enrique: casi, casi me funciona.

Publicado por xavi (26 intervenciones) el 03/07/2008 15:21:07
Hola,

Otra posibilidad es utilizar marcadores (Bookmarks)

Private Sub Comando1_Click()
Dim myBookmark As Bookmark
myBookmark = Me.Bookmark
Me!NombreDelCampo = Now
DoCmd.RunCommand acCmdSaveRecord
Me.Requery
Me.Bookmark = myBookmark
End Sub

El resultado deberia ser el mismo, pero por aportar otra forma de hacerlo.

Un saludo

Xavi
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