Discussion:
goToRecord en Subformulario
(demasiado antiguo para responder)
Manuel
2003-12-16 18:06:40 UTC
Permalink
Pues mi pregunta es esa,
- ¿Cómo puedo desplazarme a un registro en un subformulario?,
- ¿Se puede utilizar este método en subformularios?, y si se puede, cómo le
digo que el objeto activo es el subformulario?.

Muchas gracias por todo.

Manuel
alf
2003-12-16 18:38:27 UTC
Permalink
en los parametros de "Docmd.GoToRecord ..." se pasa el nombre del objeto al
que le quieres aplicar la accion...
ya sea el form o el subform.
saludos, alf
Post by Manuel
Pues mi pregunta es esa,
- ¿Cómo puedo desplazarme a un registro en un subformulario?,
- ¿Se puede utilizar este método en subformularios?, y si se puede, cómo le
digo que el objeto activo es el subformulario?.
Muchas gracias por todo.
Manuel
Manuel
2003-12-17 09:51:57 UTC
Permalink
Le he pasado en nombre del control subformulario y me salta el siguiente
error:

"Se ha prodicido el error '2489' en tiempo de ejecución:
El objeto 'fraRecordGen' no está abierto."

Lo he intentado con "Me.fraRecordGen" y me salta el mismo error.
Supongo que busca un formulario abierto con ese nombre, pero lo que yo
quiero es que se mueva entre los registros de un subformulario.

Muchas gracias por tu respuesta
Un saludo
Manuel
Post by alf
en los parametros de "Docmd.GoToRecord ..." se pasa el nombre del objeto al
que le quieres aplicar la accion...
ya sea el form o el subform.
saludos, alf
CarCar
2003-12-17 10:59:22 UTC
Permalink
Hola:

No está claro en tus preguntas, pero deduzco que quieres,
estando en el formulario padre, ir a un registro del
subformulario... lo que no tengo claro es si quieres a un
registro determinado...

Por ejemplo ayer mismo coloqué este código que coloca como
registro activo del subformulario un registro del mismo
que cumpla con una condición, esto desde el código del
formulario padre:

Dim Cond As String

Condicion = "Campo1=" & 25 & " AND Campo2=" & Me.TxtCampo2

Me.NombreSubformulario.Form.RecordsetClone.FindFirst Cond

Me.NombreSubformulario.Form.Bookmark =
Me.NombreSubformulario.Form.RecordsetClone.Bookmark

Otra forma, sería utilizando como comentas el GotoRecord,
por ejemplo así (también desde código del formulario
padre):

Me.NombreSubformulario.SetFocus
DoCmd.GoToRecord , , acFirst
DoCmd.GoToRecord , , acNext

El SetFocus hace que el subformulario sea el
objeto "activo" y el código que va detrás hace referencia
a él.

Saludos,
CarCar
MVP-Access
-----Mensaje original-----
Le he pasado en nombre del control subformulario y me
salta el siguiente
El objeto 'fraRecordGen' no está abierto."
Lo he intentado con "Me.fraRecordGen" y me salta el mismo
error.
Supongo que busca un formulario abierto con ese nombre,
pero lo que yo
quiero es que se mueva entre los registros de un
subformulario.
Muchas gracias por tu respuesta
Un saludo
Manuel
Post by alf
en los parametros de "Docmd.GoToRecord ..." se pasa el
nombre del objeto
al
Post by alf
que le quieres aplicar la accion...
ya sea el form o el subform.
saludos, alf
.
Manuel
2003-12-22 16:37:30 UTC
Permalink
Hola:

Muchas gracias por la ayuda. Ya he logrado hacer lo que me proponía, esto
es:
Cambiar en un subformulario entre la vista tabla y la vista formulario, y
mantener el foco en el registro que tenía activado. Para ello me creo una
variable a la que llamo "anterior" tipo Long y le doy el valor del registro
que tengo activo

anterior = Me.fraRecordGen.Form.CurrentRecord

a continuación, en el marco del subformulario cargo el formulario con vista
contraría al que tenía cargado, y entonces le digo que vaya al registro que
tengo en la variable "anterior"

'* para dar el foco al marco del subformulario
Me.fraRecordGen.SetFocus
'* y para ir al registro que interesa
DoCmd.GoToRecord , , acGoTo, anterior

Así cambio la vista del subformulario entre tabla y formulario y mantengo el
puntero en el mismo registro en que estaba.

Muchas gracias por la ayuda. Esto puede parecer muy sencillo, pero a mí me
ha dado más de un dolor de cabeza.

Un saludo y desear una feliz navidad y feliz año nuevo a todos los foreros
de Access.

Manuel
CarCar
2003-12-23 09:07:06 UTC
Permalink
:-))

Veo que te lo has currado tú solito ¡eso está bien! y,
mejor aún, compartir con los demás tu solución.

Navideños saludos,
CarCar
MVP-Access
-----Mensaje original-----
Muchas gracias por la ayuda. Ya he logrado hacer lo que
me proponía, esto
Cambiar en un subformulario entre la vista tabla y la
vista formulario, y
mantener el foco en el registro que tenía activado. Para
ello me creo una
variable a la que llamo "anterior" tipo Long y le doy el
valor del registro
que tengo activo
anterior = Me.fraRecordGen.Form.CurrentRecord
a continuación, en el marco del subformulario cargo el
formulario con vista
contraría al que tenía cargado, y entonces le digo que
vaya al registro que
tengo en la variable "anterior"
'* para dar el foco al marco del subformulario
Me.fraRecordGen.SetFocus
'* y para ir al registro que interesa
DoCmd.GoToRecord , , acGoTo, anterior
Así cambio la vista del subformulario entre tabla y
formulario y mantengo el
puntero en el mismo registro en que estaba.
Muchas gracias por la ayuda. Esto puede parecer muy
sencillo, pero a mí me
ha dado más de un dolor de cabeza.
Un saludo y desear una feliz navidad y feliz año nuevo a
todos los foreros
de Access.
Manuel
.
Yala
2003-12-18 15:56:16 UTC
Permalink
Prueba a poner un gotocontrol que te indique como activo el subformulario
Después podrás usar el gotorecord

Yala
Loading...