By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,649 Members | 1,560 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,649 IT Pros & Developers. It's quick & easy.

Email Access Report as "Body"

100+
P: 365
Hello to all,

i have a new interesting problem to solve....
i have a report that i would like to email to a list of users,
the report is a full page document and is personalised to each user (basically) more than one user can have the same email address so i will create a recordset to list all of the users (who need the email) and loop through the users and send to the associated email address, i have a few problems

1)currently the report is set up to list all the reports in the same report.... make sense? so i would need to send only the correct page... is that possible? if not then i will have to alter the reprt to build using the info from my aforementioned loop.

2)the biggest obsticle is that i want the report (sent as html) to be the body of the email, i have tried this:

Expand|Select|Wrap|Line Numbers
  1. DoCmd.SendObject acSendReport, "report1", acFormatHTML, EmailAddress, , , "Subject:____", "report1"
  2.  
this opens the email to be edited (which i dont want to do) but the report does send as the body this way

so i tried this (to NOT edit)

Expand|Select|Wrap|Line Numbers
  1. DoCmd.SendObject acSendReport, "report1", acFormatHTML, EmailAddress, , , "Subject:____", "report1", false
  2.  
which does send the email straight away... but sends the report as an attachment... any ideas?

thanks for ya help guys

Dan Out
Feb 20 '08 #1
Share this Question
Share on Google+
10 Replies


100+
P: 365
Any ideas anyone?
Cheers
Feb 21 '08 #2

P: 12
good luck getting the result you want natively from Access. I send data from Access via email all the time for various purposes but have never been able to do it "the way I want" using Access by itself. More recently I have been building an HTML version of the report in code, then sending that as the body of an email using either the Redemption Outlook DLL or a DLL I wrote in VB.NET.

If you like I will put together some sample VB.NET source code for you...
Feb 21 '08 #3

100+
P: 365
That would be useful if you could, but it would need some explaining as to how i would implement it (and alter it) and i have no experience with VB.net

if you could help then that is great, if not then can i assume that i will just have to accept the report being sent as an attachment?
Feb 21 '08 #4

P: 12
Sending it the way you mention in your first post is the easiest by far. If you have no experience with .Net you are going to be in for more than you expected...

That would be useful if you could, but it would need some explaining as to how i would implement it (and alter it) and i have no experience with VB.net

if you could help then that is great, if not then can i assume that i will just have to accept the report being sent as an attachment?
Feb 22 '08 #5

P: 12
I will work on some sample code for you and get back to you
Feb 22 '08 #6

P: 12
I have just created a page detailing how to create an SMTP DLL which allows you to specify the entire body of the email as SMTP. In order to fully implement your report as the body you will need to do further research into compiling your data into an HTML page.

The SMTP DLL code is at ** Edit - Removed link to external code **

I hope this helps you out to some small degree...
Feb 22 '08 #7

NeoPa
Expert Mod 15k+
P: 31,261
Max,

You are welcome to include your code in a post, but linking offsite to code is not allowed.

Admin.
Mar 3 '08 #8

Denburt
Expert 100+
P: 1,356
I almost always use CDO for sending email as you stated I like to send my reports via the email body verses an attachment. Using CDO you may find you have to mess around with the configuration a bit to get it to work but it works and quite nicely I might add. Here is a link to a post with some sample code that may help.

http://forums.microsoft.com/MSDN/Sho...23601&SiteID=1

To use this you will need to add a reference (in the VBA window under tools/references)

I generally export to HTML like so then read the info and into the email it goes.

Expand|Select|Wrap|Line Numbers
  1. strPath = Application.CurrentProject.Path
  2. DoCmd.OutputTo acOutputReport, "Rate Division", acFormatHTML, strPath & "\RD.HTML", False
  3.  Set fso = CreateObject("Scripting.FileSystemObject")
  4.  Set ts = fso.OpenTextFile(Application.CurrentProject.Path & "\RD.HTML", ForReading, False) '.CreateTextFile(vFile)
  5. 'Exit Function
  6.  tsR = ts.ReadAll
  7.   ts.Close
  8.  Set ts = Nothing
  9.  
  10.  
  11. .HTMLBody = tsR 
  12.  

Sometimes exporting a report to HTML can be quite nasty so in those circumstances I XML with an XSL style sheet to produce my desired results then transfer that into the email (again opening it as text then .readall etc.).

Good luck any questions feel free to ask.
Mar 3 '08 #9

Denburt
Expert 100+
P: 1,356
I posted then I saw your post Neo. I know Microsoft informational pages are O.K. but what about the Microsoft forum? The topic is inline and I thought the thread was informative as well. Please edit my post as you see fit. Thanks
Mar 3 '08 #10

NeoPa
Expert Mod 15k+
P: 31,261
Denburt,

This is not the same thing at all. Microsoft links are fine. They are not there to advertise their site. They are, after all, the vendor of the software that we're all working in.

What was removed was a link to the poster's own web site where they'd posted the code that should have been posted in here.

I'm glad you asked though as it illustrates the situation more clearly.
In short, no edit required :)
Mar 4 '08 #11

Post your reply

Sign in to post your reply or Sign up for a free account.