Correo electrónico a través de navegador desde access 2007

En realidad, esto no es una pregunta. Lo que deseo, es agradecer una vez más vuestra ayuda y comentar la solución que le di al problema que planteaba por si puede servirle a alguien. Siento haber tardado tanto en conectarme. He estado buscando soluciones y no lo he conseguido. Como el hilo que inicié está ya cerrado, y aunque no es la forma más ortodoxa de hacerlo, os comento aquí la solución que le he dado al problema. Explico muy por encima el caso para ponernos en situación:

Estoy realizando una aplicación Access para mi trabajo. La idea es la de introducir datos a través de formularios. Eso está conseguido. Ahora bien, mis jefes pretenden que, en el caso de que un pedido no esté completo, podamos enviar, desde la misma aplicación, un email al interesado comunicándoselo.

Creé un formulario llamado frmPedidos (basado en la tabla correspondiente y que arrastra los datos personales del cliente, introducidos en otro formulario, - incluido el correo electrónico-) de tal forma que, en un cuadro de texto (llamado txtincompletos y que está oculto, no visible) recogiera los datos de los productos que no podíamos servir. Una vez hecho esto, parece sencillo. Se coloca un botón de comando cmdenviar que envíe un correo con los datos de ese textbox. Pues... ¡Va a ser que no!. En mi trabajo se utiliza IBM Lotus iNotes, y, a pesar de toda la ayuda recibida de Sveinjbor, Jacinto Trillo e Ismael Gonzalez (que tuvo la amabilidad de enviarme un correo con una función para poder hacerlo), Access me lanza siempre el siguiente mensaje de error: "El componente ActiveX no puede crear el objeto". El problema, por lo que he podido averiguar, es que falta una referencia o librería llamada "Lotus Domino Objects". Por lo que he leido, bastaría con instalarla, pero, a pesar de tener el programa original y pagar la licencia correspondiente (no es un programa pirata), mis jefes no están dispuestos a instalar nada más ("De ninguna manera" -dijeron)

Bien, puesto que el texto a enviar a través del correo ya lo tenemos en el textbox txtincompletos (esto lo hice a través de sentencias Select Case, si interesa a alguien, me lo decís y os explico como...) no parece razonable tener que abrir el correo y teclear todo una vez más.

Lo que he hecho ha sido, como dicen en mi tierra "Tirar por la calle d'el medio" (lo dicen así, os lo prometo...) He creado un nuevo formulario llamado frmenviar (ojo, importante, el formulario ha de ser modal y emergente) con tres botones de comando, a saber: cmdcargaemail, cmdcargaasunto y cmdcargabody. Además, tiene tres textbox, txtemail, txtasunto y txtcuerpo. Además, hay un textbox llamado txtactivabotón (valor predeterminado = 0) y otro textbox llamado instrucciones con un valor predeterminado que reza: "Pulsa sobre 'Carga Correo Electrónico' (es el título que le he dado al botón de comando cmdcargaemail) . Abre tu correo, sitúa el cursor en el campo 'para'. Haz click en el botón derecho del ratón y selecciona 'Pegar'. Vuelve a Access (pulsando sobre su icono en la barra de tareas) y pulsa sobre el siguiente botón activo. Repite el procedimiento hasta completar el Correo Electrónico."

Una vez hecho esto, en el procedimiento de evento del cmdenviar del formulario frmPedidos pongo el siguiente código :

DoDmd. Openform "frmenviar"
Forms!frmenviar!txtemail = Forms!frmPedidos!email
Forms!frmenviar!txtasunto = "Comunicación Pedido Incompleto"
Forms!frmenviar!txtcuerpo = "Estimado/a Sr/a... "
'configuro el texto del mensaje de correo electrónico
Forms!frmenviar!cmdcargaasunto.enabled = false
forms!frmenviar!cmdcargabody.enabled = false
'con esto me aseguro de evitar que se pulsen los tres botones seguidos...

Una vez hecho esto, lo siguiente es poner el código en los botones de comando (en el evento "al hacer click") del formulario frmenviar de la siguiente manera:

Botón cmdcargaemail

Txtemail. SetFocus
RunCommand acCmdCopy
txtactivaboton = 1
DoCmd.GoToControl "instrucciones"

Este código lo repetiremos en cada uno de los botones de comando, sustituyendo lo que proceda, es decir, en lugar de "txtemail.SetFocus", escribiremos "txtasunto.SetFocus"... y, claro, en lugar de "txtactivaboton = 1", escribiremos "txtactivaboton = 2" o "txtactivaboton = 3".

Por último, en el control "instrucciones", en el evento "Al recibir el enfoque" escribiremos:

 If txtactivaboton = 0 Then
     cmdcargaemail.enabled = true
     cmdcargaasunto.enabled = false
     cmdcargabody.enabled = false
 ElseIf txtactivaboton = 1 Then
     cmdcargaemail.enabled = false
     cmdcargaasunto.enabled = true
     cmdcargabody.enabled = false
 ElseIf botonesactivos = 2 Then
     cmdcargaemail.enabled = false
     cmdcargaasunto.enabled = false
     cmdcargabody.enabled = true
 ElseIf botonesactivos = 3 Then
     docmd.close acform, "frmenviar"
 End If

De este modo, nos aseguramos de que nadie pueda pulsar los tres botones seguidos. Al terminar, se cerrará el formulario creado para enviar el correo (eso sí, después hay que cerrar manualmente la aplicación de correo electrónico...).

Y esto es todo. Pido perdón una vez más. En primer lugar por el retraso a la hora de comentar todo esto. En segundo lugar, por no saber cómo comentarlo sin necesidad de hacerlo como si fuera una pregunta (que, obviamente no lo es...) Y sobre todo, por lo mal que me he explicado. Sigo el foro hace ya mucho tiempo, y siempre pensé que debía resultar fácil responder a una pregunta... ¡No lo es! Por eso me disculpo por lo mal explicado que está.

Perdón, una vez más, por colgar esto como si fuera una pregunta. Simplemente deseaba colaborar, y, puesto que no sé cómo hacerlo...

Añade tu respuesta

Haz clic para o