Imprimir página | Cerrar ventana

Consulta No coincidentes

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85625
Fecha de impresión: 20/Abril/2024 a las 07:03


Tema: Consulta No coincidentes
Publicado por: salvaleuven
Asunto: Consulta No coincidentes
Fecha de publicación: 20/Noviembre/2020 a las 15:16
Hola a todos, a ver si me podéis orientar, por favor:

Tengo dos tablas: albaranes y facturas.

Tabla albaranes: sus campos son IdProveedor, CodAlb, FechaAlbaran
Tabla facturas: sus campos son IdProveedor, CodFactura, FechaFactura, CodAlb1, CodAlb2, CodAlb3

Evidentemente, una factura puede relacionarse con un máximo de 3 albaranes.

Necesito montar una consulta que me encuentre qué albaranes no están contenidos en ninguna factura, teniendo en cuenta que los valores de CodAlb1, CodAlb2, CodAlb3 son cadenas de texto que no coinciden totalmente con el valor de CodAlb. Por ejemplo: CodAlb1: 123456 - CodAlb: A123456. El valor de CodAlb puede contener algún carácter de texto que no está en los campos CodAlb1, 2, 3.

Muchísimas gracias!!



Respuestas:
Publicado por: emiliove
Fecha de publicación: 20/Noviembre/2020 a las 15:34
En una consulta tienes que Juntar los campos CodAlb1, CodAlb2, CodAlb3, en un solo campo con una consulta de union y la tabla de albaranes tienes en una consulta que quitar los caracteres de texto y después solo dejas que el asistente haga la consulta de no coincidentes.

Fácil verdad, saludos.


Publicado por: Mihura
Fecha de publicación: 20/Noviembre/2020 a las 16:27
Un apunte,

Sería bueno plantearte un cambio en tu B.D. Es el Albarán el que debe tener un campo que te diga a la factura a la que pertenece (a cero cuando todavía no este facturado).

Puede que sea bastante trabajo implementar este cambio, pero seguro que  te ahorras muchísimo más.


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: emiliove
Fecha de publicación: 20/Noviembre/2020 a las 16:41
Yo también tendría un detalle de factura donde irían los albaranes "CodAlb" en lugar de CodAlb1, CodAlb2, CodAlb3 que ya te esta dando problemas

Saludos.


Publicado por: Mihura
Fecha de publicación: 20/Noviembre/2020 a las 16:54
Emiliove,
Yo no lo tendría en un detalle de factura, sino en la cabecera del albarán.



-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: salvaleuven
Fecha de publicación: 21/Noviembre/2020 a las 09:09
Muchas gracias a los dos. Lamentablemente, no puedo tocar la estructura de las tablas...son importaciones de una BD externa.



Publicado por: salvaleuven
Fecha de publicación: 21/Noviembre/2020 a las 19:01
Publicado originalmente por emiliove emiliove escribió:

En una consulta tienes que Juntar los campos CodAlb1, CodAlb2, CodAlb3, en un solo campo con una consulta de union y la tabla de albaranes tienes en una consulta que quitar los caracteres de texto y después solo dejas que el asistente haga la consulta de no coincidentes.

Fácil verdad, saludos.

He creado un campo en una consulta, uniendo los 3 campos de albaranes, simplemente así: [codalb1]&[codalb2]&[codalb3]. ¿Una consulta de unión no exige que las tablas que combina tengan exactamente la misma estructura de datos? No entiendo cómo emplear la consulta de unión para "juntar" los valores de los diferentes albaranes.

He creado una función para eliminar los caracteres de texto de este nuevo campo y del campo [codalb] de la otra tabla. Pero la consulta de no coincidentes del asistente exige un campo común en ambas consultas, y sigo sin tenerlo....No sé cómo hacer para que busque el campo codalb en el nuevo campo que une los 3 campos de albarán de la otra tabla.

Muchas gracias,


Publicado por: Dabellaso
Fecha de publicación: 21/Noviembre/2020 a las 19:17
Cuando emiliove dijo de unir los campos en una consulta, indicó que usaras una consulta de unión.

La estructura según tus tablas deberia se algo así:

SELECT Facturas.CodAlb1 FROM Facturas;
UNION ALL
SELECT Facturas.CodAlb2 FROM Facturas;
UNION ALL
SELECT Facturas.CodAlb3 FROM Facturas;


después para la consulta de no coincidentes deberás usar esa consulta

prueba y nos cuentas que tal


-------------
El saber no ocupa lugar, sólo tiempo


Publicado por: salvaleuven
Fecha de publicación: 21/Noviembre/2020 a las 19:43
Ok, ya he entendido lo que apuntabas...crear una consulta que devuelva un registro por cada combinación factura-albarán, mediante una consulta de unión de la misma tabla de facturas, tres veces (una por cada campo de albarán). Me ha costado algo pero después de redactar el anterior post se me ha encendido la bombilla.

Muchas gracias!!!


Publicado por: salvaleuven
Fecha de publicación: 12/Diciembre/2022 a las 23:21
Puede cerrarse este hilo



Imprimir página | Cerrar ventana