martes, 4 de noviembre de 2008

Guardar registros en Access desde InfoPath

Este pequeño tutorial permite conectarse desde InfoPath a Microsoft Access sin utilizar código, la funcionalidad máxima es enviar y recibir datos.

Lo primero que vamos hacer es crear nuestra base de datos

- Abrimos Access

- Creamos una base de datos en blanco


- Guardamos la base de datos donde deseemos, en mi caso la guardare en una carpeta llamada "InfoPath Access" y a la base de datos la denominaré "bd.mdb".


- Ahora tenemos que crear la base de datos, por lo tanto seleccionamos crear una tabla en vista diseño.


- Y crearemos nuestros campos


- A modo de ejemplo crearemos 3 campos:
  • [Id] : Llave primaria Auto numérica
  • [Nombre]: Texto
  • [Apellido]: Texto
Nos debiera quedar algo así:

- Luego guardamos la tabla y le ponemos de nombre "Personas"


- Ya tenemos creada nuestra base de datos en Microsoft Access 2003

- Cerramos Access

- Nos vamos a InfoPath 2007 y creamos un nuevo documento basado en Base de datos, como se indica en la imagen:


- Debemos tener presente que para utilizar este tipo de formularios, solo será posible ejecutarlo con InfoPath cliente, es decir, una solución creada para SharePoint con InfoPath Form Service NO funcionará. Debido a esto, la opción "Habilitar solamente características compatibles con el explorador" debe estar des-seleccionada de lo contrario, el ejemplo no funcionará.

Debe estar así

- Luego ponemos aceptar y nos vamos a la configuración de la conexión de datos. presionamos el boton "Seleccionar base de datos"


- Luego seleccionamos "Otro o avanzado" y presionamos Siguiente



- Nos aparecerá un listado de todos los proveedores ole que tenemos instalado en nuestro equipo, debemos seleccionar "Microsoft Jet 4.0 OLE DB Provider". Esto debido a que nos conectaremos a una base de datos Access 2003.


- Presionamos siguiente y debemos seleccionar la base de datos que creamos, para ello ingresamos la ruta del archivo, o si no la conocemos presionamos el botón "..."


- Si presionamos el botón "..." se abrira una ventana en donde buscaremos nuestra base de datos... luego que la encontremos presionamos abrir. (En mi caso la base se llamaba bd.mdb)


- Luego presionamos el botón "Probar Conexión", si todo esta bien, nos deberia aparecer un mensaje indicando que la prueba de conexión fue satisfactoria.


- Presionamos Aceptar y nos aparecerá un listado con todas las tablas que tenemos en nuestra base de datos, seleccionamos la que ocuparemos. En este ejemplo será la tabla "Personas" y presionamos Siguiente

- Y presionamos Finalizar


- Ahora tendremos un listado con los campos que existen en la tabla personas, en nuestro caso [Id],[Nombre] y [Apellido], Ustedes pueden probar las opciones, se puede editar la consulta en vista SQL, agregar tablas, etc... por ahora sólo Presionaremos siguiente.


- Y presionamos Finalizar, Pero OJO, la opción "Habilitar el envío para esta conexión" debe estar seleccionado:


Si esta opción no esta seleccionada, NO podremos guardar registros en la base Access


- Al fin hemos conectado todo, ahora solo nos queda diseñar nuestro formulario, en forma preliminar nos quedará algo así:


- Lo primero que debo hacer arrastrar a mi formulario el grupo "d:Personas" como se ve en la imagen:


- y crearlo como tabla extensible... nos debiera quedar algo así:


- Para no complicarnos con todo lo que se creo en forma automática, borrare todos los botones y secciones que genero InfoPath, quedandome unicamente con la sección en donde ubiqué la tabla extensible.


- Luego creamos 2 botones, el primero, me va a servir para enviar los datos a mi base de datos, y el segundo para consultar por los datos ya existentes.


- Nos vamos a las propiedades del primer botón:


- Y en acción seleccionamos la opción "Enviar"


- Presionamos "Aceptar" y en el segundo boton, de igual forma, ingresamos en propiedades, pero, seleccionamos la acción "Ejecutar consulta"


- Nos quedará algo así:


- Con esto ya podremos guardar datos en Access, ahora vamos a probarlo... Presionamos el botón vista previa.


- Ingresamos datos en los campos Nombre y Apellido, (no ingresamos el Id, ya que se generará en forma automática) y presionamos el botón Enviar


- Se abrira una alerta de seguridad, presionamos Si


- Nos aparecerá una alerta indicando que el formulario se envió correctamente.


- Y si nos vamos a nuestra base de datos, y abrimos la tabla "Personas" veremos que el dato ha sido guardado.


- Podemos modificar, agregar, eliminar simultaneamente nuestro listado de personas, pero sólo cuando presionemos "Enviar" los cambios se efectuarán en la base de datos.


- Si cerramos la vista previa del documento y volvemos a presionar vista previa, el formulario se cargará en blanco. Si lo que deseamos es modificar un dato ya existente o simplemente ver lo que hay en la base de datos, presionamos el botón "Ejecutar consulta"


- Nos aparecera una alerta de seguridad nuevamente. Presionamos "Si"


- Se nos desplegará el listado de datos que tenemos en nuestra tabla en Access.



- Si presionamos el botón Enviar sin haber modificado o creado datos nuevos, nos aparecerá un error, ya que no hemos modificado el formulario y por lo tanto no existe la necesidad de guardar los datos denuevo.


Bueno espero le sirva a alguna persona y aunque no tiene mucho diseño, es una base de lo que se puede hacer.

Si alguien tiene alguna duda, trataré de responder a la brevedad.

Saludos.
Francisco Rojas C.