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

Urgente: Presentación mañana y no hace lo que quiero

Estas en el tema de Urgente: Presentación mañana y no hace lo que quiero en el foro de ASP Clásico en Foros del Web. Saludos al foro: Necesito que el formulario "borrar ofertas.asp" haga lo siguiente: 1- Cuando un usuario introduzca un valor en cualquier campo del formulario, en ...
  #1 (permalink)  
Antiguo 28/07/2003, 12:16
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años
Puntos: 0
Urgente: Presentación mañana y no hace lo que quiero

Saludos al foro:
Necesito que el formulario "borrar ofertas.asp" haga lo siguiente:
1- Cuando un usuario introduzca un valor en cualquier campo del formulario, en el momento que pulse el boton "Borrar Registro" muestre un listado filtrado por ese valor y borre los registros encontrados.

2. Si un usuario no introduce ningun valor en los campos del formulario y pulsa el boton "Borrar Registro" no se debe borrar ningun registro de la tabla. Esto lo hago para prevenir un borrado accidental de la tabla.

Los problemas son los siguientes:

1-El problema es cuando el formulario está en blanco y se envia me borra todos los registros de la tabla
2- Cuando se introduce información en algun campo me muestra el error siguiente:

ADODB.Recordset error '800a0bb9'

Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.

/gestion_datos/borrar_ofertas/borrar_ofertas.asp, line 78

Les envio el fichero borrar_ofertas.asp por si ven el error porque yo ya no veo nada ;).

Gracias

Codigo
--------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Desde aqu&iacute; puede borrar las ofertas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body background="../../images/frame_izqda_con_opacidad.jpg" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<!--Incluimos el fichero de constantes-->
<!--#INCLUDE file="../../ADOVBS.inc"-->

<% IF (request.form <> "") then
'Para conexión a dsn arsys con ACCESS
set Ob_Conn= Server.CreateObject("ADODB.Connection")
Ob_Conn.ConnectionString = "DSN=clubviajesoferta.com.access"
Ob_Conn.open
Set Ob_RS=Server.CreateObject("ADODB.Recordset")
Ob_RS.activeconnection=Ob_Conn
Ob_RS.source="ofertas"
Ob_RS.Locktype = adLockOptimistic
Ob_RS.CursorType = adOpenDinamic
Ob_RS.open
'Termina aquí la conexion a dsn arsys con ACCESS
Poner_and=true

'Variable de control para saber si los campos del formulario están en blanco
Vacio=false
For each parametro in request.form
parametro = Lcase(parametro)
if request.form(parametro) = "" then
vacio = true
response.write ("Al enviar el formulario en blanco, ha intentado borrar todos los registros de la tabla. Esto no está permitido.")
exit for
end if
next

if not vacio then

FOR EACH Parametro IN Request.Form
IF Request.Form (Parametro) <> "" THEN
IF Poner_AND THEN
Filtro= Filtro & " AND " & Parametro & "='"
Filtro= Filtro & Request.Form(Parametro) & "'"
ELSE
Filtro= Filtro & Parametro & "='"
Filtro= Filtro & Request.Form(Parametro) & "'"
Poner_AND = True
END IF
END IF
NEXT

Filtro=Lcase(filtro)
Ob_RS.filter= Filtro
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr bgcolor="#e0e0e0">
<td> <div align="center"><font color="#003399" face="Arial, Helvetica, sans-serif">Clase
Oferta </font></div></td>
<td> <div align="center"><font color="#003399" face="Arial, Helvetica, sans-serif">Destino</font></div></td>
<td> <div align="center"><font color="#003399" face="Arial, Helvetica, sans-serif">Pais</font></div></td>
<td> <div align="center"><font color="#003399" face="Arial, Helvetica, sans-serif">Zona</font></div></td>
<td> <div align="center"><font color="#003399" face="Arial, Helvetica, sans-serif">Mayorista</font></div></td>
<td> <div align="center"><font color="#003399" face="Arial, Helvetica, sans-serif">Nombre
del Hotel</font></div></td>
<td> <div align="center"><font color="#003399" face="Arial, Helvetica, sans-serif">Precio</font></div></td>
</tr>
<% if Ob_RS.bof and Ob_RS.eof then
Response.write("No se encontraron coincidencias con la búsqueda solicitada")%>
<%else
Ob_RS.movefirst
do while not ob_rs.eof %>
<tr bgcolor="#ebf3eb">
<td><font face="Arial, Helvetica, sans-serif"><%=Ob_RS("claseoferta")%></font></td>
<td><font face="Arial, Helvetica, sans-serif"><%=Ob_RS("destino")%></font></td>
<td><font face="Arial, Helvetica, sans-serif"><%=Ob_RS("pais")%></font></td>
<td><font face="Arial, Helvetica, sans-serif"><%=Ob_RS("zona")%></font></td>
<td><font face="Arial, Helvetica, sans-serif"><%=Ob_RS("mayorista")%></font></td>
<td><font face="Arial, Helvetica, sans-serif"><%=Ob_RS("hotelnombre")%></font></td>
<td><font face="Arial, Helvetica, sans-serif"><%=Ob_RS("hotelprecio")%></font></td>
</tr>
<% Ob_RS.movenext
loop %>
</table>
<%Ob_RS.movefirst
do while not Ob_RS.eof
Ob_RS.delete
'Borra siempre el primer registro del filtro
Ob_RS.movefirst%>
<%loop%>
<%end if%>
<%end if%>
<br>
<br>
<A HREF="../modulo_gestion.asp" target="_parent">Menu principal </A> ** <A HREF="frame_borrar.htm" target="_parent">
Otro borrado</A>
<%Ob_RS.close
Ob_Conn.close%>

