Access - numerar registros en consultas

Como en otras oportunidades, les vuelvo a comentar que soy un usuario autodidacta de access, el que utilizo en forma no profesional y solo para uso particular en alguna base de datos que he confeccionado, por lo que me encuentro con situaciones que leyendo los manuales no puedo resolver, como la que les comento a continuación, en unas de esas algo muy sencillo de solucionar para quien conoce del tema.
En una base de datos he armando una consulta sobre cuatro tablas distintas (llamémosla consulta "A"), cuyos registros están ordenados en forma ascendente en virtud de un campo determinado al que llamaremos "TIEMPO".
Lo que necesito es agregar a ésta consulta "A" un campo (llamémoslo "NUMERO"), que numere correlativamente, también en forma ascedente, a partir del numero 1 (uno) hasta un numero "x", tal cual el orden preestablecido por el campo "TIEMPO". Esta primer consulta ("A") sirve de base a una segunda consulta ("B"), donde se agregan otras tablas, filtrándose y eliminándose algunos registros de la consulta "A", pero conservando los registros sobrevivientes, el valor (o el numero) que se obtuvo para ese registro en la tabla "A" en el campo "NUMERO".
Espero haber podido explicar la situación y si alguno me puede ayudar, agradeciudo.

1 respuesta

Respuesta
1
Hola Xavi, que rapidez en contestar! Agradecido.
Un problema, al no estar registrado me niega el acceso a los dos links y lemantablemente tampoco tengo acceso a registrarme. ¿No hay alguna otra solución?
Saludos. Gracias
La verdad es que no entiendo que no te puedas registrar... no sabes lo que te pierdes
Te pego el primero de los posts:
Mediante el siguiente método es posible numerar los registros en una
consulta. Para que sea más claro usaremos el siguiente ejemplo.
Partimos
De una tabla (TABLA1) con 2 campos (DATO1, DATO2 - ambos texto/10); con los
siguientes datos:
Dato1 dato2
Hola
1
Adiós 2
Hasta luego 2
Buenas 1
La idea seria
Conseguir mediante una consulta el siguiente resultado:
RegNum. Dato1
Dato2
1 Hola 1
2 Adios 2
3
Hasta luego 2
4 Buenas
1
Para crear el "numero de orden" usaremos esta función:
Public Function numerarSQL(nDato) As Long
'variable que no se pierde entre las distintas
llamadas
Static nORDEN As Integer
If IsNull(nDato) Then 'si nDato es nulo: variable a cero y salida
nORDEN = 0
Exit Function
End If
nORDEN = nORDEN +
1
numerarSQL =
nORDEN
End Function
Hacemos la consulta con el siguiente
SQL:
SELECT numerarSQL([dato1]) AS RegNum, * FROM
Tabla1
Si ejecutamos la consulta nos dará la numeración de
registros correlativa pero con el inconveniente de que si volvemos a ejecutarla
el primer RegNum ya no sera el 1, pues la variable Static nOrden sigue
almacenando los datos entre las distintas llamadas a la función.
Debemos indicarle a la función que queremos empezar desde el
numero 1, lo haremos con el siguiente SQL:
SELECT
numerarSQL(Null), * FROM Tabla1 WHERE 1=0
Como no nos interesa
Tener dos consultas independientes, las juntamos en una sola con la clausula
UNION, quedando asi:
SELECT numerarSQL([dato1]) AS RegNum, * FROM Tabla1
UNION
ALL
SELECT numerarSQL(Null), * FROM Tabla1 WHERE 1=0
Con esto
Ya tendremos una consulta con los registros numerados.
====Añadido por Búho====
Este método de Marius
Puig permite numerar cualquier tipo de consulta, si bien, el
resultado es otra consulta no editable.
Este método y el expuesto por Antonio
Pineda, podrá ser aplicado, según las necesidades y el escenario de trabajo que
cada uno estime oportuno. Gracias a ambos por vuestro esfuerzo y código, ya que
es una pregunta que se suele hacer en los foros de programación de
Access.
Segundo post:
Acabo de encontrarme en la página de Garry Robinson, una muy sencilla manera de
numerar los registros de una consulta, tiene sus limitaciones y supongo
ralentizará bastante los procesos, pero no deja de ser muy ingenioso.
Como requisito la tabla a mostrar deberá tener un campo único y numérico,
lo ideal un autonumérico.
Es tan simple como esto
SELECT DCount("id","TestTable","id <= "
& [id]) AS Counter, Num1, date1, TestTable.id
FROM TestTable
ORDER BY
TestTable. Id
Aquí os va un
Enlace a la página de Garry
http://www.vb123.com.au/toolshed/07_access/countercolumn.htm
(No se como quedara el copiar y pegar pero toma la buena voluntad)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas