Access - Como validar 2 campos de un registro en otra tabla.

 
Vista:
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Jonathan (11 intervenciones) el 07/07/2016 02:19:05
Buenas noches a todos,

Alguien podría ayudarme para realizar una consulta?

Escenario:

En una tabla (tbl_resultados) tengo varios campos ya con varios registros incluidos, dos de esos campos son (nombre_a y nombre_b) y cuento con otra tabla solo con un campo que se llama (tbl_nombres), también tiene un listado de nombres registrados.

Consulta:

Quisiera mostrar el registro de la tabla (tbl_resultados) donde (nombre_a) este en la tabla (tbl_nombres) y (nombre_b) este también en la tabla (tbl_nombres).

El registro solo se debe mostrar si se cumple esta condicion.

Muchas gracias de antemano

Jonathan Orozco
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Enrique Heliodoro (1664 intervenciones) el 07/07/2016 10:09:09
El editor de consultas que viene integradoen Access permite ver la SQL que Access va generando en base a lo que se haga de forma grafica con las tablas y campos, es su 'Vista SQL'.

Abrira una ventana con un texto que representa esquematicamente lo que se le indico de forma grafica.

Postea ese texto (para tener una referencia concreta) y sera un optimo punto de partida para encontrar una solucion.
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Jonathan (11 intervenciones) el 07/07/2016 15:41:07
Muchas gracias Enrique,

Este es el código que tengo actualmente.

SELECT tbl_resultado_roles.transacciona, tbl_resultado_roles.transaccionb

FROM tbl_resultado_roles INNER JOIN tbl_transacciones_por_rol ON tbl_resultado_roles.nombre_del_rol = tbl_transacciones_por_rol.nombre_del_rol

WHERE (((tbl_resultado_roles.transacciona)=[tbl_transacciones_por_rol].[transaccion]) AND ((tbl_resultado_roles.transaccionb)=[tbl_transacciones_por_rol].[transaccion]));

Muchas gracias.

Jonathan Orozco
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Enrique Heliodoro (1664 intervenciones) el 07/07/2016 16:17:53
En esa vista, corrige la primera linea asi, pasala a 'vista diseño' y comenta que diferencias aprecias:

Original:
SELECT tbl_resultado_roles.transacciona, tbl_resultado_roles.transaccionb

Modificada:
SELECT *
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Jonathan (11 intervenciones) el 07/07/2016 16:29:55
Muchas gracias por tu ayuda, pero me trae los registros que coinciden si el campo transaccióna es igual al campo transaccionb del mismo registro.


Adjunto la imagen del resultado.

Saludos,
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Enrique Heliodoro (1664 intervenciones) el 07/07/2016 16:37:11
Creo que esta respuesta no es la adecuada a la cuestion original (una confusion mia), te contesto a continuacion.
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Jonathan (11 intervenciones) el 07/07/2016 16:57:45
Gracias Enrique.

Se me ocurre algo como hacer un Select 1 del campo 1 a la tabla de búsqueda y luego un Select 2 del campo 2 a la tabla de busqueda dentro del mismo WHERE. Esto seria buena idea? se podría hacer?

Quedo atento.
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Enrique Heliodoro (1664 intervenciones) el 07/07/2016 17:12:42
Es un poco tecnica la respuesta, pero se adapta a lo solicitado:

SELECT *
FROM tbl_resultado_roles
WHERE (((tbl_resultado_roles.transacciona) In (select transaccion from tbl_transacciones_por_rol)) AND ((tbl_resultado_roles.transaccionb) In (select transaccion from tbl_transacciones_por_rol)));

Espero que la 'conversion' de campos y tablas sea la correcta, la que sirvio de referencia fue esta:

SELECT *
FROM Tabla7
WHERE (((Tabla7.Nombre1) In (select nombres from tabla8)) AND ((Tabla7.Nombre2) In (select nombres from tabla8)));

En ella la tabla 7 tiene parejas de nombres y la tabla 8 un listado de nombres
La pretension es mostrar los registros de la tabla 7 en que AMBOS nombres figuren en la tabla 8
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Jonathan (11 intervenciones) el 07/07/2016 18:04:10
Funciono. Muchas gracias 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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Jonathan (11 intervenciones) el 19/07/2016 19:53:39
Buenas tardes Enrique,

Después de validar con detalle la información, noto que no esta funcionando con el método que tu mencionas.

En el campo transacción a esta trayendo si lo encuentra en cualquier parte del listado de transacciones, pero debe ser si coincidente con el rol.

Tienes alguna manera de contacto mas directo, ya que aquí no se como explicar el funcionamiento de la consulta.

Mil 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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Enrique Heliodoro (1664 intervenciones) el 19/07/2016 21:44:33
Me remito al planteamiento inicial:

Escenario:

En una tabla (tbl_resultados) tengo varios campos ya con varios registros incluidos, dos de esos campos son (nombre_a y nombre_b) y cuento con otra tabla solo con un campo que se llama (tbl_nombres), también tiene un listado de nombres registrados.

Consulta:

Quisiera mostrar el registro de la tabla (tbl_resultados) donde (nombre_a) este en la tabla (tbl_nombres) y (nombre_b) este también en la tabla (tbl_nombres).

Mi respuesta fue esta:

SELECT *
FROM Tabla7
WHERE (((Tabla7.Nombre1) In (select nombres from tabla8)) AND ((Tabla7.Nombre2) In (select nombres from tabla8)));

En ella la tabla 7 tiene parejas de nombres y la tabla 8 un listado de nombres
La pretension es mostrar los registros de la tabla 7 en que AMBOS nombres figuren en la tabla 8

Creo se adapta a lo consultado, pero si antes se olvido mencionar e indicar que aparte del nombre 'tambien' tiene que coincidir el color de los ojos .... ese dato no figura en parte alguna.

Si los registros han de cumplir mas de una condicion ( o alguna condicion) bastaria añadirsela a la consulta que esta dentro de los parentesis:
... In ( xxxxxxxxxxxx) ....

Con el fin de que devolviera solo los que cumplen esa 'nueva' condicion.
(asumo que la podras generar con el editor de consultas y luego un simple copiar y pegar lo soluciona)
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Jonathan (11 intervenciones) el 19/07/2016 22:36:15
Que pena, fue un error no haber tenido en cuenta dicho detalle.

esta es la consulta que estoy generando, pero se queda pegada cargando y no termina, es como si se quedara en un Loop.

lo que agregue adicional a la que tu me copiaste fue:

Where***** en los dos In

SELECT *
FROM tbl_resultado_roles
WHERE (((tbl_resultado_roles.transacciona) In (select transaccion from tbl_transacciones_por_rol where [tbl_resultado_roles].[nombre_del_rol] = [tbl_transacciones_por_rol].[nombre_del_rol])) AND ((tbl_resultado_roles.transaccionb) In (select transaccion from tbl_transacciones_por_rol where [tbl_resultado_roles].[nombre_del_rol] = [tbl_transacciones_por_rol].[nombre_del_rol])));
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
sin imagen de perfil

Como validar 2 campos de un registro en otra tabla.

Publicado por Enrique Heliodoro (1664 intervenciones) el 19/07/2016 23:09:01
Creo que no le has dedicado mucho tiempo a esa consulta y por ello no lo has 'sintetizado'.

Voy a suponer que el 'primer nombre' sea de arquitectos y el segundo sea de aparejadores
Voy a suponer que en la misma tabla hay nombres y profesiones
Siguiendo con la suposicion, se desea que el arquitecto este entre los arquitectos de esa tabla y lo mismo para aparejadores.

Para el primer nombre (un arquitecto)
WHERE
(((Tabla7.Nombre1) In (select nombres from tabla8 WHERE Profesion = 'Arquitecto'))

El segundo seria igual, pero solo quiero aparejadores:
((Tabla7.Nombre2) In (select nombres from tabla8 WHERE Profesion = 'Aparejador')));

La supuesta consulta final seria algo como esto:

SELECT *
FROM Tabla7
WHERE (((Tabla7.Nombre1) In (select nombres from tabla8 WHERE Profesion = 'Arquitecto')) AND ((Tabla7.Nombre2) In (select nombres from tabla8 WHERE Profesion = 'Aparejador')));
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