A ver si ahora. Los cambios principales que he hecho son:
- Pasar los datos del formulario con el método
get para leerlos con
Request.QueryString en vez de con Request.Form que parece que es lo que fallaba al haber más de uno con el mismo nombre.
- Ahora los nombres de los checkbox no es con corchetes.
- He cambiado la forma de contruir el array con todos los valores seleccionados.
- Faltaba una condicional en el caso de que no se seleccione ninguno para que no te de error Lbound y Ubound.
La página del formulario del ejemplo que me hice queda como sigue:
Cita: <html>
<head>
<title>Pruebas</title>
</head>
<body>
<H1>CONTENIDO DE LA BASE DE DATOS</H1>
<%
Dim oConn,strSQL, objRS
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("ejemplo.mdb"))
strSQL = "SELECT id, Nombre, apellido, telefono, direccion, email FROM prueba order by nombre"
Set objRS = oConn.Execute(strSQL)
%>
<form name="formulario" method="get" action="eliminar.asp">
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1 width="789">
<TR>
<TD colspan="6" valign="top"><input type=submit name="Eliminar" value=Eliminar></TD>
</TR>
<TR>
<TD width="1" valign="top"> </TD>
<TD height="23" width="124" valign="top" bgcolor="#0066FF"> <div align="center">
Nombre</div></TD>
<TD valign="top" width="115" bgcolor="#0066FF"> <div align="center"> Apellido
</div></TD>
<TD width="125" valign="top"> <div align="center"> Télefono</div></TD>
<TD width="128" valign="top"> <div align="center"> Dirección</div></TD>
<TD width="140" valign="top"> <div align="center"> E-mail</div></TD>
</TR>
<%
Dim a
a=0
While (Not objRS.Eof)
a=a+1
If colorfila = 1 Then
color= "#DEDEBE"
colorfila=0
Else
color="#F0F0F0"
colorfila=1
End If
%>
<tr><td><input type=checkbox name="elimina" value="<%=objRS("id")%>"></td>
<td bgcolor="<%=color%>"><%=objRS("Nombre")%></td>
<td bgcolor="<%=color%>"><%=objRS("Apellidos")%></td>
<td bgcolor="<%=color%>"><%=objRS("telefono")%></td>
<td bgcolor="<%=color%>"><%=objRS("direccion")%></td>
<td bgcolor="<%=color%>"><%=objRS("email")%></td>
</tr>
<%
objRS.MoveNext
WEnd
oConn.Close
set objRS = nothing
set oConn = nothing
%>
</table>
</form>
</body>
</html>
La página a la que llama el formulario (eliminar.asp) queda como sigue:
Cita: <html>
<head>
</head>
<body>
<%
Dim elimina_r(), I , seleccionado
seleccionado = 0
I = 0
For Each Valor In Request.QueryString("elimina")
seleccionado = 1 'Booleano que dirá si seleccionó al menos un elem
Redim Preserve elimina_r(I)
elimina_r(I) = Valor
I = I + 1
Next
If seleccionado = 1 Then
For i = LBound(elimina_r) To UBound(elimina_r)
Response.Write ( "valor " & i & ": " & elimina_r(i) & "<br>")
' Más bien aquí colocarías tu código que construye
' la consulta SQL Delete con las claves primarias de los registros
' que quieres eliminar
Next
Else
Response.Write "No ha seleccionado ningún checkbox"
End If
%>
</body>
</html>
Suerte