Para expertos en Access. ¿Rizar el rizo?

Muy buenas. Mi pregunta va sobre Access, a ver si sabe alguien cómo se hace o si me puede sugerir a qué otro experto preguntar.
¿Se pude hacer (generando alguna expresión determinada) que los datos devueltos por una consulta Access vayan rotando cada vez que se ejecuta/abre la misma?
Ej: si ahora aparece, por este orden 12345 (orden predeterminado), quiero que en la siguiente vez que abra la consulta o la ejecute (por ejemplo en Internet), se presenten/listen como 23451 y
así ucesivamente (34512, 45123 51234 y de nuevo 12345, 23451, etc sin fin).
Lo de que la info se vea en Internet lo tengo claro, el problema es que se muestra tal cual "sale" de la consulta y yo quiero entonces que la consulta sea la que ordene los datos de forma rotatoria.
¿Sirven para ello las funciones incorporadas de cronómetro o número aleatorio que crea Access?
¿Access es capaz de hacerlo? ¿Cómo se hace? Muchas gracias ! Un saludo

1 Respuesta

Respuesta
1
Lo que quieres, sí se puede, pero con código, no con una expresión. Y por supuesto, tiene su respectivo costo en tiempo de ejecución.
Debes guardar una variable (llamada MARCA, por ejemplo) en disco y que se actualice cada que abras la consulta.
La mencionada consulta debes dividirla en dos.
Así:
rs1 = SELECT * from [tabla] where IdRegistro >= [MARCA]
rs2 = SELECT * from [tabla] where IdRegistro < [MARCA]
El primer recordset guarda los registros iguales o superiores a la marca; el segundo recordset guarda los registros inferiores a la marca; debes mostrar primero el rs1 (en un bucle) y luego el rs2 (en un bucle). Así se obtiene lo que deseas.
Esto que sigue se debe hacer después de abrir el recordset y antes de mostrarlo al usuario. Para actualizar MARCA cada que abras la consulta debes calcular el MAX(IdRegistro) y el MIN(IdRegistro) en las variables MinReg, MaxReg.
with MiRecordset
.movefirst
NuevaMarca = !IdRegistro
If NuevaMarca = MaxReg then
NuevaMarca = MinReg
Else
.MoveNext
If not .Eof then
NuevaMarca = !IdRegistro
End If
End If
MARCA = NuevaMarca 'Guardar en disco
End With
Debes tener en cuenta que ésto se puede volver lento, porque se requiere de tres consultas en vez de una.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas