Éste es mi primer post.
Les pido ayuda en un problema que encontré al desarrollar una aplicación en .NET con acceso a una BD Access.
Se trata de dos tablas relacionadas 1..n:
Tabla Artículos(parte n de la Relación)
artIDTabla MarcasComerciales (parte 1 de la Relación)
artDesc
artPrecioCompra
artPrecioVenta
artCódProveedor
artCódMarca
marIDEl problema es el siguiente:
marDesc
El usuario da de alta las marcas comerciales y luego da de alta los artículos.
Luego, cuando mira el listado de artículos en el dataGrid correspondiente, percibe que una marca comercial está duplicada, por ej.:
"Viya Visensio ", cuyo ID = 9
Se dá cuenta que se ingresó la misma marca dos veces, entonces decide eliminar la errónea, en este caso "Viya Visensio".
Luego el usuario consulta nuevamente la lista de artículos, y vaya sorpresa, se encuentra con el error que "No existe la fila en la tabla relacionada"
Mi solución fue reemplazar el INNER JOIN de la consulta Access por un LEFT JOIN, pero resulta tedioso modificar los artículos uno por uno para actualizar la marca comercial luego de haber ingresado una veintena de artículos con la marca errónea, además se genera confusión si existen más marcas duplicadas que se borraron y no se sabe que marca corresponde a cada artículo.
Lo único que se me ocurrió, para que el usuario no tenga que realizar ninguna modificación, fue hacer una consulta access de actualización, para reemplazar el ID 9 por el ID 8:
Código:
Para eso la aplicación le pide al usuario que seleccione la marca comercial.UPDATE [Artículos] SET [Artículos].[artCódMarca] = 8 WHERE [Artículos].[artCódMarca] = 9
¿está bien la solución que implementé?
¿cuál es la forma correcta de programar esto?
¿Puede prevenirse estos tipos de inconvenientes?
Espero haberme explicado correctamente.
Saludos cordiales.