
Estoy creando una intranet para mi empresa, con un montón de funciones: control comercial, control de órdenes y pedidos, gestión de clientes, etc. La verdad es que llevo ya unos meses con ello, pues cada vez que aprendo algo nuevo vuelvo a cambiar todo.
Cuando la acabe la pondré a disposición de quien la quiera usar... me llenará de orgullo saber que todo mi trabajo ha podido resultar útil para otras personas...
En fin, que voy con la cuestión que me vuelve loco... bueno, al menos la que más loco me vuelve ahora mismo, pues este aprendizaje es un continuo discurrir entra la locura y la desesperación:
¿CÓMO SE RECUPERAN LOS VALORES DE UN CAMPO SÍ/NO DE UNA BB.DD. Y SE UTILIZAN EN UN CHECKBOX?
Es decir, concretando:
PÁGINA 1 -> Un formulario de introducción de datos, incluido un checkbox con el siguiente código:
<input type="checkbox" name="wcasilla_verificacion" value="ON">
PÁGINA 2 -> Recogemos los valores del formulario y los insertamos en la BB.DD:
<%
if request.form("wcasilla_verificacion") = "on" then
xcasilla_verificacion = "1"
else
xcasilla_verificacion = "0"
end if
%>
<%
sSQL="Insert Into tabla (casilla_verificacion) values ('" & xcasilla_verificacion & "')"
%>
Hasta aquí todo funciona perfectamente. El usuario marca en el formulario la casilla de verificación o no, y en la base de datos ese campo aparece marcado o no, según la elección (por cierto, el tipo de campo en Access es Sí/No, con formato Verdadero/Falso). Pero ahora llega el problema:
PÁGINA 3 -> Modificamos el formulario inicial recuperando sus valores:
Aquí tenemos una página igual que la primera, es decir, el formulario del principio, pero en cada campo aparece el valor que introdujo el usuario, con el sistema <INPUT NAME="campo_prueba" value="<%=rs("campo_prueba")%>">.
Lógicamente, si el usuario ha marcado el checkbox al principio, debería de aparecer ahora marcado. Pero... ¿CÓMO SE HACE ESO?
Yo utilizo, porque lo he copiado de otros sitios donde veo que lo hacen así, la siguiente fórmula:
<input type="checkbox" name="wcasilla_verificacion" value="ON" <% if rs("casilla_verificacion") = True then response.write (" checked ") else end if %>>
Se supone que, así, se lee el campo de la BB.DD., se comprueba si es True o False, y, si es True, se añade el valor "checked" a la etiqueta "input".
Pues nada, de esta manera, cada vez que intento acceder a esta página 3 me sale el siguiente error:
"ERROR EN LA PÁGINA
Hay un problema con la página solicitada y no puede ser mostrada.."
He probado de todo: con comillas, sin comillas, poniendo True, poniendo On, poniendo if...<> 0, etc, pero no logro que me funcione de ningún modo.
Ya os digo que he mirado en un montón de sitios, y me he descargado aplicaciones de otras personas en que también usan este sistema, pero a ellos les funciona, claro, y yo no sé por qué. También observo que esto de los checkboxes no se utiliza demasiado, cuando a mí me parecen unos elementos de gran valor a la hora de rellenar una ficha con muchas opciones.
A ver si me podéis decir algo.
Muchas gracias y un saludo.
Moleman.