Access - vincular una tabla de excel, dividir en cuatro tablas y relacionarlas.

   
Vista:

vincular una tabla de excel, dividir en cuatro tablas y relacionarlas.

Publicado por Juan juanmenchonruiz@gmail.com (2 intervenciones) el 01/02/2016 01:28:55
buenas noches.
Todas las semanas recibo una hoja excel , con datos modificados y filas nuevas.
Esta tabla la divido en cuatro tablas mediante consultas de creación de tablas:empresas, clientes, comerciales y productos.
Establezco las relaciones entre ellas y otras tablas nuevas que guardan los campos calculados que me interesan, y creo los formularios, todo funciona perfectamente.
Mi problema viene cuando pretendo actualizar las tablas con la nueva hoja excel, no puedo volver a crearlas porque tienen relaciones, no me interesa indexarlas porque no modifica los datos anteriores.
¿como puedo mantener vinculadas las cuatro tablas con la hoja excel permanentemente?
¿o tendría que replantearme toda la base de datos?

agradecería alguna ayuda.
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

vincular una tabla de excel, dividir en cuatro tablas y relacionarlas.

Publicado por Enrique Heliodoro (1663 intervenciones) el 01/02/2016 10:42:38
No se que problema afecta a la indexación (la indexación no es mas que un orden sea este simple o complejo).

Sabiendo si se desean mantener los datos anteriores o si lo que se desea es volver a crear 'todo' desde un utópico cero, se podrían plantear alternativas.

Normalmente se acostumbra a añadir los datos nuevos y una vez que ambos orígenes son homogéneos, se acostumbra a actualizar los datos de los registros 'antiguos'.
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

vincular una tabla de excel, dividir en cuatro tablas y relacionarlas.

Publicado por Juan juanmenchonruiz@gmail.com (2 intervenciones) el 01/02/2016 23:34:21
UF¡¡ ha sido mas rápido de lo que me esperaba. Muchísimas gracias Enrique.
Yo siempre he trabajado con bases de datos que me he creado y he introducido toda la información, esto de las importaciones y vinculaciones me viene de nuevo, ose que no lo he hecho antes.

Entiendo que lo primero que tendré que hacer es desde la tabla vinculada:
1- realizar las cuatro consultas de selección para ver que registros tengo nuevos en cada tabla, esto es fácil comparando con el ultimo id de la tabla vinculada anterior.
2- realizar cuatro consultas de anexar para introducir los registros nuevos en su tabla correspondiente.
3- realizar otra vez cuatro consultas de selección sin comparar nada, para volver a tener la información completa y actualizada de las cuatro tablas que me interesan.
y finalmente convertir estas consultas en consultas de actualización para que me machaque las tablas anteriores y disponer de toda la información actualizada.

lógicamente grabo todas las consultas.

Me parece bien, un poco laborioso, pero no llego a mas, estoy un poco oxidado. (10 años sin programar, empece con Pascal)
Lo probare, y espero no me molesten las relaciones de las tablas,(es que me han enganchado en una asociación), y cuando disponga de mas tiempo probare con sql, para que el proceso se realice de una vez, tendré que repasarme el SQL.

Te reitero las gracias y si ves que meteré la pata, dimelo.

un fuerte abrazo.
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

vincular una tabla de excel, dividir en cuatro tablas y relacionarlas.

Publicado por Enrique Heliodoro (1663 intervenciones) el 02/02/2016 12:01:29
Yo lo simplificaría ...

Por una parte tendría las tablas 'definitivas' con sus datos y relaciones, solo podría precisar un INDICE que impidiese la repetición de registros (para no generar duplicados, se pueden utilizar varios campos, se comportaría como 'una llave múltiple' pero sin las restricciones que esta impone).

Después tendría unas consultas (basadas en el 'Excel') que tomarían los datos que se tendrían que añadir a las tablas definitivas (el generador grafico de consultas es útil para eso) , esas consultas (en principio de selección) las convertiría en 'consultas de datos anexados'

Por otra parte generaría otras tantas consultas de actualización (en base al Excel y contra la tablas definitivas).

Como funcionaria el proceso (con una sola tabla)

La consulta de inserción, añadiría SOLO los registros nuevos (a los repetidos los rechazaría) y no pasa nada, puede darse el caso de que rechace a todos (no hay nuevos a insertar), pero logramos el objetivo de que todos los datos del Excel 'estén representados en las tablas definitivas (o la actualización que efectuamos a posteriori fracasaría).

Después se ejecutaría la consulta de actualización, no daría error porque iguales o diferentes, todos los registros 'del Excel' estarían presentes en las tablas definitivas) y los actualizaría 'a lo bruto' que es menos pesado que 'seleccionar a los diferentes', los que no varian refrescan sus valores, lo que son diferentes se igualarían y aquí finaliza el proceso.

Esto quizás se debería hacer desde VBA, copiando (y si es el caso retocando) las SQLs de las consultas (que están en el generador grafico) para ejecutarlas con el método EXECUTE en lugar de DoCmd, con el fin de que finalice los procesos antes de iniciar los nuevos (no sea que dado el funcionamiento interno de Access, intentase actualizar en pleno proceso de insertar).

Espero que este planteamiento aclare un poco el proceso, proceso que una vez creado se asociaría a un botón que lo ejecutaría de forma indefinida y a voluntad.
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