Os lo pongo mas detalladamente.
Vamos por partes tengo una función donde creó la conexión a la base de datos, es la siguiente:
Código ASP:
Ver originalfunction abrirConexionAccess(byref objConexionAccess)
Set objConexionAccess = Server.CreateObject ("ADODB.Connection")
objConexionAccess.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("baseDatos/datosrem.mdb")
end function
Tengo otra función que es para cerrar la conexión, que es la siguiente:
Código ASP:
Ver originalfunction cerrarConexionAccess(byref objConexionAccess)
objConexionAccess.Close
Set objConexionAccess = Nothing
end function
Llamo a la función parar crear la conexión:
Código ASP:
Ver originaldim objConexionAccess
call abrirConexionAccess(objConexionAccess)
Y luego ya está la función donde cojo los datos de la base de datos:
Código ASP:
Ver originalfunction buscarPorInstalacion()
dim queryAccess, query, queryAux, rsconsulta, rsconsultaAux ,rsconsultaAccess, registros, horaPrin, horaFin
horaPrin=Request.Form("horaPrinc")
horaFin=Request.Form("horaFiin")
if (horaPrin = "") then
horaPrin = "00:00"
end if
if (horaFin = "") then
horaFin = "23:59"
end if
%>
<table border="1" bordercolor="#000000" style="font-family:Verdana, Arial, Helvetica, sans-serif; color:#000000; font-size:8pt; border-style:ridge; border-width:1px;" cellspacing="0" cellpadding="0" align="center">
<tr>
<td style="font-weight:bold; background-color:#7CC2FC; padding:3px; " align="center">
Instalación
</td>
<td style="font-weight:bold; background-color:#7CC2FC; padding:3px; " align="center">
Huerta
</td>
<td style="font-weight:bold; background-color:#7CC2FC; padding:3px; " align="center">
Fecha
</td>
</tr>
<%
if Request.Form("Instalacion") = 0 then
queryAux="select * from correspondencia"
else
queryAux="select * from correspondencia where id_instalacion='" & trim(Request.Form("Instalacion")) & "'"
end if
set rsconsultaAux=server.CreateObject("ADODB.Recordset")
rsconsultaAux.open queryAux, objconexionAux
while not rsconsultaAux.eof
if Request.Form("Medida") = 1 then
queryAccess="select TOP 10 * from " & trim(rsconsultaAux.fields(1)) & "PM1Tm2"
else
if Request.Form("Medida") = 2 then
queryAccess="select TOP 10 * from " & trim(rsconsultaAux.fields(1)) & "PM1Tm1"
else
if Request.Form("Medida") = 3 then
queryAccess="select TOP 10 * from " & trim(rsconsultaAux.fields(1)) & "PM1Tm1"
end if
end if
end if
if Request.Form("fechaPrinc") <> "" then
queryAccess=queryAccess & " where FECHA>=#" & fechaBD(Request.Form("ocufechaPrin")) & " " & horaPrin & "#"
end if
if Request.Form("fechaFiin") <> "" then
queryAccess=queryAccess & " and FECHA<=#" & fechaBD(Request.Form("fechaFiin")) & " " & horaFin & "#"
end if
Set rsconsultaAccess = objConexionAccess.Execute(queryAccess)
while not rsconsultaAccess.eof
query="select * from INSTALACIONES where ID_INSTALACION=" & rsconsultaAux.Fields(4)
set rsconsulta=server.CreateObject("ADODB.Recordset")
rsconsulta.open query, objconexion
%>
<TR>
<td style="padding:3px; background-color:#7CC2FC; border-right:none;" align="center"><%=rsconsulta.Fields(2).Value %></TD>
<td style="padding:3px; background-color:#7CC2FC; border-right:none;" align="center"><%=rsconsultaAux.Fields(2).Value %></TD>
<td style="padding:3px; background-color:#7CC2FC; border-right:none;" align="center"><%=rsconsultaAccess.Fields(0).Value %></TD>
<td style="padding:3px; background-color:#7CC2FC; border-right:none;" align="center"><%= rsconsultaAccess.Fields(1).Value %></TD>
<td style="padding:3px; background-color:#7CC2FC; border-right:none;" align="center"><%= rsconsultaAccess.Fields(2).Value %></TD>
<td style="padding:3px; background-color:#7CC2FC; border-right:none;" align="center"><%= rsconsultaAccess.Fields(3).Value %></TD>
<td style="padding:3px; background-color:#7CC2FC;
</TR>
<%
rsconsultaAccess.MoveNext
rsconsulta.Close
wend
rsconsultaAccess.Close
rsconsultaAux.MoveNext
wend
Response.Write("</table>")
end function
El problema es que la primera consulta la hace perfectamente, pero a partir de la siguiente me da el error, pero si esperas unos minutos y actualizas la página te muestra el resultado correctamente.
Un saludo