John-
I did something like this. After compiling it. The error message shows: Method or data member not found.
Private Sub Command1_Click()
On Error GoTo ErrHandle
DoCmd.OutputTo acOutputReport, "R_Books_ALL", acFormatPDF, "..\TestReport.pdf"
DoCmd.OpenReport "rptTest", acViewPreview, , "TestID = " & Me.ReportID, acHidden
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myItem = Application.CreateItem(olMailItem)
Set myAttachments = myItem.Attachments
myAttachments.Add "..\TestReport.pdf"
myItem.Display
SendReportHTML "rptTest", Me.EmailAddress, Me.Subject
DoCmd.Close acReport, "rptTest", acSaveNo
ErrExit:
Exit Sub
ErrHandle:
Resume ErrExit
End Sub
On Error GoTo ErrHandle
DoCmd.OutputTo acOutputReport, "R_Books_ALL", acFormatPDF, "..\TestReport.pdf"
DoCmd.OpenReport "rptTest", acViewPreview, , "TestID = " & Me.ReportID, acHidden
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myItem = Application.CreateItem(olMailItem)
Set myAttachments = myItem.Attachments
myAttachments.Add "..\TestReport.pdf"
myItem.Display
SendReportHTML "rptTest", Me.EmailAddress, Me.Subject
DoCmd.Close acReport, "rptTest", acSaveNo
ErrExit:
Exit Sub
ErrHandle:
Resume ErrExit
End Sub
Best Regards,
Kevin
zhaoliqingoffice@163.com
Date: 2015-11-07 22:19Subject: Re: [MS_AccessPros] Send specific report with SendReportHTML functionKevin-
The purpose of this group is to help people who are using Microsoft Access by teaching them how to get stuff done. We are not here to write all your code for you. I'm more than happy to help you debug code that you've tried, but I'm not going to write it all from scratch for you.John Viescas, AuthorMicrosoft Access 2010 Inside OutMicrosoft Access 2007 Inside OutMicrosoft Access 2003 Inside OutBuilding Microsoft Access ApplicationsSQL Queries for Mere Mortals(Paris, France)
On Nov 7, 2015, at 3:09 PM, 'zhaoliqingoffice@163.com' zhaoliqingoffice@163.com [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> wrote:John-Yes, If you can. And I know that I have occupied too much of your time... Don't know to thank you... I have trid to copy and paste few lines, and I've already known it won't work.Best Regards,Kevin
Date: 2015-11-07 22:01Subject: Re: [MS_AccessPros] Send specific report with SendReportHTML functionYes, it's possible.
I suppose you want me to write the code for you!John Viescas, AuthorMicrosoft Access 2010 Inside OutMicrosoft Access 2007 Inside OutMicrosoft Access 2003 Inside OutBuilding Microsoft Access ApplicationsSQL Queries for Mere Mortals(Paris, France)
On Nov 7, 2015, at 2:54 PM, 'zhaoliqingoffice@163.com' zhaoliqingoffice@163.com [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> wrote:John-I hope to achieve something this: SendReportHTML "rptTest", Me.EmailAddress, Me.Subject, acFormatPDFIs it possible. Thanks.Best Regards,Kevin
Date: 2015-11-07 21:30Subject: Re: [MS_AccessPros] Send specific report with SendReportHTML functionKevin-
Yes, it's possible to attach a file to an email you're sending via code.I don't understand why can't follow a couple of simple steps to use A.D.'s code.John Viescas, AuthorMicrosoft Access 2010 Inside OutMicrosoft Access 2007 Inside OutMicrosoft Access 2003 Inside OutBuilding Microsoft Access ApplicationsSQL Queries for Mere Mortals(Paris, France)
On Nov 7, 2015, at 2:22 PM, Kevin zhaoliqingoffice@163.com [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> wrote:John-
Thanks. This still looks difficult for me. Plus I have to use reference to get this work...I will just use your code with short-length report. By the way, is it possible to add pdf attachment while sending html mailbody with your code?
Best Regards,
Kevin
发自我的小米手机在 "John Viescas JohnV@msn.com [MS_Access_Professionals]" <MS_Access_Professionals@yahoogroups.com>,2015年11月7日 下午9:08写道:Kevin-
What you need to do:From A.D.'s database, import these modules:M_MakeFolderM_SendReportThe code uses the Scripting library, so you need to open a module and choose References from the Tools menu. In the list of libraries, fine Microsoft Scripting Runtime and select it. Close the dialog and compile and save the code. If you get compile errors, let me know what they are.The code to export a report to HTML and then send it looks like this:Private Sub CmdSend_Click()On Error GoTo ErrTrap' Turn on hourglass because this may take some timeDoCmd.Hourglass True' Call the export and send routine, passing it the name of the report and the email "to" listP_ReportInMailBody_DirectHTML _Nz(Me.CboReport, ""), Nz(Me.TxtAddress, "")' Wait a bit to be sure it finishedP_Wait 100' Turn off the hourglassDoCmd.Hourglass FalseMsgBox "Finished" & vbCrLf & _"Selected Report Has Been Placed " & _"In The OutBox", vbOKOnly, "Task Completed"On Error Resume NextMe.CmdClose.SetFocusExitPoint:DoCmd.Hourglass FalseOn Error GoTo 0Exit SubErrTrap:MsgBox Err.Number & " - " & Err.DescriptionResume ExitPointEnd SubWhat's so hard about that? Note that the call to P_ReportInMailBody_DirectHTML passes values of controls on the form in which this code runs. You will need to modify it to pass it the report name and email recipient list.John Viescas, AuthorMicrosoft Access 2010 Inside OutMicrosoft Access 2007 Inside OutMicrosoft Access 2003 Inside OutBuilding Microsoft Access ApplicationsSQL Queries for Mere Mortals(Paris, France)
On Nov 7, 2015, at 12:34 PM, 'zhaoliqingoffice@163.com' zhaoliqingoffice@163.com [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> wrote:John-Here's the link:Best Regards,Kevin
Date: 2015-11-07 17:54Subject: Re: [MS_AccessPros] Send specific report with SendReportHTML functionKevin-
Do you still have the link to A.D.'s code? I didn't save it.John Viescas, AuthorMicrosoft Access 2010 Inside OutMicrosoft Access 2007 Inside OutMicrosoft Access 2003 Inside OutBuilding Microsoft Access ApplicationsSQL Queries for Mere Mortals(Paris, France)
On Nov 7, 2015, at 12:34 AM, 'zhaoliqingoffice@163.com' zhaoliqingoffice@163.com [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> wrote:John-With your code, I can do something like : SendReportHTML "My Report Name"But I didn't find how to use AD's code to get this done. His code shows how to send mutiple reports or single report, but I didn't find the syntax for SendReportHTML function.Best Regards,Kevin
Date: 2015-11-07 04:44Subject: Re: [MS_AccessPros] Send specific report with SendReportHTML functionKevin-
If your report has multiple pages, you need to use AD's code. I found it fairly straightforward. What don't you understand?John Viescas, AuthorMicrosoft Access 2010 Inside OutMicrosoft Access 2007 Inside OutMicrosoft Access 2003 Inside OutBuilding Microsoft Access ApplicationsSQL Queries for Mere Mortals(Paris, France)
On Nov 5, 2015, at 10:37 AM, zhaoliqingoffice zhaoliqingoffice@163.com [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> wrote:John-
Would please change the code a little bit so that I can send the report pages all at once? AD's code is very abstruse. I couldn't handle it. Please help.
Best Regards,
Kevin
在 "John Viescas JohnV@msn.com [MS_Access_Professionals]" <MS_Access_Professionals@yahoogroups.com>,2015年11月5日 下午5:18写道:Kevin-
It's been ages since I used ..\ folder reference. I think that goes to whatever windows thinks is the current folder. Have you tried doing a search in Windows Explorer for TestReport.html?"C:\Test\…" will fail if there's not a Test folder on the C drive.John Viescas, AuthorMicrosoft Access 2010 Inside OutMicrosoft Access 2007 Inside OutMicrosoft Access 2003 Inside OutBuilding Microsoft Access ApplicationsSQL Queries for Mere Mortals(Paris, France)
On Nov 5, 2015, at 9:46 AM, zhaoliqingoffice zhaoliqingoffice@163.com [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> wrote:John-
I got it. One more question, "C:\Test\TestReport.html" always gets error,so I changed it to "..\TestReport.html", it works perfect. Then I wonder where the output html goes to? since I couldnt find it in me computer at all. If it doesn't exist that would be great for me. But I worried this would take a lot of space after running some time. Please help.
Best Regards,
Kevin
在 "John Viescas JohnV@msn.com [MS_Access_Professionals]" <MS_Access_Professionals@yahoogroups.com>,2015年11月5日 下午3:58写道:Kevin-
I *think* you can output just one page if you first open the report filtered on the on GroupBookingID that you want. You can open it in Print Preview but hidden.DoCmd.OpenReport strReportName, acViewPreview, WhereCondition:="GroupBookingID = " & Me.Parent.GroupBookingID, WindowMode:=acHiddenBe sure to close the report after you have output it.John Viescas, AuthorMicrosoft Access 2010 Inside OutMicrosoft Access 2007 Inside OutMicrosoft Access 2003 Inside OutBuilding Microsoft Access ApplicationsSQL Queries for Mere Mortals(Paris, France)
On Nov 5, 2015, at 6:36 AM, 'zhaoliqingoffice@163.com' zhaoliqingoffice@163.com [MS_Access_Professionals] <MS_Access_Professionals@yahoogroups.com> wrote:John-For the SendReportHTML function, is that possible to send report from a specific record? For example: to send a report (rptItineraryPart) with ID=Me.Parent.GroupBookingID. By the way, here's again, the function you sent to me before:Sub SendReportHTML(strReportName As String, strEmail As String, strSubject As String)
Dim strHTML As String, strInput As String
Dim strEmailAddress As String
Const olMailItem = 0
Const olFormatHTML = 2
Dim objOlApp As Object, objOlMail As Object
' Output the 1-page report to html
DoCmd.OutputTo acOutputReport, strReportName, acFormatHTML, "C:\Test\TestReport.html"
' Open the resulting file
Open "C:\Test\TestReport.html" For Input As #1
' Create an Outlook session
Set objOlApp = CreateObject("Outlook.Application")
' Start a new email
Set objOlMail = objOlApp.CreateItem(olMailItem)
' Read in the created HTML and put together an output string
Do While Not EOF(1) ' Loop until end of file
' Get a line from the file
Input #1, strInput
' Add it to the accumulated HTML
strHTML = strHTML & strInput
Loop
' Close the file
Close #1
' Use the mail item for several tasks
With objOlMail
.To = strEmail
.Subject = strSubject
.BodyFormat = olFormatHTML
.HTMLBody = strHTML
.Send
End With
' Clear the objects
Set objOlMail = Nothing
Set objOlApp = Nothing
End SubBest Regards,Kevin
__._,_.___
Posted by: "zhaoliqingoffice@163.com" <zhaoliqingoffice@163.com>
| Reply via web post | • | Reply to sender | • | Reply to group | • | Start a New Topic | • | Messages in this topic (25) |
.
__,_._,___
Tidak ada komentar:
Posting Komentar