** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Datos No coincidentes
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoDatos No coincidentes

 Responder Responder Página  12>
Autor
Mensaje
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Tema: Datos No coincidentes
    Enviado: 05/Diciembre/2018 a las 13:27
Buenos días,
La consulta de datos no coincidentes es muy útil cuando comparamos mismos datos de una tabla a otra.
Mi problema es el siguiente:
En la tabla A tengo Números de repuestos que según fábrica deben considerarse para una reparación de un producto X.
Así, por ejemplo, esta tabla puede contener:
Nro de Parte Descripción
255-650 Golilla 1
314825 Perno 1
11413-13 Sello 2
253-220 Empaquetadura 1

Mi problema es que la la tabla B con la cual debo comparar tiene creados un mismo artículo en forma distinta.
Ejemplo:
Nro de Parte Descripción Stock
255650 Golilla 1 0
1FER255-650 Golilla 1 2
1FER255650… Golilla 1 1

Lamentablemente la Tabla B del sistema de la empresa y no la puedo modificar, sólo me traigo una "fotografía" de los que está y trabajo con esos datos en Access.

Entonces, cómo lograr al hacer el cruce entre las tablas y que obtenga sólo el código que me sirve o que tenga stock ??
Puedo depurar la Tabla B y obtener como resultado un sólo código, es decir, 255-650 con 3 unidades de stock ??
Esa sería una solución u otra que alguien me pueda sugerir.
Saludos y gracias por su ayuda.


CacoMarco/Chile
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 10489
Enlace directo a este mensaje Enviado: 05/Diciembre/2018 a las 15:07
Tienes otra opción, crearte una tercera tabla con las equivalencias entre las dos primeras:

255650        - 255-650
IFER255-650 - 255-650
IFER255650  - 255-650

Otra cosa aparte es que a los responsables de semejante desaguisado de códigos hay que ponerlos a remar en galeras por un par de siglos. LOL



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

Access Aplicaciones
Tecsys.es
Arriba
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Enviado: 05/Diciembre/2018 a las 16:20
Muchas Gracias Jesús por responder.
La solución que me entregas creo es muy buena, y disculpando mi patudes puedes darme una idea de cómo hacer la tabla de equivalencias ?.
Y con tu idea haré lo posible por ponerla en la práctica.
Gracias de nuevo. 
CacoMarco/Chile
Arriba
lalo1956 Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 08/Marzo/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 945
Enlace directo a este mensaje Enviado: 05/Diciembre/2018 a las 17:01
Apoyándote en la descripción??
Quien no vive para servir, no sirve para vivir!** AYUDA A MANTENER EL FORO **
Arriba
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Enviado: 05/Diciembre/2018 a las 17:13
Si es un tema muy complicado de hacer, obviamente describir la solución es lo ideal y más fácil para quien consulta.
Si la solución es más bien sencilla, en mi caso basta con orientarme y lo realizo.
Gracias,
CacoMarco/Chile
Arriba
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 13:39
Estimados, tengo casi lista la instrucción Sql, pero me falta una última parte que por favor les pido ayuda.
Con lo sgte:

SELECT Replace([NroParte],"-","") AS Codigo, Mid([Codigo],5,15) AS CodigoNuevo
FROM TbProductos;

Logro que todos los códigos queden así.
255650...
255650....
255650

Pero necesito eliminar los puntos del lados derecho y que pueden ser uno, dos, tres, hasta 6.
El resultado final debe ser 255650 para todos.

Gracias,
CacoMarco/Chile
Arriba
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 16:11
Esto me está volviendo loco, 
En primer lugar uní el código anterior y queda así:
SELECT Mid(Replace([NroParte],"-",""),5,15) AS Codigo
FROM TbProductos;

Luego utilizo la función EnCad para detectar la posición del caracter punto (.)
InStr([Codigo];".") 
Pero no resulta efecto.
por ejemplo en la cadena 255650.... el resultado me entrega 8 ??
Y en la cadena 255350... el resultado me entrega 0 ??

No se qué hacer...

CacoMarco/Chile
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 4922
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 16:39
Hola!

Y utilizas la función "Replace" de nuevo.
Un Saludo.
Arriba
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 18:00
Tampoco funciona :(
Me parece porque el punto es considerado un carácter especial ?
Pero esto se me escapó de Las manos
Seguiré averiguando cómo podría solucionarlo.
Nótese que el ejemplo son códigos de 6 dígitos pero no siempre es igual.
Lo que que siempre es igual los puntos al final del código y que reitero puede ser uno, dos, etc
CacoMarco/Chile
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 4922
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 18:14
Hola!

Entonces prueba con la función "Val"

=Val([Codigo])
Un Saludo.
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 759
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 18:36
Si sólo tienes guiones en medio de los 2 códigos, puedes quitarlos en ambas tablas y luego buscar en la tabla B lo que hay en la A. Algo así:

EnCad(Reemplazar([Campo en Tabla B];"-";"");Reemplazar([Campo en Tabla A];"-";""))

Otra opción es la indicada por Lalo: si en las 2 tablas y en todos los registros la descripción coincide plenamente, puedes usar este campo en vez del código.
Arriba
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 19:27
Amigos, muuuchas gracias por la ayuda.
Finalmente al aplicar la función VAL que me recomendó Mounir funcionó perfecto.
finalmente quedó así

SELECT Val(Mid(Replace([NroParte],"-",""),5,15)) AS Codigo
FROM TbProductos;

Gracias nuevamente,
Favor cerrar el Hilo
Thumbs Up
CacoMarco/Chile
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 4922
Enlace directo a este mensaje Enviado: 06/Diciembre/2018 a las 21:08
Hola!

Te he preparado un ejemplo usando RecordSet para extraer Números de una cadena de texto. Es mas o menos como lo que acabas de hacer.
http://www.filebig.net/files/GJKH43r5Z5
Un Saludo.
Arriba
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Enviado: 07/Diciembre/2018 a las 02:57
Muchas Gracias, Clap
CacoMarco/Chile
Arriba
CacoMarco Ver desplegable
Habitual
Habitual


Unido: 12/Octubre/2011
Localización: Chile
Estado: Sin conexión
Puntos: 167
Enlace directo a este mensaje Enviado: 07/Diciembre/2018 a las 03:16
Bajé el ejemplo y es justamente lo que necesito. Lo aplicaré a mi BD.
Muy agradecido
Thumbs Up
CacoMarco/Chile
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable