Word, Outlook y vb6 ...

08/02/2011 - 15:42 por Calcu | Informe spam
Pues eso, que una vez desarrollada toda la aplicacion, me toca ponerla
"bonita"..., tengo un reporte que se dbe enviar por correo electronico y la
manera que he pensado es:

1.- tengo un formulario de Word, con sus campos a rellenar.
2.- lo abro con vb6, lo relleno con los registros del programa y lo guardo
como Html
3.- lo abro con outlook e intento embeberlo.

y el resultado deberia ser un email con mi formulario incrustado en él, pero
no... o no salen todas las imagenes o no incrusta nada... alguna idea?, o
alguna manera mejor de hacerlo?

un poco de codigo, a ver si veis algo raro!


'verificar que no este abierto el documento

Set MSWord = GetObject(, "Word.Application")
If Err <> 0 Then
Err.Clear
Set MSWord = CreateObject("Word.Application", "")
MSWord.Visible = True
Else
If MSWord.Visible = False And MSWord.Documents.Count > 0 Then
MSWord.Visible = True
End If
End If

Dim Doc As Object
Dim DocFound As Boolean, NumDoc As Integer
DocFound = False
For Each Doc In MSWord.Documents
DoEvents
If "F:\" & Doc.Name = "F:\Pentatrans Modelo.doc" Then
DocFound = True
Exit For
End If
Next Doc

NumDoc = MSWord.Documents.Count

If DocFound = False Then
'MSWord.Application.WindowState = wdWindowStateMaximize
MSWord.Documents.Open "F:\Pentatrans Modelo.doc", , True
Else
If MSWord.Application.WindowState = wdWindowStateMinimize Then
MSWord.Application.WindowState = wdWindowStateMaximize
End If
End If

Abro mi bdd y relleno:

If Rs.State = 1 Then
Rs.Close
End If

Tabla = "EXPE" & Anyobus
Sql = "SELECT * FROM " & Tabla & " WHERE NUMEXPE = " & Text1.Text
Rs.Source = Sql
Rs.Open , BCN, adOpenDynamic, adLockOptimistic

If Rs.EOF = True Then
MsgBox "Expedicion no existe"
On Error GoTo 0
Exit Sub
End If

MSWord.ActiveDocument.ActiveWindow.Document.FormFields("Numexpe").Result
= Text1.Text
.

MSWord.Activate
MSWord.ActiveDocument.SaveAs "C:\Formulario1.htm", wdFormatHTML

MSWord.Quit False
Set MSWord = Nothing

DoEvents

ahora nos metemos con el outlook

Dim objOutlook As Object
Dim objEMail As Object

Set objOutlook = GetObject(, "Outlook.Application")
If objOutlook Is Nothing Then Set objOutlook =
CreateObject("Outlook.Application")

Set objEMail = objOutlook.CreateItem(0)

With objEMail
.Subject = "Incidencia : " & Text1.Text
.Attachments.Add "c:\Formulario1.htm", olEmbeddeditem
.Display
End With

Set objEMail = Nothing
Set objOutlook = Nothing

On Error GoTo 0
Exit Sub

Preguntas similare

Leer las respuestas

#6 aa
09/02/2011 - 20:55 | Informe spam
Igualmente la mayoria de los correos incluido gmail y hotmail por seguridad
no te van a mostrar la imagen salvo que apunte a un http,incrustada la toman
como un ataque.
Los correos antiguos,outlook xp por ejemplo no tienen ese problema.
"Calcu" wrote in message
news:iiu5rl$e27$
Bueno... ya incrusto todo bien... ahora solo me falta un detalle...
alguien sabe como hacer en el outlook, al incrustar 1 imagen, poder
decirle lo de "formato / detras del texto" ?

como si quisieras una marca de agua, vamos.

Y a traves de Visual, claro. xD

Respuesta Responder a este mensaje
#7 Calcu
14/02/2011 - 18:26 | Informe spam
"Leonardo Azpurua" escribió en el mensaje
news:iiuj5a$i1u$
¡Buena esa!

La documentacion en la ayuda de Word sobre el tema es "escasa". ¿Tienes
idea de donde conseguir más información sobre el tema?

Salud!




Pues, todo sacado de por aqui:

http://www.outlookcode.com/d/code/htmlimg.htm


saludos!
Respuesta Responder a este mensaje
#8 Leonardo Azpurua
14/02/2011 - 18:37 | Informe spam
"Calcu" escribió en el mensaje
news:ijboqb$pov$
Pues, todo sacado de por aqui:

http://www.outlookcode.com/d/code/htmlimg.htm



Gracias!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida