Foros del Web » Programando para Internet » ASP Clásico »

como pasar planillas excel a una base de datos relacional

Estas en el tema de como pasar planillas excel a una base de datos relacional en el foro de ASP Clásico en Foros del Web. hola tengo un tremendo problema y quisiera ke me ayudaran por favor, resulta que tengo dos planillas excel que debo insertar en dos tablas de ...
  #1 (permalink)  
Antiguo 28/05/2008, 10:55
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
como pasar planillas excel a una base de datos relacional

hola tengo un tremendo problema y quisiera ke me ayudaran por favor, resulta que tengo dos planillas excel que debo insertar en dos tablas de una base de datos sql server, las planillas son viajes y llamadas, donde en viajes se guarda la informacion de que viajes hizo el usario y en la planilla llamadas se guardan los datos sobre las llamadas telefonicas que hizo el usuario durante los viajes que hizo, estas planillas no estan relacionadas, entonces cuando io creo la base de datos hago una relacion de uno a muchos entre las dos tablas (en un viaje pueden haber muchas llamadas),y mi problema es que al ingresar los datos de las llamadas no tengo como conectarlo con su respectivo viaje por ke no puedo capturar la foreign key del enlace entre las tablas ; y hacer una interfaz humano-computador para ingresar una a una las llamadas que el usuario hizo en sus viajes no es factible por ke imaginense si tengo 1000 usuarios y cada uno hizo 10 llamadas tardaria un monton en cargar la informacion.

como harian ud para solucionar este problema ???, de antemano muchas gracias
  #2 (permalink)  
Antiguo 28/05/2008, 11:05
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: como pasar planillas excel a una base de datos relacional

pues si es relacionada primero sube la tabla padre

crea la idea de un cargador, en tu hoja de excel deja solo los datos de usuario, y viajes
en el otro excel deja las llamadas amarradas a usuario y viaje y luego cargas los hijos (los viaejs pues)

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 28/05/2008, 11:25
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: como pasar planillas excel a una base de datos relacional

en si... estas tratando de cambiar excel por la base de datos, pero que mantenga el historial por usuario???

se puede intentar crear las tablas en SQL, igual como lo tienes en excel, logicamente columnas(excel)-campo(tabla)

ahora, leer la tabla de excel, lo podrias consultar con esta pagina, lo que hace es..... crea la conexion a excel, lee un rango que ya habias determinado(vienen los pasos en la pagina), hace un Update en el mismo archivo y nuevamente lee los datos

si te das cuenta, podrias modificar la parte de UPDATE, y poner un INSERT INTO, para la base de datos en SQL, y podrias pasar tus datos sin problemas...

ahora respecto a la relacion entre tablas, solo debes considerar que en la tabla llamadas anexaras el ID_key de viajes como un campo mas

asi cuando realizes la consulta, buscarias con un inner join los datos

el codigo de la pagina, lo pondremos aki para que lo miren
Código HTML:
 <!-- Begin ASP Source Code -->
      <%@ LANGUAGE="VBSCRIPT" %>
      <%
        Set objConn = Server.CreateObject("ADODB.Connection")
        objConn.Open "ADOExcel"

        Set objRS = Server.CreateObject("ADODB.Recordset")
        objRS.ActiveConnection = objConn
        objRS.CursorType = 3                    'Static cursor.
        objRS.LockType = 2                      'Pessimistic Lock.
        objRS.Source = "Select * from myRange1"
        objRS.Open
   %>
   <br>
   <%
      Response.Write("Original Data")

      'Printing out original spreadsheet headings and values.
      'Imprimiendo la hoja original con encabezados y valores 

      'Note that the first recordset does not have a "value" property
      'just a "name" property.  This will spit out the column headings.
      'Notemos que el primer registro, no contiene la propiedad "valor"
      'solo la propiedad "nombre. esto traera los encabezados"


      Response.Write("<TABLE><TR>")
      For X = 0 To objRS.Fields.Count - 1
         Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
      Next
      Response.Write("</TR>")
      objRS.MoveFirst

      While Not objRS.EOF
         Response.Write("<TR>")
         For X = 0 To objRS.Fields.Count - 1
            Response.write("<TD>" & objRS.Fields.Item(X).Value)
         Next
         objRS.MoveNext
         Response.Write("</TR>")
      Wend
      Response.Write("</TABLE>")

      'The update is made here
      'La actualizacion la haremos en esta parte

      objRS.MoveFirst
      objRS.Fields(0).Value = "change"
      objRS.Fields(1).Value = "look"
      objRS.Fields(2).Value = "30"
      objRS.Update

      'Printing out spreadsheet headings and values after update.
      'Imprimiendo la hoja con encabezados y valores despues de la actualizacion

      Response.Write("<br>Data after the update")
      Response.Write("<TABLE><TR>")
      For X = 0 To objRS.Fields.Count - 1
         Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
      Next
      Response.Write("</TR>")
      objRS.MoveFirst

      While Not objRS.EOF
         Response.Write("<TR>")
         For X = 0 To objRS.Fields.Count - 1
            Response.write("<TD>" & objRS.Fields.Item(X).Value)
         Next
         objRS.MoveNext
         Response.Write("</TR>")
      Wend
      Response.Write("</TABLE>")

      'ADO Object clean up.
      'Limpiando Objetos

      objRS.Close
      Set objRS = Nothing

      objConn.Close
      Set objConn = Nothing
   %>
   <!-- End ASP Source Code --> 
