Buscar en este blog

Cargando...

Eliminar Mensaje Un Programa esta intentando enviar correo en su Nombre en Access 2010 y 2007

Este mensaje "Un programa esta intentando enviar un correo en su Nombre" o tambien aparece como "a program is trying to send an e-mail on your behalf" , este mensaje aparece cuando en nuestra aplicacion de Access 2007 ó 2010 tenemos una Boton de Enviar Correo ó mediante una Macro que intenta mandar un correo, sin embargo lo que nosotros deseamos es que nuestra aplicacion de Access sea capaz de mandar correos de forma automatica (obvio sin que este mensaje nos aparezca y tengamos que que darle click en allow o permitir)
Hay una manera de hacer que este mensaje ya NO aparezca mas y que al darle click al boton ENVIAR CORREO o al ejecutar nuestras macros que envian correos, se envien de forma automatica sin que nos aparezcan estos molestos mensajes.

Esto nos llevara unos sencillos pasos que a continuacion explicare en una aplicacion de muestra:

Necesitamos algunos requisitos previos:


  • Nuestro office puede ser 2010 32 o 64 bits (funciona con ambos), Tambien funciona con Access 2007
  • Nuestro Outlook debe estar ya configurado y en uso normal
  • Usted debe poseer una cuenta de administrador para hacer ciertos ajustes

PASO1: CONFIGURAR OUTLOOK (Necesitara permisos de administrador en el equipo)

Desde el boton inicio de Windows ir hasta el Icono de Outlook y Oprimiendo la tecla SHIFT + Click Derecho del Mouse Accesar a este submenu, notese que debe la opcion Ejecutar como Administrador ó "Run as Administrator", Luego hacer click en esta opcion





Despues de hacer click en esta opcion, nos va a aparecer este mensaje, al cual le damos click en YES













Dentro de Outlook, vamos a la primer pestaña [Archivo] ó "File" y damos click en Opciones "Options"



















Nos va a aparecer la ventana de Opciones de Outlook "Outlook Options" y damos Click en la Seccion Centros de Confianza "Trust Center" y luego hacemos Click en el Boton Ajustes del Centro de Confianza "Trust Center Settings" tal como se muestra en la imagen


Luego nos aparece la Ventana de Centros de Confianza "Trust Center", vamos a la seccion Programmatic Access y hacemos click en la ultima opcion , como se muestra en la imagen, luego hacemos click en el boton OK y asi tambien al resto de las ventanas abiertas en esta configuracion.













¡LISTO! Ya hemos configurado nuestro Outlook


PASO 2: CONFIGURAR NUESTRO PROGRAMA DE ACCESS

Primero Abrimos nuestro programa de Access y hacemos click a la pestaña Herramientas de Bases de Datos "Database Tools" y luego hacemos click en el icono del Editor de Visual Basic, como se muestra en la imagen





















Ahora nos va a aparecer el Editor de Visual Basic, ahora dentro del editor vamos a menu Herramientas "Tools" y elejimos la opcion Referencias "References..." , como se muestra en la imagen
























En la ventana de Referencias buscamos la referencia que se llama  "Microsoft Outlook 14.0 Object Library" y la marcamos, como se muestra en la imagen y pulsamos OK,,, si no la encuetras en la lista buscala en la ubicacion que tiene (esta marcada en amarillo)





























Agregar Tambien la referencia "Microsoft Access 14.0 Object Library" y marcarla

si no lo encuentras en la lista ayudate con su ubicacion que esta marcada en amarillo de esta imagen de abajo.






























¡LISTO! Ya terminamos de configurar el Editor Visual Basic de Access


PASO 3: IMPORTAR LOS OBJETOS NECESARIOS PARA LA AUTOMATIZACION DE CORREOS.

Ya en tu Aplicacion, donde hayas hechos los ajustes previos (paso1 y paso2) tambien vas a necesitar importar los siguientes objetos que estan la base de datos de ejemplo:


TABLAS: (DirectorioDeReportes, OutLookUsuario, ReportesPorDestinatarios)

FORMULARIO: (REPORTES) Formulario de Ejemplo

MACROS: (mcrEnviarCorreoAutomatico, mcrEnviarCorreoNormal)

MODULO: (AutoEmails) NOTA: El contenido de este modulo NO DEBE SER ALTERADO

Tambien hay otros objetos que sirven para la demostracion del ejemplo: TABLA(unidades), REPORTE (rptUnidades), claro que estos pueden ser sustituidos por tus propio objetos de tu propia base de datos.



























Ahora veamos para que nos van a servir cada uno de estos objetos...

La Tabla "DirectorioDeReportes", es un dato unico donde vamos a colocar el directorio de nuestro disco o red, donde queramos que los reportes sean exportados de forma temporal







La Tabla "OutlookUsuario", es un dato unico y sera precisamente la cuenta de correo que tengamos configurado en nuestro Microsot Outlook, para verificar tu cuenta de correo configurada dentro de outlook, lo unico que debes hacer es abrir tu Outlook e ir al Menu - Arhivo [FILE] y luego seleccionar Informacion [INFO] y te mostrar tu cuenta de correo configurada dentro de outlook, asi como se muestra en la imagen




Ahora escribe tu cuenta de correo en la tabla OutLookUsuario...









La Tabla "ReportesPorDestinatarios", son registros que indica a cuantos destinatarios va a ser enviado un reporte en particular, por ejemplo aqui 2 destinatarios reciben el mismo reporte rptUnidades, aqui en esta tabla pueden ser agregados mas reportes con sus respectivos destinatarios,







Lo ultimo que necesitamos saber es como crear la macro que envia los correos sin que aparezcan los avisos de advertencia de microsoft outlook, en esta macro necesitamos agregar 4 importantes acciones (ver imagen abajo)

- SetWarnings
- SetTempVar
- ExportWithFormatting
- RunCode

Para SetWarnings el valor por defecto sera NO

Para SetTempVar,,, tal y como se muestra en la imagen (no debemos cambiar nada)

Para ExportWithFormatting, aqui si sera necesario colocar que objeto de nuestra base de datos vamos a enviar en nuestro correo, este puede ser una tabla, consulta (siempre y cuando no sea dinamica, que requiera algun parametro), reporte (siempre y cuando tampoco se dinamico, que requiera algun parametro dado por el usuario). Aqui vamos colocar el tipo de Objeto, El nombre del objeto, y salida del archivo (aqui solo vamos a cambiar UNIDADES por el nombre que tenga nuestro objeto)

Para RunCode vamos a usar la siguiente Funcion que se encuentra dentro de nuestro modulo "AutoEmails"
Esta seria la manera de usar la funcion....

Sintaxis:

sendemail("NombreDelReporte","Asunto","Mensaje","UbicacionDeNuestroArchivoAdjunto")

en nuestro ejemplo esta de la siguiente manera

sendemail ("rptUnidades","Reportes de Unidades","ver archivo adjunto",TempVars!MDir &"UNIDADES_"& Format(date(),"mmddyy") & ".pdf")

Donde:

-"rptUnidades" es un nombre cualquiera para identificar un reporte.
-"Reporte de Unidades", es asunto del correo
-"ver archivo adjunto", es el mensaje en el cuerpo del correo
-TempVars!MDir &"UNIDADES_"& Format(date(),"mmddyy") & ".pdf"             Es la cadena donde esta ubicado nuestro archivo,,, AQUI SOLO CAMBIAREMOS LO QUE ESTA MARCADO EN AMARILLO, que es el nombre del archivo adjunto. Lo que esta marcado en NARANJA es el tipo de archivo que seleccionamos a exportar, puede ser .xlsx, pdf , rtf     esto hay que cambiarlo segun el formato seleccionado dentro de la macro y la accion  ExportWithFormatting - Output Format
























De esta manera configuraremos todas nuestras Macros donde se envien los Correos Automaticos.


Ahora Veamos en el Video como Funcionan estos cambios en la Aplicacion de Ejemplo:
DESCARGA ESTA APLICACION DE EJEMPLO AQUI

7 comentarios:

  1. Muy recomendable!!! Tuvimos que hacer algunos pequeños ajustes y en todo momento tuve una respuesta y soporte inmediatos. Una solución para este fastidioso problema! :0)
    Horacio

    ResponderEliminar
    Respuestas
    1. Gracias por tu confianza al programa de solucion propuesto en este blog, saludos!

      Eliminar
  2. Excelente ejemplo, además te dan una pronta respuesta cuando pides ayudas. Gracias.

    ResponderEliminar
  3. En Access 2010 me dice que el Nombre de Expresion sendemail no se encuentra.
    ¿le falta algo a mi access?

    Muchas Gracias.

    Enhorabuena por la Web, tiene articulos y archivos de descarga realmente interesante.

    ResponderEliminar
    Respuestas
    1. Todo lo que necesitas se encuentra en la aplicacion de Ejemplo, saludos!

      Eliminar
  4. Estimado arturo, está muy buena la información, ahora me salta una duda. que pasa cuando uno usa el runtime de access ¿como puedo activar la librería?

    saludos

    ResponderEliminar
    Respuestas
    1. Necesitas el software de access para hacer esta implementación.

      Eliminar

Entradas populares