** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Duplicado en resultado de consulta
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoDuplicado en resultado de consulta

 Responder Responder
Autor
Mensaje
cordara Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 11/Octubre/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 351
Enlace directo a este mensaje Tema: Duplicado en resultado de consulta
    Enviado: 22/Enero/2016 a las 03:05
Hola solo es una pregunta para ver si me pueden guiar un poco. La cosa es asi:

Tengo una consulta que se ejecuta en un cuadro de texto y el resultado se muestra en un subformulario. Los datos se buscan en dos tablas . La tabla TBL_ARTICULOS que tiene datos varios y la TBL_CODIGOS_DE_BARRAS donde estan los codigos de barras de cada articulo y como se sabe un articulo puede tener muchos codigos de barras.

Ahora todo funciona, la consulta encuentra al articulo, pero cuando busco un articulo que tiene varios codigos de barras en el subinforme me lista una cantidad de un mismo articulo igual a la cantidad de codigos de barras guardados por el ID del articulo, o sea_
   

 ID      DESCRIPCION     COSTO
369          gaseosa          3.75
369          gaseosa          3.75
369          gaseosa          3.75

Cuando quisiera que apareciera  mostrandome uno solo...

ESTA ES LA CONSULTA.

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_DE_BARRAS.CODIGO_BARRAS " _
                & "FROM TBL_ARTICULOS RIGHT JOIN TBL_CODIGOS_DE_BARRAS ON TBL_ARTICULOS.ID_ARTICULOS= TBL_CODIGOS_DE_BARRAS.ID_ARTICULOS " _
                & "WHERE (((TBL_ARTICULOS.DESCRIPCION & TBL_ARTICULOS.PRECIO_COSTO_BULTO & TBL_CODIGOS_DE_BARRAS.CODIGO_BARRAS ) Like '*" & gstrTexto & "*')) " _
                & "ORDER BY TBL_ARTICULOS.DESCRIPCION"


El error es en el la parte del FROM creo yo...

Se entiende ? No esta mal elijo cualquiera y me abre un formulario del articulo en cuestion, pero cuando llegue a tener con el tiempo 20 o mas codigos de barras por articulos va a ser complicado...

Que consejo me pueden dar...???
                
Les prometo que es la ultima pregunta (cruzando los dedos)
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 12077
Enlace directo a este mensaje Enviado: 22/Enero/2016 a las 12:50
"como se sabe un articulo puede tener muchos codigos de barras."

Pues yo no lo veo tan claro. Si tiene distinto código es porque es un fabricante distinto y/o un producto distinto.

Dado que parece que no parece que el código de barras sea relevante para el informe, elimina la tabla de la consulta (se eliminará el campo CODIGO_BARRAS) y, si fuera necesario, haz que la consulta sea de agrupación.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
cordara Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 11/Octubre/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 351
Enlace directo a este mensaje Enviado: 22/Enero/2016 a las 17:16
Hola. Si un articulo o producto puede tener varios codigos de barras pero por distintos motivos. Por ejemplo :Tengo una bebida con un codigo de barras, luego cambia la presentacion, es la misma bebida pero en vez de tener 475 cc pasa a tener tener 450 cc ahi cambia el codigo. Tambien segun sus presentaciones es la misma bebida pero caja x 20 o paquete de 6 unidades, etc. Aparte los codigos  cambian mas a menudo de lo que parece, por ejemplo por campañas publicitarias, los minions por nombrar una. a una bebida le ponen el dibujito de un minion y cambia el codigo de barras.Y no es conveniente tener un articulo por cada codigo, ya que es el mismo, sino un articulo con distintos codigos, segun su presentacion, cantidad, etc. Años en el negocio me dieron esa experiencia.

Obviamente la bebida de litro es un articulo, la de 450 es otro y asi, cada uno con sus variaciones.

El codigo, es relevante para la busqueda del articulo, digamos que casi lo principal, dado que busco con un lector y pocas veces de forma manual y en el subformulario me arroja el resultado de un articulo determinado (porque lo encuentra) pero lo repite tantas veces como codigos tenga. 

Yo antes tenia  toda la info de un articulo en una sola tabla includos los codigos de barras. Tenia varios campos para los codigos de barras en donde buscaba (codigobarra1, codigobarra2...etc) tenia hasta 5 codigos y cuando fueron aumentando decidi separar los codigos de barra en otra tabla y los relacione a travez de un ID_ARTICULO. 

Y ME APARECIO ESTE PROBLEMITA...

voy a probar con la consulta de agrupacion a ver que pasa...y les cuento...

Les prometo que es la ultima pregunta (cruzando los dedos)
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Binghamton
Estado: Sin conexión
Puntos: 3418
Enlace directo a este mensaje Enviado: 22/Enero/2016 a las 17:30
Y algo asi:

