Duplicados en visualización de consulta en formulario

Tenia una tabla de artículos en donde además de la info del mismo se iban agregando unos códigos (hasta cinco), Entonces en un formulario hacia una búsqueda, encontraba el código y me refería al ID_ARTICULO correspondiente al articulo. Pero esos códigos fueron en aumento en cantidad entonces separe en dos tablas TBL_ARTICULOS y TBL_CODIGOS porque algunos artículos tenían códigos nuevos seguido.

Entonces las dos tablas se relacionan por el ID_ARTICULO. Hay un ID_ARTICULO en una tabla y cada vez que se agrega un nuevo código en la otra tabla se agrega un ID_ARTICULO nuevo además del código. Así seria siempre hablando de un solo articulo.

TBL_ARTICULOS                                                   TBL_CODIGOS

ID_ARTICULOS                                     ID ARTICULOS             CODIGO

                                                                ID ARTICULOS             CODIGO

                                                                ID ARTICULOS             CODIGO

                                                                ID ARTICULOS             CODIGO

Y cuando más códigos se agregan más se duplican, ¿se imaginan unos 10000 artículos con 20 duplicados cada uno? La búsqueda casi seria imposible.

Acá una imagen de muestra de la búsqueda de un articulo con solo 7 códigos (la tabla tiene ese solo articulo)

esta es la consulta de donde sale

strSql = "SELECT TBL_ARTICULOS.ID_ARTICULOS, TBL_ARTICULOS.DESCRIPCION, TBL_ARTICULOS.PRECIO_COSTO, TBL_ARTICULOS.PRECIO_COSTO_BULTO,TBL_ARTICULOS.SUBRUBRO, TBL_ARTICULOS.PRECIO_VENTA_MINORISTA, TBL_ARTICULOS.PRECIO_VENTA_MIN_BULTO, TBL_ARTICULOS.PRECIO_VENTA_MAYORISTA, TBL_ARTICULOS.VENTA_BULTO_MAYORISTA, TBL_ARTICULOS.SELECCIONADO, TBL_CODIGOS.CODIGO " _
& "FROM TBL_ARTICULOS LEFT JOIN TBL_CODIGOS_DE_BARRAS ON TBL_ARTICULOS.ID_ARTICULOS= TBL_CODIGOS.ID_ARTICULOS " _
& "WHERE (((TBL_ARTICULOS.DESCRIPCION  & TBL_ARTICULOS.PRECIO_COSTO_BULTO & TBL_CODIGOS_DE_BARRAS.CODIGO_BARRAS & TBL_CODIGOS_DE_BARRAS.ID_ARTICULOS) Like '*" & gstrTexto & "*')) " _
& "ORDER BY TBL_ARTICULOS.DESCRIPCION"

Ya probé muchas cosas con mi limitada sapiencia en vb y ninguna me funciona.

Entonce la pregunta seria: ¿Hay alguna forma de hacer que solo aparezca un resultado en la búsqueda?

PD: el formulario de búsqueda lo saque de una página de access hace un tiempo, no lo hice yo. ¿Lo necesitan? Es una búsqueda selectiva que a medida que escribís la letra te van apareciendo los resultados

2 Respuestas

Respuesta
1

Tal y como tienes montada la SQL es normal que se te "repitan" campos, concretamente los de la tabla TBL_ARTICULOS.

Si quieres que te salga una única vez el artículo y todos sus códigos, para mostrar los resultados debes usar un formulario (para los artículos) con un subformulario (para los códigos)

Respuesta
1

Por lo que parece en la imagen, donde aparecen los productos, es un subformulario basado en una consulta, y tienes repetidos los registros. ¿Por qué no pruebas a poner en las propiedades de la consulta origen

Valores Únicos=si

Así solo te saldría un único registro.

¿Y eso como lo haría? La consulta es esa que esta ahí...

La imagen

O sea, en el diseño de la consulta.

Bien. ¿La consulta de búsqueda es esa que puse en la pregunta al principio si? Esa consulta esta en SQL entonces la convertí a vista diseño de access, le puse "valores únicos: si" lL volví a SQL y me quedo así:

Cambio un poco pero funciona exactamente igual.

Ahora quizás deba hacer la llamada a la consulta pero como access, porque quizás (no se) al convertirla a SQL perdió esas propiedades.

Pero no se como...

Yo llamo a una consulta que no es sql con "docmd.open query "CONSULTA"

Pero en el código la llamada a la consulta esta así, en SQL:

strSql = "SELECT TBL_ARTICULOS......etc"

¿Cómo llamo a la consulta?      strSql = CONSULTA  ?

¿Se entiende?

¿Podrías mandarme una copia vacía, sin registros a [email protected]? Creo que es lo mejor para poder opinar y además me ahorras tener que construir las tablas y la consulta.

Un saludo y ten en cuenta la diferencia horaria, que en el caso particular nuestro es de 4 horas, por lo que cuando pusiste la pregunta allí eran las 24:00 pero aquí eran las 04:00 y a esa hora es difícil pillarme despierto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas