Access - select registro exacto y si no existe muestra todo

 
Vista:

select registro exacto y si no existe muestra todo

Publicado por miguel guillen (1 intervención) el 10/11/2004 00:19:06
Hola, soy un poco nuevo, pero me gustaria saber como se hace en access una consulta para sacar un registro, y si el registro no existe, que te muestre todos los demas registros, pero que si existe solo muestre ese.
El campo por el que busco es clave unica, asi que es solo ese caso, o un registro especifico, o todos los demas.

No se se si seria pedir mucho, pero el campo clave es numerico, asi que si no existe, podria mostrarme todos los resgistros de la tabla, ordenados por el numero mas cercano al que ando buscando, asi lo primero que apareceria seria el anterior y despues el posterior ordenadamente.
De antemano, muchas gracias!!!!

Saludos de un Murciano desde USA
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
Imágen de perfil de Alejandro

Consulta para obtener un registro específico o todos los demás

Publicado por Alejandro (4142 intervenciones) el 16/05/2023 19:54:32
Para obtener un registro específico en Access y, si no existe, mostrar todos los demás registros, puedes utilizar una combinación de consultas y criterios. Aquí tienes un ejemplo de cómo puedes lograrlo:

1. Supongamos que tienes una tabla llamada "TuTabla" con un campo clave numérico llamado "ClaveUnica".

2. Crea una consulta que filtre el registro específico si existe utilizando un criterio basado en la clave única. Aquí tienes un ejemplo de consulta:

1
2
3
SELECT *
FROM TuTabla
WHERE ClaveUnica = [IngresaTuClaveUnica]

En esta consulta, "[IngresaTuClaveUnica]" es un parámetro que solicitará al usuario ingresar la clave única que desea buscar.

3. A continuación, crea una segunda consulta que seleccione todos los registros si el resultado de la consulta anterior es vacío. Aquí tienes un ejemplo de consulta:

1
2
3
4
SELECT *
FROM TuTabla
WHERE ClaveUnica <> [IngresaTuClaveUnica]
ORDER BY Abs(ClaveUnica - [IngresaTuClaveUnica])

En esta consulta, "[IngresaTuClaveUnica]" es nuevamente un parámetro que solicitará al usuario ingresar la clave única.

La función Abs(ClaveUnica - [IngresaTuClaveUnica]) en la cláusula ORDER BY ordenará los registros según la proximidad a la clave única ingresada, mostrando primero los registros más cercanos.

4. Combina ambas consultas utilizando la instrucción UNION ALL para obtener el resultado deseado. Aquí tienes un ejemplo de consulta combinada:

1
2
3
4
5
6
7
8
9
10
SELECT *
FROM TuTabla
WHERE ClaveUnica = [IngresaTuClaveUnica]
 
UNION ALL
 
SELECT *
FROM TuTabla
WHERE ClaveUnica <> [IngresaTuClaveUnica]
ORDER BY Abs(ClaveUnica - [IngresaTuClaveUnica])

Al ejecutar esta consulta, se mostrará el registro específico si existe. De lo contrario, se mostrarán todos los demás registros ordenados por proximidad a la clave única ingresada.

Recuerda ajustar el nombre de la tabla y el campo clave a los nombres reales de tu base de datos.

Espero que esto te ayude a lograr lo que necesitas. ¡Saludos desde México!
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