<%ELSE%>
Rellene el campo por el cual desea realizar la búsqueda </p>
<form name="form1" method="post" action="borrar_ofertas.asp">
<div align="center"> </div>
<table border="0" cellpadding="0">
<tr>
<td valign="top"><p><font color="#B9DB7D"><strong>Clase Oferta</strong></font><br>
<strong><font color="#B9DB7D">
<input name="claseoferta" type="text" size="20" maxlength="20">
</font></strong> </p>
</td>
<td valign="top"><font color="#B9DB7D"><strong>Destino</strong></font><br>
<input name="destino" type="text" size="40" maxlength="20"> </td>
<td valign="top"><strong><font color="#B9DB7D">Pais</font></strong><br>
<input name="pais" type="text" size="20" maxlength="20"> </td>
</tr>
<tr>
<td valign="top"><p><strong><font color="#B9DB7D">Zona</font></strong><br>
<input name="zona" type="text" size="25" maxlength="25">
</p></td>
<td valign="top"><font color="#B9DB7D"><strong>Mayorista</strong></font><br>
<input name="mayorista" type="text" size="20" maxlength="20"></td>
<td valign="top"><strong><font color="#B9DB7D">Nombre del hotel</font></strong><br>
<input name="hotelnombre" type="text" size="20" maxlength="20"></td>
</tr>
<tr>
<td valign="top"><p><font color="#B9DB7D"><strong><font color="#B9DB7D">Precio</font></strong><br>
<input name="hotelprecio" type="text" id="hotelprecio" size="20" maxlength="20">
</font> </p></td>
<td valign="top"><font color="#B9DB7D"> <strong>Fecha de Salida</strong></font><br>
<input name="fechasalida" type="text" id="fechasalida2" size="40" maxlength="40"></td>
<td valign="top"><div align="right"><strong><u>
<input type="submit" value="Borrar Registro">
<br>
<input name="reset" type="reset" value="Limpiar Pantalla">
</u></strong> </div></td>
</tr>
<tr>
<td colspan="3" valign="top"><div align="left"><font color="#CCCCFF"><a href="../modulo_gestion.asp" target="_parent">Menú
Principal</a> <a href="frame_borrar.htm" target="_parent">Otro borrado</a></font></div></td>
</tr>
</table>
</form>

<%end if%>

</body>
</html>
  #2 (permalink)  
Antiguo 28/07/2003, 14:02
Avatar de impio_joe  
Fecha de Ingreso: mayo-2001
Ubicación: México
Mensajes: 69
Antigüedad: 23 años, 1 mes
Puntos: 0
Aver estoy un poco oxidado porque ya tiene rato que no programo en ASP pero si lo que quieres es que cuando te llegue
el formulario en blanco no borre nada y le avise al usuario, se me
ocurre que valides el formulario antes de ser enviado con
JavaScript y si el formulario va en blanco NO lo envie. En eso los expertos están el foro de JavaScritp

Ahora que si lo quieres hacer en la página que borra los campos
de la base de datos te recomiendo que te asegures que se detenga
el procesamiento del código de la página.

Aqui te dejo una idea con un mensaje en JavaScript para avisar
al usuario y que al aceptar lo regresa al formulario.

Código:
<%
If Request.Form="" then
%>
<script>
alert("AQUI PON EL MENSAJE QUE QUIERAS")
window.history.back()
</script>
<%
Response.End=True
end If
%>
Y luego ya le pones tu:

Código:
<%
If Request.Form<>"" then
%>
o le pones un en ELSE en el primer IF , ya eso es a tu gusto

Espero que te sirva a mi me sirvió mucho para asegurarme que no se siguiera ejecutando el código esto lo logras con el

Código:
Response.End=True
Bye
__________________
Atte: Impío_joe
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




La zona horaria es GMT -6. Ahora son las 23:39.