strSql = "SELECT DISTINCT (TBL_ARTICULOS.ID_ARTICULOS)TBL_ARTICULOS.DESCRIPCION, TBL_ARTICULOS.PRECIO_COSTO, TBL_ARTICULOS.PRECIO_COSTO_BULTO, (Etc.)

Un sludo.

Luis
Estos son mis principios. Si no le gustan... tengo otros
Arriba
MexMan70 Ver desplegable
Colaborador
Colaborador


Unido: 17/Julio/2007
Localización: DarkSide
Estado: Sin conexión
Puntos: 9233
Enlace directo a este mensaje Enviado: 22/Enero/2016 a las 18:05
Hola a todos !

Cordara: Entonces aplica lo que dice Xavi: Son distintos productos.No es lo mismo una bebida gaseosa de 475 ml a una de 450 ml. De hecho, no creo sinceramente que sea el mismo código de barras. Lo mismo pasa si la misma bebida la tienes es una presentación por caja. Cada articulo debe de tener su código de barras a manos que el producto venga en la misma presentación y del mismo fabricante.

Primero haría una revisión exhaustiva y minuciosa de los artículos para finalmente asignarle el código de barras correspondiente. En caso de tener por ejemplo dos bebidas similares las identificaría en su misma descripción, ejemplo:

Código    Producto
751...011 Bebida gaseosa Kako 1 Lt.
751...023 Bebida gaseosa Kako 450 ml
751...035 Bebida gaseosa Kako 475 ml
752...011 Bebida gaseosa Sipep 1 Lt.
752...023 Bebida gaseosa Sipep 450 ml
etc.
OneDrive: http://sdrv.ms/Vk6eJd
Arriba
cordara Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 11/Octubre/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 351
Enlace directo a este mensaje Enviado: 23/Enero/2016 a las 01:53
Si en teoria y si fuera todo perfecto asi seria, pero cuando se tienen miles de articulos, como en una libreria-papeleria (que es donde aprendi por experiencia) que conviene hacer como familias de productos.

 por ejemplo la coca cola  (para explicarles mejor )que tiene estos tamaños:

3 lts
2.5 lts
2.25 lts
1.5 lts
1/2 lt
475 cc
350 cc
250 cc
y algunas medidas mas. Estos son articulos por si mismos.

 ahora en cada medida (tomaremos las latas de coca de 475 cc) estan:

la unidad de lata coca 475 cc......un codigo
6 latas de coca de 475 cc............otro codigo
24 latas......................................otro codigo

aca tenemos tres codigos de un mismo articulo, en diferentes presentaciones, pero al final el producto es solo uno, y sin contar por ejemplo cuando la lata trae impreso un dibujito de alguna pelicula o promocion , entonces la lata, que sigue siendo el mismo producto, puede cambiar de codigo de barra...

Estp multiplicado por la enorme cantidad de productos seria inmensa la cantidad de articulos que habria que tener...
Para la busqueda es mejor encontrar el producto y que por el codigo (en otros procedimiento) te diga que cantidad es y con que carcteristicas.

se que mirando desde afuera se piensa pero si hago de cada codigo un articulo no seria lo mismo ? si podria ser lo mismo, pero cuando haga una auditoria de la tabla y de los productos voy a tener una cantidad inmensa de articulos, duplicados, sin actualizar, viejos...y muchas cosas que se podrian evitar.

Un ejemplo de las familias es el sistema de gestion TANGO. ese sistema tenia en un comienzo  un articulo con cada codigo, pero tuvo que cambiar con el tiempo. dado que hay mucha variacion en los comercios. Un negocio de informatica tiene un codigo para cada articulo (se podria discutir), pero una placa vieja cambiaria todo y ahi si es distinta, pero una lata de coca de hace dos años y una lata de coca con un jedi dibujado, sigue siendo una lata de coca...
Las dos formas funcionan  pero a veces algunas cosas se pueden facilitar (como por ejemplo cambiar el precio a una familia de productos y que por un procedimiento te multiplique por la cantidad de acuerdo a cada codigo)

Perdon por el desarrollo pero espero que ayude en algo...no me reten.

voy a empezar a probar y les cuento...
Les prometo que es la ultima pregunta (cruzando los dedos)
Arriba
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5015
Enlace directo a este mensaje Enviado: 23/Enero/2016 a las 03:12
Yo estoy igual de perdido que tu, pero lo que dice Luis ¿no lo corrige?, para eso sirve valores únicos y registros únicos que dice Luis, y si quitas de la formula TBL_CODIGOS_DE_BARRAS

Ya comentas, saludos.

Editado por emiliove - 25/Enero/2016 a las 06:09
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 23/Enero/2016 a las 10:11
Independiente de que se comenzase con una papelería o con el diseño de un satélite, el principio básico de una aplicación es que 'cada elemento es único en si mismo' y por lo tanto ha de tener su propia entidad (a lo largo de toda la vida de la aplicación).

