Modules & VBA :: Sending Reports By Email Based On A Query
May 13, 2015
I am trying to send a report to a list of employees. I have a query that generates the report into the layout I want and includes the e-mail address of who the recipient should be. The report looks something like this:
I need to send, for each row in the query, this report based on the results of that particular row. How would I go about making a e-mail template that would be used, or at least sending the report as a PDF attachment? I've seen the sendObject method.
I have got a form (name: SearchForm) that displays results of a query (name: AircraftSearch). It is a continuous form displaying multiple results of a search done by the query. I need to be able to send an e-mail to multiple recipients chosen from results displayed on the form.
One of the form's field (a text box called: EmailToOperator) is containing e-mail address to an aircraft operator selected by the underlying query. I need to be able to place a check box button (or something similar) that is going to select the e-mail address. The tricky part is to have multiple check boxes allocated for each record displayed on the form and have them working independently.
The second task is sending a one message (via Microsoft Outlook 2010) to chosen multiple recipients (with no attachments) having the recipients' addresses not visible to each other.
I am trying to make an automation in order generate reports based on query ( person name,person email address ) , export them to a folder in PDF and then send them one by one to each person email address.
What is happening:
- the reports are generated and exported fine - the email are sent to the right addresses but the first person receives the correct report , the second person receives the report from the first person plus its own report and so on.
Here is my code :
Private Sub MakeReportSendEmail_Click() Dim MyDB As DAO.Database Dim MyRS As DAO.Recordset Dim strSQL As String Dim strRptName As String
Any code that stops the vba from running if an 'output to' function is null. I've found some code using the DCount function but I'm struggling to adapt this to multiple excel outputs.
I'm sending 5 excel files via E mail to several addresses and I'm wanting to identify if the first file has records, currently using access 2010.
I am currently using vb code to send an email in Access on the click of a button. I want the database user to be able to enter the recipient in a text box [ToEmail] which is on form [GroupStockProfiler]. However, I'm unsure how to put this into my code. I currently have the following which doesn't work (unless I put a specific email after 'To'):
Every month I have to make a report about registration of hours of a group of employees. (These employees have a deal with direction about travel hours vs. working hours).This report has to be send to the group members but only the data which is valid for the group member in it. There are 11 persons in this group so I have to send 11 reports.
I made a query with the hours registered from this group. I couldn't export it because it was read-only. That was because the query contains joins to the employee table. After that I tried it with a report. That nearly went well but it contained all data and not the seperated info.What I need to know:What is easier/better: use a query or use a report?Is there code which looks in my query or the report and makes it into seperated reports?I've tried the code of Tony Hine but I can't make it work.After that I need to do a mail-merge. But first of all do I need to make the seperated reports to work.
I am trying to send an Email from a report . Using this code
Code: On Local Error GoTo Some_Err Dim MyDB As Database, RS As Recordset Dim strBody As String, lngCount As Long, lngRSCount As Long DoCmd.RunCommand acCmdSaveRecord Set MyDB = DBEngine.Workspaces(0).Databases(0)
I need to send different reports to a bunch of different persons every hour... I had several macros that did it for me, But Then they wanted me to include a e-mail body that was more than 255chars, so i had to go VBA and i have this (for every set of persons and Reports):
Private Sub Command38_Click() On Error GoTo ErrorHandler DoCmd.SendObject acReport, "REPORT NAME", "Extension", "EMAILS", "", "SUBJECT", "EMAIL BODY", True, "" ExitHandler: Set rs = Nothing Set db = Nothing Exit Sub ErrorHandler:
[code]....
so everything is good, but NOW they want the body of the email to contain another paragraph totally separated from the first one and they want it highlited and also in Red, How can i add Html to this or do i have to use another method?
I have tried this:
Public Sub TestEmail() Dim appOutLook As Outlook.Application Dim MailOutLook As Outlook.MailItem Set appOutLook = CreateObject("Outlook.Application")
[code]...
But it keeps on giving me errors, about objects not being defined.
I have this code below its giving me the RUntime 2295 error. Unknown message recipients. I have check all email addresses and they are fine. Everything else works except when it gets to Outlook and do not send email. I did a Debug Print but didnt understand how to do it.
Private Sub Command9_Click() Dim rst As DAO.Recordset Dim strEmailAddress Set rst = CurrentDb.OpenRecordset("T_Inspectors") Do Until rst.EOF
At present I have a tblData, a tblPeople, a long union query and a report that displays its results. On a form I select a person from tblPeople (another field on that table contains their email address), run the query and report in that person's respect and email the results to them.
What I want to do is add a button which runs some VBA code which cycles through tblPeople, runs the query for each person, works out if the query has returned any records from tblData for that person, and if so - sends them the report.
I am trying to create a form with a button attached to each record that would allow the user to click the button and it would automatically open outlook and fill in the TO:, SUBJECT: and BODY: fields. Here is the code that I currently have:
Code: Private Sub Command33_Click() Dim strEmail As String Dim strMsg As String Dim oLook As Object Dim oMail As Object Set oLook = CreateObject("Outlook.Application") Set oMail = oLook.CreateItem(0)
[code]...
There are two issues I keep running into:
1. This code opens outlook and populates all of the fields but pastes the email incorrectly. Instead of pasting just the email (email@email.com) it pastes the html tags as well (email@email.com#mailto:email@email.com#) which means that the user would have to delete everything between the #'s in order to send the email every time.
2. I currently have the email BODY pulling from a table but this obviously limits what I can do. I would like to simply encode the BODY within the VBA code. The setup I am looking for is: one paragraph a blank line a hyperlink to a website a blank line another paragraph
I'm working on a database for work that email's the current record after the form is completed. I have a attachment field in the table called Photo and some record's have a photo attached and other's don't. The code below works great with records that have a photo attached, but I get a path not found if I try to email a record that does not have a photo. I know that I need to put some form of code to check the photo field for a attachment, but I'm having a brain fade as to just what the code is.
Code: Private Sub eMail_Report_Click() Dim oFilesys, oTxtStream As Object Dim txtHTML As String Dim appOutLook As Outlook.Application Dim MailOutLook As Outlook.MailItem
I use a macro (SendObject), which works, but it requires Us, or someone to go into Outlook to click on send.I'm new to vba, do I have to code something on outlook to send automatically?
I'm trying to send at report based on a Query from a specific form.
Everything is (almost) working fine, except the fact that I can't get a criteria into DoCmd.SendObject method.
My code is:
Private Sub Kommandoknap212_Click() On Error GoTo MailTilGodkendelse_Err DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 Dim MailAtt As String Dim intSearch As String
I am a College Instructor and I would like to make a Database that will regularly email me a list of Students who are approaching the mid-point of their Program.Is it possible to program Access to email a list with Student Names, Registration Numbers, etc, etc. by a given date?
As of right now I have a Database with all of the students' pertinent information but I have to manually comb through the Database each week to see which students will require a Mid-Term interview that week.
How would I set up an Outlook email using a list of recipients from an Access table? I'd like to be able to run this from Access 2007 and not Outlook. However, once the email is set up, I'd like to be able to go into the email and add subject, body, etc. before sending the email.
I am trying to send an email from a form in Access 2013 using fields on the form as part of the email body and I can't seem to find code to just do this.
I don't need to loop through tables as the send email address etc will be on the form together with appointment times etc ...
I have code that allows me to drag and drop an email to an access field, which then stores that email on the local / network folder. Another field with that email's file path is also displayed.
My big question is: knowing the email's file path, how can I have the system open those (network/folder) saved emails as a reply (not automatic send)?
I envision this as being triggered by a _Change event; if a drop-down changes or is selected, then the system reads the location in the 'Email Location' field, and opens the reply to that email.
I have been able to create code to send email for my ticket system but now have a need to add an additional recipient. I would prefer this recipient to be add in the CC field. This email address will come from its own table. I have tried to figure this out myself but I can't get anything to work for me . I am fairly new to VBA and all of my experience is just through trial and error (mostly error). I have attached my original code below ....
Private Sub cmdMailTicket_Click() On Error GoTo Err_cmdMailTicket_Click Dim stWhere As String '-- Criteria for DLookup Dim varTo As Variant '-- Address for SendObject Dim stText As String '-- E-mail text
I would like to update the following code I have been using to send emails, from Access 2010 via Outlook 2010, to include my signature block with hard returns in between each line and a few above the signature.
Lets say the signature would be: My Name My Company Name My phone number My Reference
I tried next to: stMessage = Me![EmailMessage] &"My Name" & Chr(10) & Chr(13) & "My Company Name"
etc.
It does not work..
Here is the coding :
Code: Private Sub SendEmail_Click() On Error GoTo ProcErr Dim stLinkCriteria As String
I am currently updating an Access database, any way to send an OLE Object (in this case an Excel Spreadsheet) as an attachment to an email address using VBA code? I made a form that shows the Excel Spreadsheet when the record is brought up, but I need to know how to send just the Excel Spreadsheet and not the other information on the form.
Also, if there is an alternate way to have an Excel spreadsheet embedded into an Access form, i'm open to change. The user wants to be able to see the Excel spreadsheet and send it to their supervisor without having to locate the Excel spreadsheet on the hard drive.