Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/05/2008, 11:25
Avatar de Shiryu_Libra
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