Valores de TextBox y Combobox en el mensaje de un mail

Recurro de nuevo a este excelente recursos de conocimientos para despejar una duda que es la siguiente :

tengo una BD acces con un formulario el cual al presionar X boton envia un mail (modulo de por medio) , mi problema surge que al momento de enviar el mail no puedo lograr que tome datos del formulario , cuando pondo en el .body = "Aviso de Planificación de Viaje Seguro", "En el dia de la fecha el Interno " & Me.cbox_Interno.Column(1) & " con los operarios " & Me.Cbo_Conductor & " y " & Me.Cbo_Acomp & " realizara un " & Me.txtViaje & " aprobado por " & Me.Cbo_Aprueba & "  , me dice que la palabra la ME. No es valida ...dejo el codigo a continuacion .- 

Probé con docmd. Sendobject pero por más que ponga false me sigue apareciendo outlook, la idea es que envíe el mensaje directamente sin que se vea nada, con el código de abajo lo hace pero no me toma los valores cosa que con docmd. Sendobject si lo hace pero tengo que enviarlo casi manualmente.- Saludos y gracias de antemano

Sub SendMessage(Optional AttachmentPath)
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application")

' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)

With objOutlookMsg
' Add the To recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("[email protected]")
objOutlookRecip.Type = olTo

' Add the CC recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("[email protected]")
objOutlookRecip.Type = olCC

' Set the Subject, Body, and Importance of the message.
.Subject = "Aviso de Planificación de Viaje Seguro"
.Body = "En el dia de la fecha el Interno " & Me.cbox_Interno.Column(1) & " con los operarios " & Me.Cbo_Conductor & " y " & Me.Cbo_Acomp & " realizara un " & Me.txtViaje & " aprobado por " & Me.Cbo_Aprueba & " & vbCrLf & vbCrLf"
.Importance = olImportanceHigh 'High importance

' ' Add attachments to the message.
' If Not IsMissing(AttachmentPath) Then
' Set objOutlookAttach = .Attachments.Add(AttachmentPath)
' End If

' Resolve each Recipient's name.
For Each objOutlookRecip In .Recipients
objOutlookRecip.Resolve
If Not objOutlookRecip.Resolve Then
objOutlookMsg.Display
End If
Next
.Send

End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub
Con este logro que envíe como yo quiero pero no puedo evitar que se vea el outlook o lo tengo que enviar casi manual o me salta un cartel de permitir, denegar etc.

('DoCmd.SendObject acSendNoObject, , acFormatRTF, "[email protected]", , , "Aviso de Planificación de Viaje Seguro", "En el dia de la fecha el Interno " & Me.cbox_Interno.Column(1) & " con los operarios " & Me.Cbo_Conductor & " y " & Me.Cbo_Acomp & " realizara un " & Me.txtViaje & " aprobado por " & Me.Cbo_Aprueba & ", False, False")

1 respuesta

Respuesta
2

Normalmente cunado te marca un error en el Me., es porque en alguna parte del código de tu BD (no necesariamente en el mismo procedimiento o módulo) tienes algo mal escrito. Vete al editor de VBA, menu Depuracion -> Compilar ... y corrige los errores que te salten.

Por otro lado, cuando usas automatización de Outlook, si pones .Display (objOutlookMsg. Display), te mostrará el mensaje antes de enviarlo. Si lo cambias por .Send, te lo envía directamente.

¡Gracias! Voy a revisar el código nuevamente, lo extraño que con el modulo que por más que diga display no lo muestra lo envía directo, y en el cuerpo del mensaje no me deja insertar datos del formulario (me.xxxx), caso opuesto el DoCmd.Sendobject que si me toma los datos pero siempre muestra el outlook y prácticamente lo envío manual... Muchas gracias por la respuesta !

sigue marcando el error en el Me. cuando utilizo la herramienta depuracion/compilar..

Una cosa: el código ese, ¡¿Dónde lo tienes? ¿En un módulo de formulario o en un módulo estándar? Porque si lo tienes en uno estándar, no puedes usar Me. Porque no hace referencia a nada (y de ahí el error). Para hacer referencia a un formulario, has de usar la sintaxis completa:

Forms! NombreFormulario. NombreControl

Forms("NombreFormulario"). NombreControl

...

Y aunque no creo que sea el problema, comprueba si te falta alguna referencia (Editor de VBA -> Herramientas -> Referencias, y comprueba que ninguna de las que tengas activas ponga "(Falta)"

¡Gracias! Muchísimas gracias me estaba haciendo falta la referencia al formulario...

Forms("NombreFormulario"). NombreControl

Solucionado !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas