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.

22 comentarios:

Gerardo dijo...

Exelente publicación te felicito!!!

Juan dijo...

Gracias me ayudo en un proyecto

Yumi dijo...

Gracias por la información!. Yo estoy intentando hacer eso pero por medio de Sharepoint, para que se vea en la web, pero no hay manera, no para de decir que no es compatible.

Si alguien me puede ayudar se lo agradecería...

Saludos!

Anónimo dijo...

muchas gracias, sein embargo con explorer 7 encontre la dificultad de que no enviaba los datos a acces esta esta es la solucion:
Panel de control > Opciones de Internet > |solapa Seguridad| > Nivel
personalizado > sección "MIsceláneo" > Activar "Tener acceso a origen de
datos entre dominios". esta casi al final
izabdiel@gmail.com

Anónimo dijo...

estoy realizando este caso con access 2007 e infopath 2007 sin embargo al dar vista previa y capturar informacion y darle enviar me envia un error donde me dice que el acceso esta denegado.. ya busque permisos pero nad podras orientarme

vgarca dijo...

Hola,
en cuanto al error de Acceso denegado on la versión 2007, a mi me pasaba lo mismo, pero lo he solucionado con el comentario de izabdiel:
"Panel de control > Opciones de Internet > |solapa Seguridad| > Nivel
personalizado > sección "MIsceláneo" > Activar "Tener acceso a origen de
datos entre dominios". esta casi al final"

Muchísimas gracias :-),
me estaba volviendo loca!! :-).
Saludos,
Vane.

Anónimo dijo...

Gracias Francisco, me ayudaste un montón... Saludos desde Salta (Argentina) Flor!!!

Anónimo dijo...

Estimado...

Muy buen tuto, pero sabes que realize todo paso a paso, pero me sale este error al tratar de enviar los datos:

La operación debe usar una consulta actualizable.

Ojala puedas ayudarme :(...

Estare atento a respuestas!

Saludos!

kamehb dijo...

Consulta...

Pero es posible enviar los datos a una bd (que en este caso seria access) y luego a cuentas de correo, o tienen que hacerse por separado ?

Saludos =)

Anónimo dijo...

Gracias por la información. Antes de leer esta publicación ya me había creado previamente mi formulario en infopath ¿ya no es posible conectarlo a un bbdd ?

Gracias

Anónimo dijo...

Amigo estuve tratano de hacer tu exemplo pero usando Access 2010 y Infopath 2010 y cuando le doy a enviar me da un error de accesos a la base de datos, que puede estar fallando??

Saludos

ME

Anónimo dijo...

Hola estoy usando la version 2010 de office y no me sale me dice error no se puede enviar el formulario; ya configure opciones de internet y todo a que se debe. gracias de antemano.

Anónimo dijo...

pfff, gracias man me sirvo muxo muxo muxo :P... pero aun tengo un problema, quiero jalar imagenes almacenadas en access a un informe infopath .... alguien tiene alguna remota idea.. por que ya se me acabaron las mias :S

Anónimo dijo...

Gracias muy interesante, lo que pasa es que necesito hacer un formulario estilo factura,insertar los datos básicos de la cabecera que me serviría este ejemplo ya que se guardaría en una sola tabla. Pero para los diferentes productos tengo que asociar a varias tablas, insertar varios productos y actualizar el inventario.
Por favor ayudame

Mwittur dijo...

excelente, me salvaste, no casaba un fulbo, pero ahora si comprendi el manejo. mil gracias, muy buen informe.

Anónimo dijo...

podras ayudarme conla version 2010, hago todos los pasos y funcina bien pero cuando llego al final para enviar me da error, que no se puede enviar por ser un formulario abierto de internet y no se que cosa del dominio. mi mail es alefguimmel@hotmail.com

jesus_ob.A dijo...

Como puedo eliminar y actualizar registros ??
Bueno he intentando hacer consultas para eliminar y actualizar pero lo único que hago es eliminar todo el formulario y pasa lo mismo con el botón de actualizar.

jesusobac@gmail.com

jesus_ob.A dijo...

Como puedo eliminar y actualizar registros ??
Bueno he intentando hacer consultas para eliminar y actualizar pero lo único que hago es eliminar todo el formulario y pasa lo mismo con el botón de actualizar.

jesus_ob.A dijo...

Como puedo eliminar y actualizar registros ??
Bueno he intentando hacer consultas para eliminar y actualizar pero lo único que hago es eliminar todo el formulario y pasa lo mismo con el botón de actualizar.

jesus_ob.A dijo...

Como puedo eliminar y actualizar registros ??
Bueno he intentando hacer consultas para eliminar y actualizar pero lo único que hago es eliminar todo el formulario y pasa lo mismo con el botón de actualizar.

jesus_ob.A dijo...

Como puedo eliminar y actualizar registros ??
Bueno he intentando hacer consultas para eliminar y actualizar pero lo único que hago es eliminar todo el formulario y pasa lo mismo con el botón de actualizar.

jesus_ob.A dijo...

Como puedo eliminar y actualizar registros ??
Bueno he intentando hacer consultas para eliminar y actualizar pero lo único que hago es eliminar todo el formulario y pasa lo mismo con el botón de actualizar.