Que después se desee agrupar por 'familias' es indiferente y tan sencillo como disponer de DOS códigos, uno el original, otro el 'interno'.

Una sencilla rutina devuelve de forma instantánea el 'código interno' en base al 'código externo' (el código de barras del proveedor), dato este que a partir de obtener el 'código interno' carece de cualquier otra funcionalidad (si lo que se desea es la 'agrupación familiar').

A los libros no les ocurre, pero al resto de los elementos (y sobre todo a los que tiene fechas de caducidad) hay que hacerles un seguimiento pormenorizado para que el almacén se corresponda con la realidad (y no considerar como buenas latas que ya están abombadas y fuera de fecha)
Arriba
cordara Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 11/Octubre/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 351
Enlace directo a este mensaje Enviado: 24/Enero/2016 a las 15:03
concuerdo, pero veo que no se entendio lo que quise decir.Ademas si necesito llevar el control de un producto obviamente lo voy a individualizar no ?. Ahora en mi caso (que seguramente va en contramano de todo el resto)no necesito llevar un control taaaan pormenorizado, necesito saber sobre la lata de 475 cc sin importarme que dibujito tenga...digamos entonces que como usted me dijo alguna vez  hay tantas opciones como programadores existen...

PERO volviendo a mi problemita.  yo cuando agrego un codigo en la TBL_CODIGOS_DE_BARRAS agrego tambien el id del articulo si ?, entonces en la visualizacion del subformulario al buscar me salen varios articulos iguales como la cantidad de codigos de barras que tenga..pero es el mismo ARTICULO con el mismo ID_ARTICULO ...Y yo quiero que aparezca una sola vez...
Me tendria que aparecer una sola vez al encontar el codigo de barras...pero no....me pone todo el listado.
SIGO PROBANDO....

Les prometo que es la ultima pregunta (cruzando los dedos)
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 24/Enero/2016 a las 17:06
Guárdalos en donde consideres que es mas útil o si tu programación va en la línea de jugar con los recursos, donde te parezca 'mas bonito'.

Pero en alguna parte ha de haber una correlación entre el código del proveedor (que cambiara en cada campaña) y el código que se utilizara para manejarlo internamente como 'el mismo producto' y que se supone que será una constante.

Una simple búsqueda 'en donde los escondas' hallara la relación entre ambos códigos y después ... según se efectúe una compra o una venta, un inventario 'serio' o un inventario agrupado se utiliza uno u otro código PERO JAMAS LOS DOS AL MISMO TIEMPO.

Es sencillo si las cosas se hacen BIEN y hacerlas bien son cinco minutos para pensar, dos para aplicar y el resto del tiempo ... a disfrutar.
Arriba
cordara Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 11/Octubre/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 351
Enlace directo a este mensaje Enviado: 25/Enero/2016 a las 12:39
Las cosas se hacen lo mejor que se puede. Varias veces ya le dije que no soy programador solo trato de solucionar situaciones para facilitarme un poco la vida con access y no tengo ni intenciones ni ganas de aguantar su sarcasmo. Entre en este foro y en paginas como la del buho y busque aplicaciones o ejemplos como la de "busqueda selectiva" que es la que estoy utilizando y por la cual estoy preguntando. 
Este es el mejor foro de access sin dudas y es gracias a los genos (entre los cuales lo incluyo) que interactuan con los que estan aprendiendo. La ayuda que usted da es invalorable para nosotros, pero no hay necesidad de que tenga soberbia y menosprecio. Yo jamas podria hacer una busqueda como esa, porque no tengo el conocimiento ni la practica, ni el tempo. Ahora me parece que es de mas ayuda un intento , un ejemplo aunque no funcione. Obviamente que se quiere hacer las cosas bien y la pregunta es solo una variacion de algo que esta bien, aunque se cambio provoque un inconveniente que no es lo mismo que un error...

Ahora a ver si entramos en tema. Tenia una tabla de articulos a la cual dividi en dos. TBL_ARTICULOS y TBL_CODIGOS_DE BARRAS . Esta ultima tiene tres campos ID_CODIGOS  / ID_ARTICULOS / CODIGO_BARRAS.

La busqueda se hace en varios campos de las dos tablas para encontar cierto dato correspondiente al articulo que se busca (precio, descripcion, costo, proveedor,codigo de barras) y LO ENCUENTRA...!!! PORQUE ESTA BIEN HECHO POR USTEDES. pero aparecen duplicados y es por los codigos de barras (O SEA si un articulo tiene cuatro codigos de barras aparece cuatro veces en la visualizacion (ya probe agregando y quitando codigos ) 
En la tabla original solo habia un ID_ARTICULO, pero ahora en la nueva tabla con los codigos de barras hay un ID_ARTICULO por cada codigo...que son los que aparecen...

Tengo varias ideas y sugerencias que hoy voy a probarlas...les cuento luego como salen....
Les prometo que es la ultima pregunta (cruzando los dedos)
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable