Access y O.E. V.5

Necesito enviar desde y con V.B.A un correo adjuntando un archivo que este en el H.D.
He probado varios procedimientos pero ninguno me funciona o lo
1

1 Respuesta

11.775 pts.
Si tienes los objetos Microsoft MAPI Message y MAPI Session es relativamente sencillo y además utiliza el Outlook Express por debajo suyo. Si las tuvieras instaladas primero abre una session:
MapiSession. SignOn
mapiSession.DownLoadMail = False
MAPIMessages1.SessionID = mapiSession.SessionID
Luego para enviar solo tienes que rellenar las propiedades de MAPIMessage:
MAPIMessages1.Compose
MAPIMessages1.RecipDisplayName = "Jose Miguel"
MAPIMessages1.RecipAddress = "[email protected]"
MAPIMessages1.MsgSubject = "TAREA"
MAPIMessages1.MsgNoteText = "Texto"
MAPIMessages1.AttachmentType = 0
MAPIMessages1.AttachmentPathName ="C:\archivo"
MAPIMessages1.Send False
Ese es el problema, que no se donde están.
Ejecuto tu código, donde previamente he declarado
Dim MapiSession As Object
Dim MAPIMessages1 As Object
Y situándose en
MapiSession.SignOn
Me da el error siguiente:
Error 91, la variable del objeto o la variable del bloque With no está estableciada
¿Cómo sigo?
Un saludo,
McPegasus.
¿Tienes el Visual Basic instalado? Si lo tienes encontraras las MAPI como objetos ActiveX, es decir igual que en un formulario pones un botón de comando o un campo de texto, en más herramientas te saldrán Microsoft MAPI Sessio y MAPIMessage. Si no tienes instalado el Visual Basic y tienes posibilidad de instalarlo pruébalo, si no tienes posibilidad entonces deberás insertar los objetos Activex llamados OutlooK Express que son 4 o 5 controles (Se registran en tu sistema cuando instalas el OE). Sinceramente no he trabajado con ellos pero si quieres mañana cuando vaya a la oficina te lo hecho un vistazo y veo si puedo guiarte.
Lo que si debes ver es que utilizando unos ActiveX u otros siempre tendrás que acudir a ellos para el fin el cual te propones. Por lo tanto no te hará falta declarar ninguna variable tipo object ni de ningún tipo ya que los controles ActiveX estarán en tu formulario ( de manera transparente para el usuario), e igual que llamas a un campo de texto txtCampo1, pues he llamado a ambos controles por un nombre que hacen referencia a ellos. Por eso te sale el error 91 por que esa variable no hace referencia a ningún objeto en concreto o bien este no esta creado. Es la ventaja de los ActiveX, los pones en el formulario y andando... ;-)
Saludos.
PD:Si quieres info sobre los controles del Outlook Exress dímelo, pero no creo que trabajen muy diferentes de los MAPI.
Ya tengo registrado Microsoft MAPI Controls 5.0 (MAMAPI32.OCX) y de echo en el examinador de objetos sale MSMAPI con las clases y miembros.
1- Pero me sigue dando error: No se ha definido la variable y se sitúa en MapiSession.SignOn
Y tengo el código que tu me enviaste:
Function Prueba4()
MapiSession.SignOn
MapiSession.DownLoadMail = False
MAPIMessages1.SessionID = MapiSession.SessionID
'Luego para enviar solo tienes que rellenar las propiedades de MAPIMessage:
MAPIMessages1.Compose
MAPIMessages1.RecipDisplayName = "Jose Miguel"
MAPIMessages1.RecipAddress = "[email protected]"
MAPIMessages1.MsgSubject = "TAREA"
MAPIMessages1.MsgNoteText = "Texto"
MAPIMessages1.AttachmentType = 0
MAPIMessages1.AttachmentPathName = "C:\archivo"
MAPIMessages1.Send False
End Function
2- Cuando utilizo el ActiveX en el formulario, también me da un error de que esta vacío o algo así.
Se que vamos bien y en breve lo solucionaremos. Agradezco tu paciencia y ayuda. No dudes en pedirme tu algo en caso de necesitarlo.
Si alguna vez bienes por Valencia, tienes una horchata pagada.
Un saludo,
McPegasus
Te da el error porque el nombre de los ActiveX que tienes el formulario, no corresponden a los que te di yo. Es decitr que tu cuando pones los MAPI en el formulario les pone un nombre tal como ActiX... o algo similar. Ves a nombre de los ActiveX i poneles el nombre que luegos en el código hace referencia...
Tu lo has dicho, vamos por buen camino...
Te escribo para saber si te funciona, que espero que si. En todo caso si no quieres o necesitas que te resuelva ningún otro problema relacionado, por favor finaliza las preguntas... ¿de acuerdo?
Disculpa por no indicarte nada, pero tengo otro asunto de trabajo importante.
Pues no me funciona. No me deja pegar el controlX, me indica que no estoy registrado.
Pero si tengo el .ocx en las referencia.
¿Estoy desesperado?
Si no te importa, te puedo enviar directamente el .mdb donde solo esta el formulario y le echas un vistazo.
¿Te parece?
Muchas Gracias por tu paciencia.
McPegasus
Muy bien. Incluso te daré una utilidad par registrar dll y ocx en tu PC. Envíamelo [email protected] Saludos.
El interés ha sido fantástico, pero la solución no me ha funcionado o yo no he sabido aplicarla.
No veo en la lista de Valoración, ningún comentario que puede indicar esto.
El que una persona no te llegue a resolver un asunto, no tiene por que ser:
"Muy Mal. Horrible" o "Regular. Podría haber puesto más interés".
Sencillamente:
"No se ha encontrado solución".
McPegasus, 22/12/2000
Feliz Navidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas