Exportieren von rich-text in outlook und halten Sie die Formatierung
Ich habe einen button in Access, öffnet sich Outlook, erstellen eines Termins.
Private Sub addAppointEstimate_Click()
Dim objOutlook As Object
Dim objOutLookApp As Object
Dim strSubject As String
Dim strBody As String
strSubject = Forms!frmMain.LastName 'more stuff to add
strBody = DLookup("EstimateText", "tblEstimateItems", "EstimateID = 78") '& Forms!frmMain!frmSubTransaction!frmSubEstimate.Form.EstimateID)
Set objOutlook = CreateObject("Outlook.Application")
Set objOutLookApp = objOutlook.CreateItem(1)
With objOutLookApp
.subject = strSubject
.RTFBody = StrConv(strBody, vbFromUnicode)
.Display
End With
End Sub
Das problem ist, dass ich einfügen möchte, Rich-text in den Körper, aber es nicht formatieren, da es zeigt alle HTML-tags statt e.g:
<div><strong>example </strong><font color=red>text</font></div>
Gibt es eine Möglichkeit, die ich senden kann oder konvertieren Sie die rich-text in Outlook in einem format, das es zu erkennen? (Vielleicht über die Zwischenablage)
Es scheint, viele Menschen haben eine Lösung für Excel, aber ich bin kämpfen, um zu arbeiten in Access:
- HTML-Text mit tags in formatierten text in eine Excel-Zelle
- http://dailydoseofexcel.com/archives/2005/02/23/html-in-cells-ii/
Ist strBody wirklich eine RTF-formatierten string oder HTML? Im letzteren Fall, setzen Sie einfach die HTMLBody-Eigenschaft.
InformationsquelleAutor Magnus | 2014-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Übergeben RTF-formatierten string um outlook-E-Mail Körper ist einfach wie folgt
Das Geheimnis ist, nicht zu verwenden ".RTFBody" aber nur ".Körper" und die übergeben werden byte-Arrays, wie in den obigen code. Es brauchte eine Weile, um es herauszufinden.
Dank Microsoft haben wir immer etwas haben, um herauszufinden.
InformationsquelleAutor eddypi
Können Sie ein wenig zusätzlichen Aufwand, um eine Nachricht erstellen, die mit der formatierten HTMLBody Inhalt, dann kopieren Sie den Inhalt in ein terminelement.
Beginnen Sie, indem Sie eine Nachricht und einen Termin und füllen diese wie gewünscht. Setzen Sie den text in der Nachricht, überspringen Sie die Körper auf den Termin für jetzt.
Dann verwenden Sie die GetInspector Eigenschaft für die Interaktion mit dem Körper der jedes Element über einen Word-editor, und kopieren Sie den formatierten text, der Weise.
Dieser code ist getestet und funktioniert in Access 2013.
Versuchen Sie, ein Verweis auf die Microsoft Word 14.0 Object Library (im Visual Basic-Editor auf Verweise im Menü Extras, Blättern Sie nach unten und aktivieren Sie das entsprechende Kontrollkästchen).
Hacky, aber hat wunderbar funktioniert danke. Ich bin mit einem JavaScript-version: var apptIns = Termin.GetInspector(); var msgIns = msg.GetInspector(); var apptDoc = apptIns.WordEditor; var msgDoc = msgIns.WordEditor; apptDoc.Range().FormattedText = msgDoc.Range().FormattedText;
InformationsquelleAutor AjimOthy
Beim setzen auf plain-text-Body-Eigenschaft. Legen Sie die HTMLBody-Eigenschaft auf einen ordnungsgemäß formatierten HTML-string.
Outlook Termine, Aufgaben und Kontakte in der Tat nicht unterstützen, die HTMLBody-Eigenschaft, es ist nur ausgesetzt, indem das MailItem-Objekte. Sie können entweder die RtfBody Eigenschaft(byte-array), um eine korrekt formatierte RTF-Daten. Wenn Sie mit der Erlösung ist eine option, macht es die HTMLBody-Eigenschaft auf die RDOAppointmentItem, RDOContactItem und RDOTaskItem Objekte, die zur Laufzeit Erlösung dynamisch wandelt den angegebenen HTML-to-RTF.
Ok, ich habe versucht Einstellung der RTFBody Eigenschaft zu meinem text. Ich denke, ich wandelte es in ein Byte-array korrekt ein (Siehe code oben aktualisiert). Aber ich bekomme die Fehlermeldung "RTFBody" Objekt "_Appointment" ist fehlgeschlagen. Irgendwelche Ideen?
Noch, StrConv wandelt einen string top anderen. Sie benötigen ein byte-assay (wie im Dim SomeVar(100) usw,). Plus es braucht, um die echte RTF-text - öffnen Sie eine bestehende RTF-Datei im Editor.
Ich arbeite an einer Lösung, die beinhaltet die Bewältigung der formatierte text in die Zwischenablage kopieren, dann einfügen in Terminvereinbarung Körper. Ich weiß, ich sollte wahrscheinlich post dies als eine neue Frage, aber ist es möglich, zum einfügen in den Körper mithilfe von VBA in access?
InformationsquelleAutor Dmitry Streblechenko
Ich kam mit einer Lösung. Ich habe gerade kopiert und eingefügt, die gesamte sub, aber die Antwort ist in es ich verspreche es. Ich habe auch hervorgehoben, die wichtige bits.
Ich funktioniert auf meinem Rechner zu Hause, aber nicht auf den clients. So ich nicht verwenden, aber wenn Sie verbessern können, auf lass es mich wissen.
InformationsquelleAutor Magnus
Als in der vorherigen Antwort, diese Zeile ist der Schlüssel, es kopiert text, hyperlinks, Bilder etc. ohne änderung der Inhalt der Zwischenablage:
InformationsquelleAutor T800