Hola!
no sé si no supe explicarme o el problema está más allá de sus manos, porque por lo visto, nadie se ha pronunciado ni para bien o para mal...
Bueno, lo que pasa es lo siguiente...
Logré hacer que esta cosa funcara, pero el problema se me traslada a una parte específica del código: y es que me deja insertar o eliminar excluyentemente, es decir, o hago lo primero o lo segundo, pero ambos no.
Código HTML:
SELECT CASE strAccion
CASE "inicio":
CALL EscribeListas(batch)
CASE "grabar":
'=================================================
dim SeleccionHab,SeleccionNoHab,arrOriginal
dim booEncontrado
SeleccionHab = Request.Form("SeleccionHab")
'Response.Write("SeleccionHab:"&SeleccionHab&"<br>")
SeleccionNoHab = Request.Form("SeleccionNoHab")
'Response.Write("SeleccionNoHab:"&SeleccionNoHab&"<br>")
arrOriginal = Request.Form("arrOriginal")
'Response.Write("arrOriginal:"&arrOriginal&"<br>")
'Response.Write("----------------------------------<br>")
'Response.End
'Response.Write("Arrays que hacen split a los anteriores<br>")
arrHab = split(SeleccionHab,";")
'Response.Write("arrHab:"&arrHab(i)&"<br>")
arrNoHab = split(SeleccionNoHab,";")
'Response.Write("arrNoHab:"&arrNoHab(j)&"<br>")
arrOri = split(arrOriginal,";")
'Response.Write("arrOri:"&arrOri(k)&"<br>")
'Response.Write("------------------------------------------<br>")
'Response.End
'Response.Write("GUARDA:"&arrHab(s)&"<br>")
'next
'------------------------------------------------------------
'REVISAR FUNCIÓN
'------------------------------------------------------------
for i=lbound(arrOri) to ubound(arrOri)
booEncontrado = false
for j=lbound(arrHab) to ubound(arrHab)
'............................................................
'Response.Write("Valores dentro del ciclo for<br>")
'Response.Write "Valores : arrOri(" & i & ") -> " & arrOri(i) & "<br>"
'Response.Write "Valores : arrHab(" & j & ") -> " & arrHab(j) & "<br>"
'response.Write("-------------------<br>")
'Response.End
'............................................................
if arrOri(i)=arrHab(j) then
booEncontrado = true
'............................................................
'response.Write("Valores cuando booencontrado=true <br>")
'Response.Write "Valores : arrOri(" & i & ") -> " & arrOri(i) & "<br>"
'Response.Write "Valores : arrHab(" & j & ") -> " & arrHab(j) & "<br>"
'response.Write("-------------------<br>")
'Response.End
'............................................................
exit for
end if
next
'next
'Response.End
If not booEncontrado then
'for k=lbound(arrOri) to ubound(arrOri)
call BorraSeleccionOLD(batch,arrOri(i),fecha)
'Call GuardaCampoSel(arrHab(j),batch)
'Response.Write "ID Agregado: arrHab(" & j & ") -> " & arrHab(j) & "<br>"
'Response.End
end if
next
'------------------------------------------------------------
'FIN DE REVISAR FUNCIÓN
'------------------------------------------------------------
'--------------------------------------------------------------------------------------------------
'la llamada al GuardaCampoSel si está dentro del ciclo for de arriba,
'permite que grabe pero que no elimine, y si está acá afuera, permite que
'elimine pero que no grabe... ese es el problema..
'--------------------------------------------------------------------------------------------------
CALL GuardaCampoSel(arrHab(j),batch)
CALL EscribeListas(batch)
CASE ELSE
' llamo a cualquier otra funcion de emergencia
END SELECT