He decidido volver a empezar ha rehacer un código a ver si así lo veo más claro. Luego ya lo pondré bonito.
El caso es que me sale a medias, es decir solo realiza parte del trabajo. El problem es el siguiente:
Tengo en una DB hecha en access donde hay minoristas y mayoristas de viajes.
Lo que pretendo es que cuando un mayorista borra sus ofertas, se borren antes las ofertas de los minoristas que estén relacionadas con las ofertas que el mayorista esta eliminando y luego se borren las ofertas ya seleccionadas del mayorista.
El mayorista selecciona las ofertas a borrar mediante un formulario web donde va escogiendo en funcion de unos campos y cuando envia el formulario se borran las ofertas.
Explico el problema con un ejemplo:
Un mayorista determinado quiere borrar todas sus ofertas (3 por ejemplo) 2 de esas ofertas tienen a un minorista suscrito.
Mediante el RS.filter listo las ofertas del mayorista que voy a borrar. Y con el RS2 selecciono las ofertas suscritas de los minoristas.
El caso es que me borra siempre todas las ofertas del mayorista seleccionadas con RS.filter y solo la primera oferta relacionada del minorista. Es decir no sigue buscando el resto y no veo el por qué (obviamente no da ningún error).
Les envio el código:
Les marco en rojo donde creo que debe andar el asunto:
Código:
A ver si pueden echarme una mano.<!--#INCLUDE file="../../../adovbs.asp"--> <% IF (request.form <> "") THEN 'Para conexión a dsn arsys con ACCESS set Conn= Server.CreateObject("ADODB.Connection") Conn.ConnectionString = "DSN=clubviajesoferta.com.turofertas" Conn.open Set RS=Server.CreateObject("ADODB.Recordset") rs.activeconnection=Conn rs.source="ofertasmayoristas" rs.Locktype = adLockOptimistic rs.CursorType = adOpenDinamic rs.open 'Termina aquí la conexion a dsn arsys con ACCESS function CortarNombreFichero imagen=rs("imagenoferta") len(imagen) posicioncaracterbuscar=instrrev(imagen,"/")+1 response.write mid(imagen,posicioncaracterbuscar) end function Poner_AND= False 'El Codigo siguiente hace que si el formulario se envia vacio no se borre toda la tabla Vacio=true For each parametro in request.form parametro = Lcase(parametro) if request.form(parametro) <> "" then vacio = false exit for end if next if vacio=true then response.write("<br><br><div align=""center""><font face= ""Arial, Helvetica, sans-serif"" size=""3"" color=""#FB4C50""><strong>Operación no permitida.<br> Al dejar todos los campos vacios, ha intentado borrar la tabla completa</strong></font></div>") end if if not vacio then 'Termina el codigo de comprobacion del formulario vacio para no borrar toda la tabla Filtro= "" 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) rs.filter= Filtro response.write "el filtro es: " & filtro%> <table width="100%" border="0" cellspacing="0" cellpadding="1"> <tr bgcolor="#e0e0e0"> <td width="17%"> <div align="left"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Referencia</font></div></td> <td width="33%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Denominación</font></td> <td width="8%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Empresa</font></td> <td width="13%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Imagen</font></td> <td width="16%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Publicación</font></td> <td width="13%"><font color="#003399" size="2" face="Arial, Helvetica, sans-serif">Validez</font></td> </tr> <%if rs.bof and rs.eof then response.write("<br><br><div align=""center""><font face= ""Arial, Helvetica, sans-serif"" size=""3"" color=""#FB4C50""><strong>No se encontraron coincidencias con la búsqueda solicitada </strong></font></div>") else 'Abrimos el recordset RS2 para listar los registros del minorista que se van a borrar set Conn2= Server.CreateObject("ADODB.Connection") Set RS2=Server.CreateObject("ADODB.Recordset") Conn2.ConnectionString = "DSN=clubviajesoferta.com.turofertas" sqlstring2="select * from ofertasmayoristas where imagenofertareferida=" & "'" & rs("imagenoferta") & "'" Conn2.open response.write ("Se han borrados las siguientes ofertas: <p> borrarofertasmayoristas.asp") rs.movefirst do while not rs.eof if colorfila=0 then color="#EEF0F7" colorfila=1 else color="FFFFFF" colorfila=0 end if%> <tr valign="top" bgcolor="<%=color%>"> <td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("referenciaoferta")%></font></td> <td><div align="justify"><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("denominacionoferta")%></font></div></td> <td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("empresaoferta")%></font></td> <td><font size="2" face="Arial, Helvetica, sans-serif"><%CortarNombreFichero%></font></td> <td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("fechapublicacionoferta")%></font></td> <td><font size="2" face="Arial, Helvetica, sans-serif"><%=RS("fechavalidezoferta")%></font></td> </tr> <%rs.movenext loop%> </table> <%'Borramos el registro seleccionado en el formulario de borrar registros rs.movefirst RS2.Open sqlstring2, Conn2, 3, 3 rs2.movefirst do while not rs.bof and not rs.eof do while not rs2.bof and not rs2.eof response.write "<br>registro minorista a borrar: " & rs2("referenciaoferta") rs2.delete rs2.movenext loop rs.delete 'La linea siguiente es para que el recordset RS avance al siguiente registro rs.movenext loop end if end if%> <br> <br> <A HREF="../../../modulo_gestion.asp?nombreusuario=<%=nombreusuario%>" target="_parent">Menu principal </A> ** <A HREF="borrar_ofertas.asp?nombreusuario=<%=nombreusuario%>" target="_parent">Borrar Oferta</A> <% rs.close Conn.close ELSE set Conn1= Server.CreateObject("ADODB.Connection") Set RS1=Server.CreateObject("ADODB.Recordset") Conn1.ConnectionString = "DSN=clubviajesoferta.com.turofertas" sqlstring="select empresanombrefiscal from clientes where nombreusuario=" & "'" &nombreusuario& "'" Conn1.open Set RS1 = conn1.execute (sqlstring) response.write "La empresa es: " & categoria = rs1("empresanombrefiscal") %> Rellene el campo por el cual desea realizar la búsqueda </p> <form name="form1" method="post" action="borrar_ofertas_mayoristas.asp?nombreusuario=<%=nombreusuario%>"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="23%">Referencia</td> <td colspan="3"><input name="referenciaoferta" type="text" id="referenciaoferta" size="20" maxlength="20"></td> </tr> <tr> <td>Denominación</td> <td colspan="3"><input name="denominacionoferta" type="text" id="denominacionoferta" size="11" maxlength="11"></td> </tr> <tr> <td>Destino</td> <td colspan="3"><select name="destinooferta" id="destinooferta"> <option value="""" selected>Seleccione un destino</option> <option value="2 x 1 Ofertas">2 x 1 Ofertas</option> <option value="África">África</option> <option value="América">América</option> <option value="Asia">Asia</option> <option value="Baleares">Baleares</option> <option value="Balnearios-Turismo Salud">Balnearios-Turismo Salud</option> <option value="Canarias">Canarias</option> <option value="Caribe">Caribe</option> <option value="Costas Españolas">Costas Españolas</option> <option value="Cruceros">Cruceros</option> <option value="Europa">Europa</option> <option value="Ferias">Ferias</option> <option value="Multiaventura">Multiaventura</option> <option value="Países Mediterráneos">Países Mediterráneos</option> <option value="Parques Temáticos">Parques Temáticos</option> <option value="Portugal">Portugal</option> <option value="Puentes - Fin de Semana">Puentes - Fin de Semana</option> <option value="Ski y Montaña">Ski y Montaña</option> <option value="Tarifas Aéreas">Tarifas Aéreas</option> <option value="Turismo Juvenil">Turismo Juvenil</option> <option value="Turismo Rural">Turismo Rural</option> </select></td> </tr> <tr> <td>Empresa</td> <td colspan="3"><input name="empresaoferta" type="text" onfocus="blur()" id="empresaoferta" value="<%=rs1("empresanombrefiscal")%>" size="35" maxlength="35"></td> </tr> <tr> <td>Fecha Publicación</td> <td width="13%"><input name="fechapublicacionoferta" type="text" id="fechapublicacionoferta" size="10" maxlength="10"></td> <td width="4%"><img src="../../../images/iconos/ayuda.gif" width="16" height="20"></td> <td width="60%"><font size="2" face="Arial, Helvetica, sans-serif">DD/MM/AAAA</font></td> </tr> <tr> <td>Fecha Validez</td> <td><input name="fechavalidezoferta" type="text" id="fechavalidezoferta" size="10" maxlength="10"> </td> <td><img src="../../../images/iconos/ayuda.gif" width="16" height="20"></td> <td><font size="2" face="Arial, Helvetica, sans-serif">DD/MM/AAAA</font></td> </tr> <tr> <td> </td> <td colspan="3"><input type="submit" value="Borrar Oferta" onClick="return window.confirm('Eliminar el/los registro/s')"> <input type="reset" value="Limpiar Formulario"></td> </tr> </table> </form> <%END IF%> </body>
GRacias