Al principio me extrañó ya que en Velneo hay una y mil formas más eficaces de navegar por los registros de una tabla que con los botoncitos de Access.
En Velneo puede haber muchos primeros o últimos o anteriores o posteriores; por qué índices quieres que calcule el anterior?, la anterior factura del mismo cliente?, la siguiente factura más cara?, la anterior por fecha? o la siguiente por el segundo apellido del cliente?.
Pero luego me dije, y por qué no?, aunque sea por puro divertimento Velneano vamos a hacerlo.
Empecé a garabatear las diferentes posibilidades; por proceso, por puntero singular de plural, por puntero a hermano...
Defensor como soy de lo simple decidí que no debía ser por proceso y que la solución debería estar integrada en la parte de la bd. Lo comenté con Agustín e hicimos las primeras pruebas pero ocurrió lo de siempre, procesos...
Publicamos dos soluciones no óptimas en el foro y la maestría, buen hacer, serenidad y sencillez de Paco vino a despejar el campo.
En unos 2,5 segundos había pillado la idea, el mapa, lo modificó, lo dejó funcionando y lo dejó de vuelta en el foro, acompañado de unas sabias palabras:
La respuesta no esta 'ahí afuera', la respuesta está en los índices
Sé que me puedo poner pesado pero no me voy a cansar de repetirlo una y otra vez; estructura, relaciones, índices, triggers, ahí está la solución a todos nuestros problemas. Si hay algo que no haces ahí pregúntate por qué?; no sabes hacerlo? o no se te había ocurrido? o no puedes realmente?
Siempre que se pueda hacer en las tablas, ahí se debe hacer. Así independizas la funcionalidad de la apariencia.
No soy amigo de los procesos en formularios. No me gustan los procesos en pérdida o ganancia de foco, prefiero no usar procesos a la apertura o creación de un formulario, o procesos previos al aceptar, para hacer según qué cosas.
Cuando los uso tiendo a pensar que o mi estructura de bd no es óptima o no he exprimido a fondo la parte de definición de la bd.
Después del rollo filosófico vamos al grano y veamos cómo hacer una relación puntero a hermano que desde cualquier registro de una tabla nos lleve al primero o al último.
Lo primero es la estructura de la tabla.

Vemos que es una tabla cualquiera con los punteros a hermano anterior y siguiente que te crea Velneo cuando le dices Campos - Crear puntero a hermano,

tenemos un campo Extremo que es un booleano que dice si el registro es un extremo de la tabla, con contenido inicial a Sí,


Además tenemos dos campos puntero a hermano más; Primero y Último.

Cómo es ese índice Extremo?

Qué hace este índice? Como al dar de alta un registro el trigger vuelve a fijar los extremos sólo a Sí, la condición de indexación de este índice hace que cualquier registro de la tabla sólo tenga un hermano anterior extremo y sólo uno posterior extremo, así la resolución del puntero a hermano anterior y posterior por este índice nos lleva de forma directa al primer y último registro de la tabla respectívamente.

Simple y sencillo como Velneo.
Life is Soft!