Un buen día de Septiembre, el Bhuo, gripe incluida, preguntaba en las News:

En un formulario continuo, tabular, donde hay X registros, para situarme en
el ultimo registro puedo emplear:
DoCmd.GoToRecord , , acLast
Bien, esto funciona bien.
Digo...voy a probar con:
Me.Recordset.MoveLast
Tambien funciona, pero lo curioso de esto, es que despues del Me.Recordset,
al poner el punto, no me sale absolutamente nada. O sea, que tengo que poner
yo a pelo MoveLast.
Si alguien tiene tiempo ¿Podría probar a ver si a él si le muestra algo
despues del punto?

===================================================
LA GENTE SE MOVILIZA Y EMPIEZA A DAR SUS OPINIONES:
===================================================



PRIMERA RESPUESTA DE CHEA:

A los que programamos habitualmente con Access97 (me parece que sólo
quedamos McPegasus y yo), no se nos ocurre escribir Me.Recordset.Movefirst
porque no conseguiríamos nada; en 97 debemos usar
Me.RecordsetClone.Movefirst y ahí sí que nos aparece la opción Movefirst.

Supongo que del A97 al A2000  lo que hay de nuevo es la posibilidad de tener
recordsets de otro tipo distinto de DAO y, por tanto, A2000 no te puede
ofrecer el listado de propiedades y métodos del recordset pues con
me.recordset ún no sabe de qué tipo de recordset se trata. El método
Movefirst lo encontramos en ambos tipos, pero no, por ejemplo Findfirst.

Prueba y compara con el siguiente código (naturalmente, con ambas librerías
referenciadas)

Dim mr As DAO.Recordset
Set mr = Me.Recordset
mr.FindFirst

Dim mr2 As ADODB.Recordset
Set mr2 = Me.Recordset
mr2.Find


EL BHUO SIGUE:
==============
Gracias Chea. Teoricamente cuando hago Me.Recodset Access 2000 debería saber
o apuntar al Recordset del Formulario (Si existe, claro)
En el fondo en realidad (Ya en tiempo de ejecucion) apunta a dicho
Recordset, pues como comentaba Me.Recordset.MoveLast  sí funciona.

Además, debería saber de qué tipo de recordset se trata, pues teoricamente y
por lo que tengo entendido (Creo que ya se habló de este tema aqui) los
Recordset de los formularios de Access 2000 son tipo DAO. Además, para rizar
mas el rizo,  si yo no tengo referencia en el proyecto ADODB y sí ADO, no
tendría que tener dudas al respecto.

Pero...pensando un poco más, posiblemente se trate de lo siguiente:

A priori, en codigo, cuando estoy escribiendo la sentencia, al poner:
Me.Recordset Access no sabe si realmente el objeto ME (En este caso el
formulario) tiene asociado o no un Recordset. Quizá por eso no ofrezca los
metodos etc etc.
Solo en tiempo de ejecución y comprobar que realmente existe recordset del
formulario, es cuando ejecute la linea bien y al comprobar de la existencia
de dicho recordset, la linea Me.Recordset asigna o apunta a dicho recorset,
evitando escribir la asigancion Set que me has comentado

No sé si me he explicado. Yo por lo menos ahora lo medio-entiendo.

SIGUE CHEA
==========
Entonces los Recordset de los FRM's de Access 2000...¿Que son?

SIGUE BHUO
==========
Pues deben ser DAO (Los Recordsets de los formularios en Access 2000) pues
si hago la siguiente asignación:
Dim MiRstADO As ADODB.Recordset
Set MiRstADO = Me.Recordset

o

Dim MiRstADO As ADODB.Recordset
Set MiRstADO = Me.RecordsetClone

al ejecutar el codigo la linea del SET me dice 'Error: No coinciden los
tipos.'

No estaría de más que alguien que tenga el XP intente asignar como he dicho,
a ver de que tipo son los Recordsets de los formularios en Access XP.
Estaría bueno que siguieran siendo DAO.


SIGUE ATACTOR
=============
Efectivamente en un proyecto ADP el recordset que se devuleve es ADO en 
oposición a un proyecto MDB que el recordset que se devuelve es DAO. 
Supongo que esto es por compatibilidad con versiones anteriores.
SALUDOS


SIGUE MARJAN
============
Yo entiendo... mirando la ayuda, que .Recorset es una Propiedad. Propiedad
del objeto Form.
Como propiedad no tiene asignado ningun valor como, por ejemplo .Visible
=True o False. Entonces el "intellisense" ese no enseña nada.

Solo cuando utilizas la propiedad .Recorset para recuperar los registros del
"objeto" Recordset con Set (vaya trabalenguas...)  es cuando se "convierte"
en objeto (kk=Me.Recordset), o cuando lo ejecutas, Access "entiende" que
Me.Recordset es el objeto con el metodo MoveLast...

No se si me explicado... pero la intención era buena.


SIGUE HAPPY
===========
Creo que efectivamente, ahi esta el quid de la cuestion. Para un form,
"Recordset" es una propiedad que apunta (llama) a un objeto recordset, que
es el que en realidad trata con los registros. Esta propiedad podria haberse
llamado "Pepito" que yo sepa, pero para entendernos la han llamado igual que
el objeto (que es el que tiene metodos y propiedades y por tanto pueden
mostrarse con el intellisense).

Y...REMATA CHEA (Como casi siempre)
===================================
Se llame como se llame, la propiedad apunta a un objeto recordset que existe
y que ya tiene sus propiedades y métodos, que en Access 97 nos muestra
directamente el "intellisense" ese, mientras que el A2K no lo hace.

Después de todo lo hablado en este hilo, me inclino porque la explicación es
que en A2K los recordsets de los formularios pueden ser ADO o DAO,
dependiendo de que se trate de un ADP o un MDB, y el "intellisense" ese es
en este caso "tontosense" y no sabe de cuál de los dos se trata y, por
tanto, no puede mostrar las propiedades y métodos, que son distintos. Cuando
dimensionamos un Recordset y con Set apuntamos al Recordset del formulario,
ya lo dimensionamos de un tipo concreto, ADO o DAO, y el tontosense sabe a
qué atenerse.

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)