Have found some code that originated from this forum, and have modified it to suit my needs. There's one form with all the information, that has multiple buttons and subsequently multiple functions to generate emails, with each button/email to generate a different format and content. The first use of a button works fine, but trying to use the next button right after does nothing. If you exit the form and re-enter, you can then use the next email button, but that's a pain and the users won't like that. Can anyone help? I've pasted a sample of the code that is being used below, it's duplicated and changed slightly for the other buttons. I currently have the button linked to a macro that does other things like saving, and setting dates and then running the function.
Thanks,
Don
-----------------------------------------------------------------
Public Function AckEmailNew()
On Error GoTo Err_cmdMailTicket_Click
Dim varTo As String '-- Address for SendObject
Dim stText As String '-- E-mail text
Dim stSubject As String '-- Subject line of e-mail
Dim stTicketID As String '-- The ticket ID from form
Dim strSQL As String '-- Create SQL update statement
Dim errLoop As Error
varTo = Me.ClientEmail
stTicketID = Me.STSITicket
stSubject = "Ticket/numéro de référence: " & stTicketID
stText = <<My text goes here>>
'Write the e-mail content for sending to assignee
DoCmd.SendObject , , acFormatTXT, varTo, , , stSubject, stText, -1
Im using the code below to send information by email. BUT:
I want to send the same information to more than one recipient. can i write more than one address in the SendObject?
What can i do if i do not know prior to sending how many addresses i want to include. (this means that once i might have tosend it to 1, then later to 3, etc...)?
The code is:
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 Dim RecDate As Variant '-- Rec date for e-mail text Dim stSubject As String '-- Subject line of e-mail Dim stTicketID As String '-- The ticket ID from form Dim stWho As String '-- Reference to tblUsers Dim stHelpDesk As String '-- Person who assigned ticket Dim strSQL As String '-- Create SQL update statement Dim errLoop As Error
'-- Combo of names to assign ticket to stWho = Me.cboAssignee stWhere = "tblUsers.strUserID = " & "'" & stWho & "'" '-- Looks up email address from TblUsers varTo = DLookup("[strEMail]", "tblUsers", stWhere)
stText = "You have been assigned a new ticket." & Chr$(13) & Chr$(13) & _ "Ticket number: " & stTicketID & Chr$(13) & _ "This ticket has been assigned to you by: " & strHelpDesk & Chr$(13) & _ "Received Date: " & RecDate & Chr$(13) & Chr$(13) & _ "This is an automated message. Please do not respond to this e-mail."
'Write the e-mail content for sending to assignee DoCmd.SendObject , , acFormatTXT, varTo, , , stSubject, stText, -1
'Set the update statement to disable command button 'once e-mail is sent strSQL = "UPDATE tblHelpDeskTickets SET tblHelpDeskTickets.ysnTicketAssigned = -1 " & _ "Where tblHelpDeskTickets.lngTicketID = " & Me.txtTicketID & ";"
On Error GoTo Err_Execute CurrentDb.Execute strSQL, dbFailOnError On Error GoTo 0
'Requery checkbox to show checked 'after update statement has ran 'and disable send mail command button Me.chkTicketAssigned.Requery Me.chkTicketAssigned.SetFocus Me.cmdMailTicket.Enabled = False
Exit Sub
Err_Execute:
' Notify user of any errors that result from ' executing the query. If DBEngine.Errors.Count > 0 Then For Each errLoop In DBEngine.Errors MsgBox "Error number: " & errLoop.Number & vbCr & _ errLoop.Description Next errLoop End If
I am trying to find a way to use the "DoCmd.SendObject acReport" feature WITHOUT using Outlook. Does anybody know of any code or a setting that will enable me to specify another e-mail program, such a Thunderbird?
I should add that I am using Access 2002, SP3, running in Windows XP Professional, Version 2002, Service Pack 2.
Hello to all the Users! I am new at Access and new to programming. I have created an Access form that has four labeled control buttons each one with an individuals name. I have the corresponding code:
Private Sub Email_PersonOne_Click() DoCmd.SendObject acSendNoObject, , , "personone@yahoo.com", , , "Work Request", "A new work request has been submitted." End Sub
When I have one button and one code the email function works. I want the users to be able to select one out of four people who they want to notify upon completion of the form. So I have four buttons and changed the email address and the names on the buttons but now none of the buttons work. The code is on the same page separated with just a line between each section.
Does this make sense? Any input would be greatly appreciated. Thanks in advance for your time and help. Sincerely, DebraF
With a pass thru query this doesn't work - somehow the file doesn't contain any data - can I get this to work with for a pass thru query.
(I have tried using a another query to SELECT * FROM Passthru but that has the same problem, all is fine when using a standard access query with no pass thru involvement)
The code below works for the one email address "Quality Assurance"...but I want to add more email values to SendObject command. If I do this: stEmail = Me.Quality_Assurance_Authorizer.Column(1) And Me.Engineering_Authorizer.Column(1)..... I get a Runtime error '13' Type mismatch. Is there another way of including a series of email values into the SendObject code below? The reason I'm using the value of the column is that sometimes the value may be null if that department doesnt need to be emailed. Thanks for any help.
Private Sub cmdPCAuthSend_Click()
Dim stDocName As String Dim stEmail As String
stDocName = "rptPCAuthReq" stEmail = Me.Quality_Assurance_Authorizer.Column(1) DoCmd.SendObject acSendReport, stDocName, "SnapshotFormat(*.snp)", stEmail, , , "PCA Authorization Request", "Please review this product change and authorize when appropriate."
The email is sent correctly. However, in Access 2003 a copy was posted to the Outlook 'Sent' folder. Since we have moved to Outlook 2010, a copy is no longer posted to the 'Sent' folder. We miss having that copy.
Is there an option that I can set to post the email to the user's 'Sent' folder? If not, what about a BCC? How can I get the user's email address?
I'm using DoCmd.SendObject to send an e-mail using Windows Live Mail.
Works great UNLESS the recipient name contains a "_" character as in
joe_blow@isp.com. joeblow@isp.com works just fine.
I get RT Error 2293 "Access can't send this e-mail message"
Is this a WLM problem? SendObject problem? VBA? my code?
Are there character restrictions for the e-mail name? If so that is bad because these are valid names for users. What am I doing wrong and how do I correct the syntax so that these e-mail names can be accepted?
When I send an email from Access with SendObject, how does it determine the user name, the 'from' name. Is it just the user's Outlook name? Do I have any control over that?
I have a Customer Issue form that writes the following into one table named Table1: Date, Customer Name, Ticket number, Agent, Issue and Comments. This is very simple.
All of this is filled in from a form that has links to 3 other tables for drop downs; Customer Name, Agents, Issues. This is working perfectly.
What I want to be able to do is generate a report based on a date range for a particular agent. Say 9/1/2013 - 9/30/2013 for John Doe.
For the report portion, on the form I have to combo boxes, one for start date, one for end date. I also have a drop down for selecting the agent. When I click a button on the form named Report, It will generate a preview of the report.
Here is the problem. I can get this to generate a report based either on the date range, which gives me all of the agents, or by agent, which gives me all of the dates. I can't get it to do both.
Here is some code that I have on the Report button:
DoCmd.OpenReport "AIReport3", acViewPreview, , "[Agent]=" & Me.Agent This is the code that will let me choose the agent, but gives me all dates.
If I change this code to this: DoCmd.OpenReport "AIReport3", acViewPreview, , "[DateRptd] Between #" & Me.cboFrom & "# And #" & Me.cboTo & "#" It will display all issues in the date range, but gives me all agents.
I was thinking I should be able to combine them with an AND or an & to get it to use both the agent and date fields, but I can't get this to work.
Something like: DoCmd.OpenReport "AIReport3", acViewPreview, , "[Agent]=" & Me.Agent And "[DateRptd] Between #" & Me.cboFrom & "# And #" & Me.cboTo & "#"
I have VBA to send multiple reports to a group of people depending on a toggle button selection. what I'm wanting to do is have it loop through the e mail process until all 5 toggle buttons have been selected and the reports have been E Mailed. Is this possible. Toggle buttons are named toggle1, toggle2 and so on.
I have made a query with the name "Confirmation" and it is setup like this:
Name trainee Email Training John John@mail.com Tr one Mary Mary@mail.com Tr two
I also made a button in a report with the title "Send Mail" now is my goal that if i press that button automatically multiple e-mail message's will be generated with data from people in that query. So if click on that "Send Email" button i want two different mails messages generated that will be send to John@mail.com and Mary@mail.com with in the mail body their data.
Was woundering if the was a way to habdle multiple command buttons with one procedure. I have done a little VB.Net and I remember that you coud use one sub to handle multiple buttons using the handles key word. I was wondering if Access could do that. What I have is 37 command buttons named cmdView1 through cmdView37 all I really need is the number that prefixes the command buttons name. I know how to pull out the number but I can not figure out how to use only one sub procedure for all 37 buttons. Any help is appreciated.
Hi - I have another problem. I hope you can help me out on this one.
Right now, I have 3 toggle buttons to control the visibility of 3 subforms. However, I only want a single subform to show at any given time. So, if I were to select toggle 1 it should give me subform 1, and afterwards if I select toggle 2 it should give me subform 2 WITHOUT showing me toggle 1.
Is there anyway to get the toggle buttons to work with each other?
Hi All I have a main form which displays some basic info aboute a site. I would like to be able to place multiple buttons down the right side of the form. This would be similar to having a seperate column which is not affected by the number of records on show. I have considered placing them in the form header but think a column down the side would look much neater. Any help would be much appreciated. ChrisD
I have built a end user form with multiple toggle buttons with "Yes/No" properties. I am wanting to link the buttons together, so if all have been selected/pressed it will read "pass" in a text box, but if even one is not selected it will read "fail". I was successful with the programming for one but not sure how to link them.
I am attempting to make a macro to pull information based on a clicked button to provide information to another form. While my example below will be rudimentary, I am attempting to create so that it can be applied to 450 buttons, hence the need for it to be a macro and not simply code per button.
For example if I have 3 buttons, captioned: red, green and blue. If I click on the blue button, it will open another form with a text-box that will say 'blue'. Likewise, if I click the red button the text-box will be changed to 'red'.
In the code below the section that I need to change is: Command1.Caption. Using this data I can pull from the one button to create the value, but I need it to be based on an OnClick or something in order to pull the value from the right button.
Question 2: I am trying to use a query to change button colour on the basis of values stored in a table.What I want to do is change the button background after comparing the button name to the same variable in a table, and determining another variable.
IE: Button1, Button2. In table: Button1, Val = Y, and Button 2, Val = Z
Pseudo Code: Array: From Button1 to Button2 Query for Button1 against table If Val = Y, Button1.background = red Else if Val = Z, Button1.background = blue Else Button1.background = black End if
I think this was covered a while back and I did a search and couldn't find anything on it; Is there a way to attach and send multiple report .snp's to one email. I've been using SendObject.
Can someone help me try and figure out how I can get my code to not just pull the first email based on a dlookup from a table...
I am looking to enter information in a form and have outlook populated with to specific email addresses based on a groupid in the table. Right now this code works fine but only returns 1 email address not all with the same GroupID.
Private Sub Command27_Click() On Error GoTo Err_Command27_Click
Dim stWhere As String '-- Criteria for DLookup Dim varTo As Variant '-- Address for SendObject Dim stText As String '-- E-mail text Dim RecDate As Variant '-- Rec date for e-mail text Dim stSubject As String '-- Subject line of e-mail Dim stWho As String '-- Reference to tblUsers Dim stEvalEmp As String '-- Person who assigned ticket Dim stDelBidPrice As String '-- Delivery Bid Price Dim stOverBidPrice As String '-- Override Bid Price Dim stOverMeanPrice As String '-- Override Mean Price Dim stOverOfferPrice As String '-- Override Offer Price
'-- Combo of names to assign price change to stWho = Me.GroupID stWhere = "ClientServices_tbl.GroupID = " & "'" & stWho & "'"
'-- Looks up email address from ClientServices_tbl varTo = DLookup("[ClientEMAIL]", "ClientServices_tbl", stWhere)
hello once again Scenario: I currently have a form that the users can browse through listings of items for sale. While going through the records, they can mark with a checkbox of which items to include in a report to send in an email. The check box is currently part of the listings table, and i then run a query to pull items with the box checked, then put those in to a report, then they can email.
Problem: about 5 users use this database, so if one user is selecting items that they want it's going to cause a problem for another user to select only the items he wants since it is all updating to the same table. Ex, if I select items 2 and 3 and another person selects items 4 and 5, when I click to show the report, its going to show items 2,3,4,5. Make sense?
Solution: Since there are only 5 users, I made them all aware of this, and also created a reset selected email checkbox button, that sets the checkbox back to unchecked so the next person can select their own items and email. There has to be a better way to fault proof this, I just can't think of one. Any ideas would be greatly appreciated!
I have created a database that auto emails and works well, my problem now is that though there are multiple emails to send to it is only sending to the first one. The way I have set this up is I have created a qry to combine all emails using Allen Brownes concatrelated in below
Code: SELECT DISTINCT Left([Copy Of tbl_Depot]![Depot],3) AS Port, ConcatRelated("[Copy Of tbl_Depot]![ContactEmail]","[Copy Of tbl_Depot]","[Copy Of tbl_Depot]![Port]=""" & Left([Copy Of tbl_Depot]![Depot],3) & """") AS Email FROM [Copy Of tbl_Depot];
I then link this to an append qry which becomes my data source
Code: INSERT INTO tbl_dptem ( [Empty Return Location], [Container], ContactEmail, DepotEmSent ) SELECT qry_emdepot1.[Empty Return Location], ConcatRelated("[qry_emdepot1]![Container No]+chr(13)+chr(10)","qry_emdepot1","[qry_emdepot1]![Empty Return Location]= """ & [qry_emdepot1]![Empty Return Location] & """") AS [Container], qry_Portem.Email, qry_emdepot1.DepotEmSent FROM qry_Portem RIGHT JOIN qry_emdepot1 ON qry_Portem.Port = qry_emdepot1.[Empty Return Location] GROUP BY qry_emdepot1.[Empty Return Location], qry_Portem.Email, qry_emdepot1.DepotEmSent;
Below is the code I use to auto send emails and when I check it shows all email addresses in sent email but it is only going to the first recipient.. not sure what I need to do so all of them get it.
Code: Sub EmDepot() Dim Notes As Object Dim Maildb As Object Dim MailDoc As Object Dim objNotesDocument As Object Dim objNotesField As Object