Access - Actualizar access sin cambiar relaciones

 
Vista:
sin imagen de perfil

Actualizar access sin cambiar relaciones

Publicado por Franco (3 intervenciones) el 03/02/2016 14:11:00
Hola!

Necesito su ayuda para realizar una vinculacion especial entre Excel y Access.

Por un lado, trabajo con un sistema en el cual se cargan precios y datos de los diferentes productos, y la unica forma de exportar la informacion de dicho sistema es mediante Excel.

Por otro lado, para poder ofrecer mis productos en una plataforma especial de ecommerce el programador de esa pagina ha creado una base de datos de Access con todos mis productos y la informacion necesaria, con muchas tablas incluidas en ese archivo y relaciones ya armadas. El archivo Access se carga directamente en la plataforma para actualizar los datos en la web.

El tema es que si yo pudiera ir actualizando ese archivo Access sin usar al programador, podria cargar directamente cambios online desde mi lado. Pero mis datos estan en Excel, y me gustaria actualizar el archivo Acccess que ya esta armado sin modificar ni nombres ni relaciones entre tablas (porque de esa forma se sube a la plataforma).

En caso de que importe el Excel, tengo que crear las relaciones de nuevo y no es logico hacer esto cada vez que tenga que actualizarlo (son mas de 100 relaciones). Por otro lado, probe con vincular una tabla de Access a Excel pero en este caso no me deja modificar ni los tipos ni claves principals desde Access.

Quiza con algun formulario o consulta pudiera hacerlo pero no se bien como.

Me serviria muchisimo su ayuda!!

Muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Actualizar access sin cambiar relaciones

Publicado por Enrique Heliodoro (1664 intervenciones) el 04/02/2016 00:11:12
Crear tablas implicaría' partir de cero y si existen relaciones .....

Lo normal es VACIAR las tablas y dado que estas tiene relaciones, se deberá proceder de forma inversa a como se introducen los datos.

Esto es, una rutina (Delete * From Tabla) para cada tabls y comenzando SIEMPRE por la parte 'N' en la clásica relación (1==>N) (si a una la llamamos padre, pues primero se vacía la tabla hija).

Para introducir los nuevos datos, el proceso es el inverso, primero 'los padres' luego los hijos ...

Si entiendes la idea, el resto es muy sencillo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar access sin cambiar relaciones

Publicado por Franco (3 intervenciones) el 04/02/2016 08:13:01
Gracias por la respuesta!

Si entendi bien, entonces primero debo borrar los datos de todas las tablas (yendo siempre en orden de las hijas a las padres) hasta que finalmente queden todas vacías, y luego de esto empezar a cargar los datos de Nuevo en las tablas copiando y pegando desde Excel en la tabla que corresponda (yendo siempre en orden de las padres a las hijas).

Es correcto así?

No hay alguna forma más automatic para hacerlo?

Por otro lado, en caso de que cambie solamente un dato de una de las tablas madre (que no se cual es porque habria que encontrarlo dentro de los mas de 2.000 datos pero se que hubo un cambio). Tengo que hacer todo el procedimiento?

Muchas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Actualizar access sin cambiar relaciones

Publicado por Enrique Heliodoro (1664 intervenciones) el 04/02/2016 09:36:06
El proceso es ese y si, se puede automatizar, basta con crear las consultas de borrado e inserción adecuadas (el generador de consultas de Access es de gran ayuda) y llamarlas mediante una macro.

Si se tiene mas destreza con Access (se suele adquirir dedicándole 'sudor y lagrimas' además de tiempo) se puede crear las SQLs y funciones, pero eso es como balancearse en un columpio a un metro del suelo (para no arrastrar los pies) y hacer un salto mortal en un trapecio (requiere pasión, dedicación y esfuerzo).

Si solo cambia un dato y se desconoce donde esta ...... sospecho que esa aplicación esta 'un poco descontrolada', la pregunta es:
.- ¿se sabe a ciencia cierta si hubo un cambio?
.- ¿hay forma de saberlo?

Si se responde a ambas preguntas con un 'SI', existe una cosa estúpida llamada 'consulta de actualización' que puede ser una solución efectiva (pero para ese idílico final se precisa tener un cierto control sobre los datos, no vale lo de no saber 'ni donde ni cuando')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar access sin cambiar relaciones

Publicado por Franco (3 intervenciones) el 04/02/2016 10:09:54
Estoy intentando probar el primer proceso (borrado de tablas de hijas a madres y luego llenado de madres a hijas), pero cuando quiero borrar los datos de la primera de ellas a traves de una consulta DELETE, me aparece un error de "key violations", y me borra todos los valores salvo los que estan vinculados a otras tablas.

Quiza estoy entendiendo mal cuales son las madres y las hijas. Como puedo saber esto mirando el grafico de relaciones?

Probe hacer una consulta de ACTUALIZACION sobre las mismas tablas y me sale el mismo error de key violations.

Cual podria ser el problema?

gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Actualizar access sin cambiar relaciones

Publicado por Enrique Heliodoro (1664 intervenciones) el 04/02/2016 11:03:12
Una tabla 'hija' será aquella que no tenga relaciones familiares dependientes, las relaciones pueden ser además de padres a hijos, de abuelos e incluso de tíos y sobrinos (he visto 'cosas muy raras').

Al 'intentar' borrar un conjunto de datos, si este tiene dependencias, Access lo indicara, basta con 'romper' esa relación borrando los datos que dependan de ella (al no existir 'hijos vivos', se puede 'matar a los padres') suena un poco mal, pero creo que se entiende ...

En definitiva, una tabla puede ser padre e incluso abuelo, apliquemos la doctrina de Herodes y comencemos por los recién nacidos (después ya vendrán los siguientes).

En una consulta de actualización 'que tenga campos índices generados con autonumericos' se podrán cambiar todos los datos excepto el autonumerico (por eso se las conoce como 'consultas de actualización').

Sinceramente, has pagado (o al menos eso se supone) por un entorno xxxx, deberías acudir al programador de ese entorno para que el generase esa actualización (otra cosa es que se este dispuesto a valorar el esfuerzo, conocimiento y trabajo del que sabe), la alternativa es clara, si no quiero pagar un taxi: comprare un coche, sacare el carnet y conduciré cuando sepa hacerlo (solo hay que evaluar si esa alternativa en tiempo y economía es asumible, después llegara la segunda fase: aprender medicina para 'pasar de médicos')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar