Hola a todos!
soy nueva en este foro y me he inscrito para solicitar su amable ayuda.
Sucede que tengo un archivo hecho en asp para subir informacion a una tabla de mysql... mi script funcionaba correctamente, solo que ahora por mas que intento ver donde esta el error, me pone el mensaje
Cita: Select * From A1:I140
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
El controlador ODBC no admite las propiedades solicitadas.
Entonces no se que pueda estar mal en el codigo... se los copio aqui abajo para que me puedan dar su opinion. Mil gracias por su atencion!
Liga para ponerle los parametros:
www.tudominio.com/ExcelsubirTabla.asp?Archivo=ClientesNuevos.xls&Col umnas=112&Tabla=clientes&iNICIO=A1&FIN=DH2
Código:
<html>
<head>
<title>Subir Excel</title>
</head>
<%
Server.ScriptTimeout=100000
'Asigna a la variable Patd, la ruta del archivo *.xls'
strNomArchivo = REQUEST.QUERYSTRING("ARCHIVO")
intColumnas = REQUEST.QUERYSTRING("Columnas")
strTabla = REQUEST.QUERYSTRING("Tabla")
strHoja = REQUEST.QUERYSTRING("Hoja")
'strCampoLLave1= REQUEST.QUERYSTRING("CampoLLave1")'
'strCampoLLave2= REQUEST.QUERYSTRING("CampoLLave2")'
strTipoCampo1 = REQUEST.QUERYSTRING("TipoCampo1")
strTipoCampo2 = REQUEST.QUERYSTRING("TipoCampo2")
strInicio = REQUEST.QUERYSTRING("Inicio")
strFin = REQUEST.QUERYSTRING("Fin")
Path=Server.MapPath(strNomArchivo)
'---CONDICIÓN'
'if strTipoCampo1 = "1" then strTipoCampo1 = " "'
'if strTipoCampo1 = "2" then strTipoCampo1 = "'"'
'if strTipoCampo2 = "1" then strTipoCampo2 = " "'
'if strTipoCampo2 = "2" then strTipoCampo2 = "'"'
'Establece una conexión entre el servidor asp y una base de datos'
Set ConexionBDExcel = Server.CreateObject("ADODB.Connection")
'Abrimos el objeto con el driver específico para Microsoft Excel'
ConexionBDExcel.MODE = 3
ConexionBDExcel.Open ("DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & Path)
'Crea un objeto de tipo recordset para retornar la consulta sql'
Set rsVac = Server.CreateObject("ADODB.Recordset")
'Se abre el recordset, señalando como tabla el rango de celdas Excel llamado Feriado.'
'Este nombre de rango se debe definir en MSExcel (>Insertar>Nombre>Definir...).'
response.Write("Select * From "&strInicio&":"&strFin&"")
response.flush
rsVac.Open "Select * From "&strInicio&":"&strFin&"", ConexionBDExcel,3,3
%>
<body>
<h2><b><center>INSERTAR REGISTROS A LA BD</center></b></h2>
<hr>
<table border=1 align="center">
<%
'Nos posicionamos al principio del recordset, por cualquier cosa'
rsVac.MoveFirst
Response.Write rsVac.Fields.Count-1'
Response.Write "<tr>"
FOR i=0 TO rsVac.Fields.Count-1
Response.Write("<td>" & rsVac.FIELDS(I).NAME & "</td>")
NEXT
Response.Write "</tr>"
%><!--#include file="includes/Conexion.INC" --><%
'Y por último, el cuerpo de los datos'
Do While Not rsVac.EOF
'--LISTA DE CAMPOS'
WCampo1 = TRIM(rsVac.FIELDS(0).value)
if left(WCampo1,1)="'" then WCampo1 = right(WCampo1,len(WCampo1)-1)
'LO SIGUIENTE ESTABA COMENTADO LO VAMOS A DESCOMENTAR PARA VER QUE HACE
Response.Write "<tr>"
Response.Write(WCLAVE)
Response.Write "</tr>"
Response.Write "<tr>"
FOR i=0 TO rsVac.Fields.Count-1
Response.Write("<td>" & rsVac.FIELDS(I).value & "</td>")
NEXT
Response.Write "</tr>"
'----
strSql =""
strSql1 =""
strSql2 =""
strSql = " INSERT INTO "&strTabla&" ( "
FOR i=0 TO rsVac.Fields.Count-1
strSql1 = strSql1 & rsVac.FIELDS(I).name & " ,"
NEXT
strSql1 = left(strSql1,len(strSql1 )-1)
FOR I=0 TO rsVac.Fields.Count-1
strTipo = ""
if rsVac.FIELDS(I).type=200 then strTipo="'"
strSql2 = strSql2 & strTipo & rsVac.FIELDS(I).value & strTipo & " ,"
NEXT
strSql2 = left(strSql2,len(strSql2 )-1)
strsql= strsql & strsql1 & ")VALUES (" & strsql2 &")"
Response.Write "<tr>"
Response.Write(strSql)
Response.Write "</tr>"
connBD.Execute(strSql)
rsVac.MoveNext
Loop
Response.Write "</table>"
set rs = nothing
connBD.CLOSE
SET oConn = nothing
'Se cierra y se destruye el objeto recordset
rsVac.Close
Set rsVac = Nothing
'Se cierra y se destruye el objeto connection
ConexionBDExcel.Close
Set ConexionBDExcel = Nothing
%>
</body>
</html>