resumiendo: Cita: ls_select = "Select * from descarga"
fila.Open ls_select, conexion,1,3
conexion.BeginTrans
para hacer un select no necesitas usar una transacción, estas se utilizan únicamente en INSERT, UPDATE o DELETE; por otro lado, estas haciendo un select * from descarga cuando de ahí únicamente requieres dos columnas, eso significa que estas recargando la memoria de manera innecesaria.
Cita: for i = 0 to fila.MaxRecords()
if usuario = fila(i) then
if contra = fila(i) then
encontrado = true
return
else
encontrado = false
mensaje = "El password es incorrecto"
end if
else
encontrado = false
mensaje = "Usuario inexistente"
end if
next
esta no es la mejor manera de hacer un recorrido a un cursor devuelto en un recordset, por otro lado tu evaluaciòn usuario = fila(i) de por si esta mal, lo que va entre paréntesis es el número de columna mientras en tu variable i tienes el número de fila.
recomendación:
1. borra el begintransaction que por cierto no cierras en ningún lado.
2. tu query no lo hagas con SELECT * sino SELECT columna1, columna2 FROM dependiendo de las columnas que requieras y cuales requieras.
3. no hagas un recorrido a tu recordset no lo necesitarias si a tu SELECT le agregaras la cláusula WHERE de esta manera
ls_select = "SELECT count(*) FROM descarga WHERE columna1='" & usuario & "' AND columna2='" & contra & "'" (claro esta, con los nombres de columna)que tenga tu tabla.
encontrado = false
fila.Open ls_select, conexion,1,3
if not fila.EOF then
if not isnull(fila(0)) then
if cint(fila(0))>0 thenencontrado = true
end if
end if
end if
para que esto funcione tus Request deben estar antes de crear tu query.