Bueno, ahora en esta parte
Cita:
objRS.MoveFirst
objRS.Fields(0).Value = "change"
objRS.Fields(1).Value = "look"
objRS.Fields(2).Value = "30"
objRS.Update
en lugar de actualizar al excel, lo cambiamos por SQL
Código HTML:
valores=""
campos=""
For X = 0 To objRS.Fields.Count - 1
	if x=0 then
		Campos = objRS.Fields.Item(X).Name
		Valores = objRS.Fields.Item(X).Value
	else
		Campos = Campos & "," & objRS.Fields.Item(X).Name
		Valores = valores & "," & objRS.Fields.Item(X).Value
	end if
Next
SQL_insertar = "insert into tabla(" & campos & ") Values(" & Valores & ");"

conexion.execute(SQL_insertar)
if Err=0 then
	response.Write "insercion exitosa"
else
	response.Write "Error en la insercion <br />" & Err
end if
conexion debera estar definida para conectarse a la tabla en SQL
bueno es solo una idea

no se me habra sobrecalentado el pensamiento, funcionara????
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #4 (permalink)  
Antiguo 28/05/2008, 11:53
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: como pasar planillas excel a una base de datos relacional

Cita:
ahora respecto a la relacion entre tablas, solo debes considerar que en la tabla llamadas anexaras el ID_key de viajes como un campo mas
Shiryu_libra: la primera parte me kedo clarisima con tu comentario ,mi duda es que como anexo el id_key de viajes y tb como hago para que este id_key anexado sea el correspondiente a la llamada; esto sin hacer una interfaz humano-computador.
  #5 (permalink)  
Antiguo 28/05/2008, 13:25
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: como pasar planillas excel a una base de datos relacional

el ID_key(no se cual sea en tus campos), solo debes anexarlo como un extra en la insercion

por ejemplo

campos viajes
columna 1 = id_usuario <--- esta es la que nos interesa (ID_key)
columna 2 = ruta
columna 3 = escala
columna 4 = hora_partida
columna 5 = hora_llegada

campos llamada
columna 1 = id_llamada
columna 2 = id_usuario <--- esta seria la relacion entre viaje y llamada
columna 3 = telefono
columna 4 = duracion

en el despliegue de la informacion desde excel, hay que saber cual columna, o si estas tienen nombre, cual es "id_usuario"

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #6 (permalink)  
Antiguo 29/05/2008, 09:12
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: como pasar planillas excel a una base de datos relacional

es que es eso justamente lo que no se hacer, sacar el Id_key de la tabla viajes cuando estoy haciendo la migracion de la planilla excel llamadas a la tabla sql llamadas.

con que comando, funcion, rutina o algo puedo hacer eso, que cuando este migrando la planilla excel llamadas a la tabla llamadas se le asigne la id_usuario correcta desde la tabla viajes para que asi queden relacionadas.


ayudame por favor ya me tiene de cabeza este problema

Última edición por rezocrew; 29/05/2008 a las 09:20
  #7 (permalink)  
Antiguo 29/05/2008, 09:37
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: como pasar planillas excel a una base de datos relacional

podrias insertar una imagen de las tablas, para asi mirar las columnas de estas?, o si te es posible mencionarlas?

asi podremos crear algo, ok?
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #8 (permalink)  
Antiguo 29/05/2008, 09:55
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: como pasar planillas excel a una base de datos relacional

"pucha" parace que el problema es por no ser tan claro.

creo que deverias de aprender a plantear tu problema en lineas y no todo en un solo parrafo.


maestro Shiryu_Libra le hago una definición del problema

1 el ya creo su base de datos y las relaciono por un ID
2 ya subió la tabla de viajes (que bueno)
3 al tratar de subir las llamadas le exige meter un ID que es la llave que ha relacionado
3.1 esa llave es nueva, entonces no existe en su hoja de excel de las llamadas telefonicas
3.2 eso quiere decir que el tendría que asignar el ID nuevo de su tabla viajes y reemplazar la forma en que en excel había relacionado (de alguna manera)
4 he ahí la definición.

mi aporte

antes de hacer tus tablas de sql verifica bien que es lo que subirás

tabla: viajes (el usurio puede ser amarrado a otra table etc)
usuario, no_viaje, lugar
juan, 20, el salvador
jose, 45, madrid

tabla: llamadas
no_viaje, tel, duracion
20, 5555555, 30 min
20, 45646546, 35 min
20, 333333, 10 min
45, 2222, 4 min


etc

entonces tu relación entre las tablas es el campo no_viaje
si es numérico en ambas tablas tiene que ser numérico


suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #9 (permalink)  
Antiguo 29/05/2008, 10:03
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: como pasar planillas excel a una base de datos relacional

buena descripcion Juan, creo que debera tomar en consideracion lo que acabas de anotar, para que el mire en su hoja de excel cuales son los datos que vinculan con la otra

a menos que el este realizando un =buscarv() dentro de la hoja y vincule directamente si encuentra algo

veremos que nos comenta rezo
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #10 (permalink)  
Antiguo 29/05/2008, 10:27
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: como pasar planillas excel a una base de datos relacional

yeap habría que esperas
jejeje
habría que esperar pero si es asi
que copie y pegue los valores sin formulas
__________________
JuanRa Pérez
San Salvador, El Salvador
  #11 (permalink)  
Antiguo 29/05/2008, 12:06
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: como pasar planillas excel a una base de datos relacional

ahh ke bien entendieron mi problema juanraperez, pero kiero acotar algunas cosillas jejeje.

1. las planillas excel no tienen ningun campo que las relacione

2 el subir las planillas excel a las tablas es un proceso diario con lo cual se rechaza la manipulacion de las planillas excel por intermedio de un humano
  #12 (permalink)  
Antiguo 29/05/2008, 12:20
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: como pasar planillas excel a una base de datos relacional

es por el cual te decia que si ponias tus columnas de la plantilla de excel, asi miraremos las referencias contra la tabla en SQL

pero aun asi, debemos enfocarnos a lo que menciona juan

campos en las tablas(llamadas, viaje) y columnas en plantillas de excel

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #13 (permalink)  
Antiguo 29/05/2008, 13:06
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: como pasar planillas excel a una base de datos relacional

ya bueno aki les va las columnas excel

planilla excel llamadas
rut
codigo cliente
celular
hora_llamada
fecha_llamada
duracion_llamada
destino_llamada
monto_llamada

planilla excel viajes
Nombre
Fecha_inicio
fecha_final
Pais_destino
  #14 (permalink)  
Antiguo 29/05/2008, 13:29
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: como pasar planillas excel a una base de datos relacional

y como vinculas dentro de excel, que determinado cliente hizo una llamada o varias llamadas?
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #15 (permalink)  
Antiguo 29/05/2008, 14:03
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: como pasar planillas excel a una base de datos relacional

bingoooooo!!!!!, ese es mi problema , que en excel no hay tal vinculacion tonce no se como generar una al momento de subir las planillas excel a las tablas sql server y pensaba si programando en asp de alguna forma se podria hacer
  #16 (permalink)  
Antiguo 29/05/2008, 14:14
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: como pasar planillas excel a una base de datos relacional

pero hoy por hoy como sabes a que viaje o a que usuario se le hicieron las llamadas??????
__________________
JuanRa Pérez
San Salvador, El Salvador
  #17 (permalink)  
Antiguo 29/05/2008, 14:37
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: como pasar planillas excel a una base de datos relacional

no lo se , por eso mi idea era llevarlo a una base de datos relacional para salir de esa duda,pero me encontre con el problema de que al subir la base de datos llamadas no me deja por que pide su foreign key que la da viajes, entonces no se como poder relacionarlas :(
  #18 (permalink)  
Antiguo 29/05/2008, 14:43
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: como pasar planillas excel a una base de datos relacional

jajaja este se nos hizo chat (como otro tema que tengo por ahi)

tus hojas de excel

planilla excel llamadas
rut
codigo cliente
celular
hora_llamada
fecha_llamada
duracion_llamada
destino_llamada
monto_llamada

planilla excel viajes
Nombre
Fecha_inicio
fecha_final
Pais_destino

hoy por hoy sin la base de datos

como sabes que llamadas corresponden a que viaje????????????
__________________
JuanRa Pérez
San Salvador, El Salvador
  #19 (permalink)  
Antiguo 29/05/2008, 15:17
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: como pasar planillas excel a una base de datos relacional

hoy por hoy esa informacion no se puede saber por que esas planillas no estan relacionadas con ningun campo
  #20 (permalink)  
Antiguo 29/05/2008, 15:22
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: como pasar planillas excel a una base de datos relacional

oki entonces yo sugiero que a tu planilla viajes le adiciones un id, y que ese mismo id te lo lleves a la planilla llamadas y amarres en excel antes de subir a tu base de datos.
__________________
JuanRa Pérez
San Salvador, El Salvador
  #21 (permalink)  
Antiguo 29/05/2008, 15:34
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: como pasar planillas excel a una base de datos relacional

si pero te recuerdo que el proceso de subir planillas es diario, tonce con esa respuesta tendria que generar id en excel todos los dias y no es la gracia :(
  #22 (permalink)  
Antiguo 29/05/2008, 16:37
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
Respuesta: como pasar planillas excel a una base de datos relacional

claro si no hay forma en excel de ligarlos... a pie, mucho menos en una base de datos

solo te sugiero que definas la forma de amarrarlos en excel, dado que si subes informacion sin amarrar a una base de datos "relacionada" no te dejara nunca mientras los valores de las llaves no sean iguales.

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:55.