Formularios en Microsoft Access vía página web
A continuación presentamos, de manera clara y didactica, todos los pasos a seguir para la creacion de un formulario web y su vinculación a una base de datos de MS Access. Esta herramienta es aplicable en múltiples situaciones, utilizada cuando necesitas que diversos usuarios completen una base de datos de manera remota. Especial para la incorporación a paginas Web de la empresa, o creadas excepcionalmente para este uso, como por ejemplo, formularios de concursos para la creación de Costumer Data Base, recopilación de comentarios, sugerencias, quejas, solicitudes de cotizaciones, solicitudes de compra (y delivery).
Para visualizar una abreviación de la presentación, presionar el siguiente link:
Ver vídeo Tutorial formulario web:
La siguiente información que se presentará, tiene relación en ingresar datos a Microsoft Access vía formulario web. Para ésto, primero se explicará lo que son los formularios, para luego mostrar como pueden ser manejados vía web.
¿Qué son los formularios?
Los formularios son objetos de base de datos, que se pueden utilizar para escribir, modificar o mostrar los datos de una tabla o consulta.
Estos formularios pueden realizarse en forma local (MS Access) u Online. Para este caso mostraremos como realizar un formulario de ingreso de datos online a MS Access.
Ingresar datos a formulario vía página web
En los últimos tiempos han surgido herramientas online que facilitan la conexión y manejo de datos. Una de estas herramientas son los formularios web.
¿Qué es un formulario web?
Los formularios web son un tipo de formulario, que se visualiza en un navegador, que por medio de Internet, se pueden rellenar los datos requeridos en el formulario, los cuales son procesados en un servidor e ingresados en la base de datos correspondiente.
Los formularios web, tienen distintas opciones de lenguaje para gestionar la información del formulario, los cuales se ejecutan en el servidor web, permitiendo así, ingresar la información a la base de datos, asegurar el ingreso obligatorio de ciertos datos, utilizar los datos para busqueda, etc. Estos lenguajes pueden ser PHP, ASP, Java, Perl, entre otros.
A continuación mostraremos los pasos a seguir para poder ingresar datos a MS Access vía formulario web, ejemplificando en relación al ingreso de datos de clientes.
¿Qué se necesita para ingresar datos MS Access desde una página web?
1.- Base de datos: en el ejemplo será una base de datos que almacena información de clientes.
2.- Dos Páginas formato ASP: la primera página será para incorporar los datos relacionados con la visualización del formulario web la cual será llamada formulario.asp, y la segunda página,la cual será llamada addcliente.asp, contendrá los códigos que permitan gestionar la información ingresada en el formulario web, e ingresar en el ejemplo, la información de los clientes en la base de datos
Paso 1: Creación y configuración de la base de datos Access
Se crea la base de datos la cual tendrá el nombre de miprimerabase.mdb, luego se genera la tabla Clientes, donde su primer atributo es de tipo auto-numérico, y el resto, de tipo texto.
Paso 2: Creación página formulario web
Para el formulario web, utilizaremos la primera pagina con formato ASP (formulario.asp). En este caso, creamos un documento en blanco con Bloc de Notas o Notepad++, y se genera el siguiente código:
<html>
<head> <title>Formulario</title> |
Encabezado y nombre de la página
|
<!--
p { margin-top: 0; margin-bottom: 0 } input { font-family: Arial; font-size: 8pt; height:20; } textarea { font-family: Arial; font-size: 8pt; } --> </style> </head> |
Definición de Estilos de la página, en este caso
se especifica los valores de P (salto de línea en html), el tipo de letra y
tamaño que se utilizaran al momento de ingresar los datos (input) y lo mismo
para el área de texto libre (textarea) donde finalmente se recibirán los
comentarios.
|
<body>
<p><font face="Arial" size="6">Formulario</font></p> |
Definición del Título de la Página y sus estilos
asociados
|
<%
if request.querystring("Mensaje")=2 then %> <p align="center"><b><font color="#FF0000" face="MS Sans Serif" size="1"> El mensaje no ha podido ser publicado debido a que uno o más campos obligatorios se encontraban vacíos.<br> Por favor, intenta nuevamente.</font></b></p> <% end if%> |
Esta sentencia define que si Mensaje =2 la página
mostrará el mensaje definido, este dato es enviado por la página que valida y
guarda los registros en la base (addmensaje.asp)
|
<div
align="center">
<center> <form method="post" action="addmensaje.asp"> <table border="0" cellpadding="2" cellspacing="2" width="80%"> <tr> <td width="21%" align="right"> <p align="right"><font face="Arial" size="2">Nombre:</font></td> <td width="79%" align="left" height="18"> <input type="text" name="Nombre" size="20"><font face="Arial" size="2"><b>*</b></font></td> </tr> <tr> <td width="21%" align="right"> <font face="Arial" size="2">País:</font></td> <td width="79%" align="left"> <input type="text" name="Pais" size="20"></td> </tr> <tr> <td width="21%" align="right"> <font face="Arial" size="2">E-mail:</font></td> <td width="79%" align="left"> <input type="text" name="email" size="37"><font face="Arial" size="2"><b>*</b></font></td> </tr> <tr> <td width="21%" align="right"> <font face="Arial" size="2">Sitio Web:</font></td> <td width="79%" align="left"> <input type="text" name="url" size="37" value="http://"></td> </tr> <tr> <td width="21%" align="right"> <font face="Arial" size="2">Asunto:</font></td> <td width="79%" align="left" height="13"> <input type="text" name="Asunto" size="37"><font face="Arial" size="2"><b>*</b></font></td> </tr> <tr> <td width="21%" align="right"> <font face="Arial" size="2">Mensaje:</font></td> <td width="79%" align="left"> <textarea rows="4" name="Mensaje" cols="39"></textarea><font face="Arial" size="2"><b>*</b></font></td> </tr> <tr> <td width="21%" align="right"> </td> <td width="79%" align="left"> <font face="MS Sans Serif" size="1" color="#FF0000"><b>*</b> campo obligatorio</font> |
El siguiente segmento de código “dibuja” el
formulario con los campos definidos (igual a los de la base de datos).
Todo lo que se encuentra dentro de la etiqueta
<form method="post"
action="addmensaje.asp"> es parte del formulario y la acción del
botón “GUARDAR”, la cuál en este caso enviará, mediante el método post, todos
los registros ingresados a la página “addmensaje.asp”, la cuál guardará los
registros en la base de datos.
|
<p><input
type="submit" value="GUARDAR"></td>
</tr> </table> </center> </div> </body> </html> |
Crear el botón “Guardar” y le asigna la función
submit, la cuál esta definida en la etiqueta form (envía los registros a
“addmensaje.asp”.
|
El formulario web se visualizará de la siguiente forma:
Paso 3: Creación página de registro
Para este paso, se creará la segunda página formato asp, que contiene códigos relacionados a la gestión y procesamiento de la información ingresada en el formulario. Esta página será encargada de procesar el formulario anterior y agregar los clientes a la base de datos.
La página mencionada, debe ser creada copiando el siguiente código ( es importante mencionar que el código otorgado sirve como base, y es necesario cambiar ciertos nombres de atributos y bases de datos, para adaptarlas en otras situaciones):
<%
Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 |
En este segmento del código se definen las
propiedades del objeto RecordSet (es el que permite la interacción de las
páginas web con las bases de datos), para mas detalles ver:
http://www.asptutor.com/asp/vart.asp?id=5
|
Nombre =
request.form("Nombre")
Pais = request.form("Pais") email = request.form("email") url = request.form("url") Asunto = request.form("Asunto") Mensaje = replace(request.form("Mensaje"),chr(10),"<br>")
if
url="http://" then
url = "" end if |
Captura los registros de cada uno de los campos
definidos en el formulario (formulario.asp).
En el campo de Mensaje adicionalmente se está
realizando un remplazo de texto ingresado, por el mismo texto sin salto de
líneas.
Por último se realiza la validación del dato
ingresado en el campo URL, si es igual al sugerido http://
lo toma como vacío.
|
if Nombre="" or
email="" or Asunto="" or Mensaje="" then
response.redirect "formulario.asp?Mensaje=2" |
En estas líneas se valida que los campos no estén
vacíos, en caso de que alguno no tenga datos, se realizará un
redireccionamiento a la página formulario.asp, que desplegará el mensaje
definido
|
else
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("libvis.mdb")) set rs=createobject("ADODB.Recordset") rs.CursorType = adOpenKeyset rs.LockType = adLockOptimistic rs.open "mensajes",conn rs.addnew |
Si todo esta OK, no hay campos vacíos, entonces
se realiza la conexión con la base de datos y se abran los correspondientes
recorset, que realizarán el registro de los datos en la base de datos.
|
rs("Nombre")=Nombre
rs("email")=email rs("Pais")=Pais rs("url")=url rs("Asunto")=Asunto rs("Mensaje")=Mensaje rs("Fecha")=Date() rs.update rs.close response.redirect "formulario.asp" end if %> |
A cada campo se le asigna el dato del registro
rescatado desde formulario.
En esta línea se especifica la acción UPDATE, que
graba el registro en la base de datos, en la siguiente se cierra la conexión
con la misma.
El response redirect permite que una vez
realizada la acción se devuelva a la página anterior (o cualquiera)
|
¿Cómo funciona?
Se debe subir a una página de internet las 2 páginas web creadas, que están ligadas a la base de datos. Al recoger los valores del formulario en variables, se comprueba si los atributos están vacíos. Si lo están, se redirige al usuario a la página inicial para que lo complete nuevamente.
Limitantes
- Es necesario configurar un servidor de forma previa para poder realizar de forma efectiva la actualización de la base de datos por medio del formulario web
- La seguridad de los datos se ve afectada, ya que cualquiera que tenga acceso al formulario puede agregar datos que no sean fidedignos.
- Por otro lado, es necesario limitar los campos de acceso, es decir, mantener atributos obligatorios enlazados con la BD, para evitar el ingreso de datos vacíos.
- Por último, a pesar de que hemos mostrado un código base, se hace engorroso el proceso de adaptarlo a otras bases de datos, ya que hay que tener cuidado en maximizar la congruencia entre los atributos.
Autores:
-Julio Acevedo Huerta
-Natalia Rivera Cañas
-Jethro Santis
-Luis Vergara
-Jethro Santis
-Luis Vergara
mencionan un archivo llamado addmensaje.asp
ResponderEliminarhay que crearlo también?