Contactos de Outlook en Access 2007
Para que la Evas no tenga razón cuando nos achaca que nos prodigamos poco, copio aquí el artículo que publique en El Rincón del experto en enero.
En Access 2007 es muy fácil añadir un botón a un formulario para que se puedan agregar contactos desde Outlook o guardar el registro de nuestro formulario como un contacto de Outlook. Basta con sólo seguir unos pasos.
Generar la tabla
La tabla que usemos para los contactos tiene que tener unas características concretas.
Sin entrar ahora en detalle de cuáles son éstas, la forma más sencilla de conseguirlo es crear la tabla usando la plantilla “Contactos” en “Plantillas de tabla”, en la pestaña “Crear”, grupo “Tablas” de la cinta de opciones.
Generar el formulario
La tabla se genera automáticamente con todos los campos necesarios. Guardamos la tabla como “Contactos” y, pulsando directamente en la opción “Formulario”, también de la pestaña “Crear”, se genera, sin más, un formulario de “Contactos” completo
Generar el código
Ahora debemos crear el código para interactuar con Outlook. De momento, nos centraremos en “Agregar contacto desde Outlook” y luego no habrá más que repetir el proceso para “Guardar como contacto de Outlook”
Pasamos el formulario a la vista “Diseño” y añadimos un botón. Se abrirá la ventana del asistente, pero en esta ocasión no nos sirve de mucho; mejor establecemos las propiedades manualmente.
Le cambiamos el nombre, las propiedades “Título”, “Organización de pies de imagen”, “Imagen” y estilo del fondo para que quede más bonito.
El código irá en el evento clic del botón.
Usar un procedimiento de evento
En la propiedad del botón “Al hacer clic” podemos poner [Procedimiento de evento] y luego en el editor de VBA, crear un procedimiento como éste:
Private Sub btnAgregarOutlook_Click()
DoCmd.RunCommand acCmdAddFromOutlook
End Sub
Usar una macro
El código es tan sencillo, una única línea de código, que parece que no merece la pena usar una macro en su lugar. Sin embargo, una macro incrustada es una buena alternativa, pues en lo sucesivo, al copiar y pegar nuestro botón, también se copia y pega la macro que lleva inrustada.
Si, en vez de seleccionar [procedimiento de evento] en la propiedad “Al hacer clic”, pulsamos sobre el botón con los tres puntos que aparece a la derecha y elegimos el Generador de macros”, sólo tenemos que elegir la acción “Agregar comando” y el comando “Agregar desde Outlook” para crear una macro incrustada que consiga el mismo efecto que con el código DoCmd.RunCommand acCmdAddFromOutlook
Es decir, que para agregar un contacto desde Outlook podemos utilizar el código
· DoCmd.RunCommand acCmdAddFromOutlook
O la macro
- EjecutarComando AgregarDesdeOutlook
Probar la aplicación
Ya sólo nos queda probar. Pasamos a vista formulario, presionamos el botón y Voilá!
Podemos repetir los mismos pasos para el botón “Guardar como contacto de Outlook”, sabiendo que en este caso el código sería:
- DoCmd.RunCommand acCmdSaveAsOutlookContact
Y la macro:
- EjecutarComando GuardarComoContactoDeOutlook
Probar con una tabla distinta
Quizás queramos usar como contactos una tabla que no hayamos generado con la plantilla, por ejemplo, porque estamos aprovechando una aplicación o unos datos antiguos. Si hemos usado una macro, no tenemos más que copiar y pegar los botones en el viejo formulario y, si lo hemos hecho con código, tendremos además que crear el código de los eventos.
Es muy sencillo y en un instante ya lo estamos probando, y… ¡No funciona!
¿Qué está ocurriendo?
Ya habíamos comentado que la tabla debe tener una características concretas que la plantilla nos las daba hechas.
De alguna forma debemos decirle a Outlook qué campos de nuestra tabla se corresponde con cada uno de su plantilla. La forma de hacerlo es creando o modificando para esa tabla la propiedad WSSTemplateID de manera que tenga el valor 105 y, para cada uno de los campos que lo precisen, la propiedad WSSFieldID de manera que indique con qué campo de la plantilla se corresponde.
En el Access Team Blog explican cómo modificar esas propiedades y en mi página hay un complemento para hacerlo fácilmente.
Estas propiedades sirven para más tipos de plantillas que la de contactos. Si su nombre empieza por WSS es porque hacen referencia a plantillas de SharePoint y les vamos a encontrar especial utilidad en este entorno, pero todo eso es ya materia suficiente para tratar en un artículo aparte.
2 Responsesso far
Hola, muchas gracias por esta solución estoy intentando hacer una base de datos que tenga relacionada las fechas de la BBDD con el calendario de Outlook, es decir una cita con un cliente que pueda añadirla directamente en Outlook.
Repito muchas gracias por tu información
Hola soy principiante casi no conozco de programación, pero me podrias dar una idea de como enviar correos desde una base de datos que contenga un folio, nombre y alguna fecha en outlook.