locked
Integrar datos desde una planilla excel 2007 a una tabla sql 2005 validando cada registro. RRS feed

  • Pregunta

  • Estimados,

    Creo que esta es la mejor solución a muchas preguntas y por lo mismo reitero mis agradecimientos y consultas.

    Necesito crear una planilla maestra excel con la estructura (filas y columnas) y validaciones de mi tabla sql 2005. El caso es que una vez ingresado los datos a esta planilla, debo vaciarlos a la tabla, obvio, previa validación para codigos existentes.

    Creo que tal vez vía macro o procedimiento almacenado, la verdad es que es la primera vez que me solicitan algo asi y por eso quiero su ayuda o comentarios al respecto.

    Gracias.

    viernes, 20 de agosto de 2010 17:03

Respuestas

Todas las respuestas

  • Podrías hacerlo con SQL Server Integration Services (SSIS). Con un paquete SSIS, podrías crear un flujo de datos que tenga como origen el archivo Excel y como destino una tabla de Sql Server. Entre medias, puedes meter las comprobaciones que quieras, como por ejemplo una transformación de "lookup" para validar códigos contra otra tabla.

    Seguro que también se puede hacer con macros de Excel, y seguro que si preguntas en un foro de Excel te recomiendan que así lo hagas. Pero como este es el foro de SQL Server, te aconsejamos la correspondiente herramienta de SQL Server: Integration Services.

     

    viernes, 20 de agosto de 2010 18:53
  • Me parece perfecto, pero como lo debo aplicar?. Tengo mi planilla con los datos a granel y luego que?, ejecuto el procedimiento desde el sql2005 o lo enlazo con algun procedimiento?... Me podria proporcionar mas información?.

    Gracias.

    viernes, 20 de agosto de 2010 19:39
  • Hola.

    Mira, aquí tienes un montón de mecanismos para realizarlo:

    http://support.microsoft.com/kb/321686/es

    Si no lo consigues, nos dices.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    viernes, 20 de agosto de 2010 20:43
    Moderador
  • Hola,

    Te invito a revisar alguna información básica de SSIS aquí: http://alan-koo.blogspot.com/2010/05/fundamentos-de-sql-server-integration.html

    Tal como recomienda Alberto, creo que SSIS es la mejor opción para este tipo de tareas (mover datos desde una fuente a un destino y aplicarle reglas de negocio). Lo que tienes que hacer básicamente es:

    1. Crear un nuevo paquete
    2. Agregar un nuevo Data Flow
    Dentro del Data Flow...
    3. Agregar un Excel Data Source task y configurarlo
    4. Agregar las tareas necesarias para implementar tu lógica de validación (Derive Column, Script Component, etc.)
    5. Agregar un OLEDB Destination task y configurarlo para la inserción.

    Adicionalmente creo que algunos otros post de SSIS te pueden interesar: http://alan-koo.blogspot.com/search/label/SSIS


    Alan Koo Labrin | "Microsoft Business Intelligence y más..." http://alan-koo.blogspot.com
    viernes, 20 de agosto de 2010 20:49
    Moderador
  • Estimados,

    Esta es la situacion actual:

    El usuario necesita llenar una hoja maestra excel (con validaciones y dimensiones fijas tal y como es la tabla sql2005). Una vez ingresados todos los datos, pinchar un boton, enlace o link dentro de la hoja que gatille el proceso de integracion a la tabla sql, y que le entregue un informe o evento indicando o marcando las filas de datos no integrados.

    Diganme: desde excel puedo ejecutar algo asi?, de hecho, si yo actualizo datos enlazados en una tabla dinamica desde una vista sql 2005 este actualiza los datos, puedo lograr algo asi?.

    Muchas gracias por la atencion prestada.

    jueves, 26 de agosto de 2010 1:45
  • Sí, seguro que se puede lograr algo así programando con VB dentro de Excel. Pero los "expertos" que saben cómo hacerlo no están en este foro de SQL Server, sino en el foro de programación sobre Office:

    http://social.msdn.microsoft.com/Forums/es-ES/vstoes/threads

    Te recomiendo repetir la pregunta en ese foro.

     

    jueves, 26 de agosto de 2010 7:28
  • El usuario inició un hilo en el foro de programación de Office de msdn. Doy este hilo por cerrado.

    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    jueves, 26 de agosto de 2010 14:45
    Moderador