Access - Contador en Consulta

 
Vista:

Contador en Consulta

Publicado por Marcos (236 intervenciones) el 15/08/2008 23:03:39
Hola. Tengo una consulta un poco complicada.
Sabemos que en un cuadro de texto de un informe al poner en el origen del contro =1, la lista de registros se itemizará automáticamente.
Necesito hacer lo mismo, pero en una consulta a través de un campo calculado.
Es posible hacer esto ??.
El problema es que el archivo origen de mi consulta no tiene un autonumérico o algo parecido y mi intención es crear un correlativo en la consulta en forma manual.
Estoy hace horas en eso pero no he podido hacerlo.

Marcos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Contador en Consulta

Publicado por Enrique (1299 intervenciones) el 16/08/2008 12:52:39
Se puede hacer pero la consulta que se obtiene no será actualizable, o sea que no permitirá ni introducir nuevos registros ni modificar los campos desde ella, esto habría que hacerlo siempre desde su Tabla origen y por tanto no serviría como Origen del Registro de formularios, aunque si para informes (o formularios donde solo se necesite visualizar datos).

Si te vale así te digo como hacerlo pero si no te vale ¿ para qué vamos a perder el tiempo ?

Saludoa
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contador en Consulta

Publicado por Marcos (236 intervenciones) el 17/08/2008 23:39:08
Sí Enrique.
Justamente sólo necesito visualizar los datos.
Te agradeceré tu explicación.
Marcos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contador en Consulta

Publicado por Enrique (1299 intervenciones) el 18/08/2008 09:37:48
En ese caso, sigue estos pasos exactamente:

Primero crea un Módulo nuevo y pega dentro esta Función, sin cambiar NADA y guárdalo con cualquier nombre (Módulo1 por ejemplo):

Public Function Numerador(Campo) As Long
Static Ordenar As Integer
If IsNull(Campo) Then
Ordenar = 0
Exit Function
End If
Ordenar = Ordenar + 1
Numerador = Ordenar
End Function

Ahora creas una nueva Consulta, la abres en diseño, cierras la ventana "Mostrar Tabla" sin seleccionar ninguna y te vas directamente al Menú "Ver / Vista SQL" y ahí pegas esta línea:

Select Numerador([NombreCampoTabla]) As NroRegistro, * From Tabla1
Union All Select Numerador(Null), * From Tabla1 Where 1=0;

Aquí cambias "NombreCampoTabla" por el nombre del primer campo de tu Tabla Origen y "Tabla1" por el nombre real de la misma. También puedes cambiar "NroRegistro" por otro nombre para el campo numerador, aunque esto es opcional. Ejecuta la consulta de Unión y verás como el primer campo (NroRegistro) numera correlativamente los registros, pero como te dije, no permite actualizaciones, aunque puedes usarla como Origen del registro de Informes y Formularios para visualizar datos.

Espero que te sea de utilidad y saludos,
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contador en Consulta

Publicado por Marcos (236 intervenciones) el 18/08/2008 14:51:52
Realmente extraordinario. Esto es lo que necesitaba y podré hacer otras cosas que producto de esto no podía hacer. Funciona perfecto.
Gracias Enrique.
Marcos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contador en Consulta

Publicado por Nicolas (6 intervenciones) el 23/06/2009 18:52:35
Enrique: Aplique el procedimiento que detallaste, si bien la base que tengo es muy extensa (mas de 300.000 registros) cuando ejecuta la consulta de union, me da un error de Desbordamiento

El mje dice así:

Se ha producido el error '6' en tiempo de ejecución:

Desbordamiento

Cuando voy a DEPURAR, sombre en amarillo "Ordenar = Ordenar + 1" del modulo creado

Puedes ayudarme. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar