Modules & VBA :: Sending Result Of A Query By Mail
Jan 2, 2015
In the following code, I debug a problem with the CurrentDb.OpenRecordset
Code:
' ---
' ENVOYER UN MAIL DEPUIS ACCESS
' ---
' Entree : strEmail <- Adresse e-mail du destinataire
' strObj <- Objet du courrier
' strMsg <- Corps du message
I am trying to e-mail from a form that displays filtered result, but having trouble. Could someone please guide me?
I am using DoCmd.SendObject (a routine that I found in a newsgroup). This routine works fine when I am sending it to all the recipients, but not to filtered recipients. The form shows filtered result, but I am not being able to use the command to only send to filtered recipients. Instead, when I press the button to e-mail, it populates the cc: field with all the e-mail addresses rather than the filtered addresses. Any help would be greatly appreciated. Thank you.
Here is the code:
Private Sub cmdGenerateList_Click() 'Create Email list from the appropriate query and open Outlook with those addresses in the cc: field
Dim db As Database, rs As Recordset, sql As String, emailTo As String, txtEmailList As String
On Error GoTo Err_cmdGenerateList_Click
Set db = CurrentDb()
emailTo = "" sql = "select EmailName from qInd_info " Set rs = db.OpenRecordset(sql)
Do Until rs.EOF If Not IsNull(rs!EmailName) Then 'build up email addresses separated by a semicolon emailTo = emailTo & rs!EmailName & "; " End If rs.MoveNext Loop
'Remove the last semicolon If Right(emailTo, 2) = "; " Then emailTo = Left(emailTo, Len(emailTo) - 2) End If
' Me.txtEmailList = emailTo
'Create the message with the recipients in the BCC: field ' DoCmd.SendObject acSendNoObject, , , , , emailTo DoCmd.SendObject acSendNoObject, , , , emailTo
Exit_cmdGenerateList_Click: Exit Sub
Err_cmdGenerateList_Click:
Select Case Err.Number Case 2501 Resume Next Case Else MsgBox Err.Description Resume Exit_cmdGenerateList_Click
I am using Docmd.sendobject to print a report to Outlook so that I can e-mail the report. The method used to work. Outlook would open, I'd elect my recipients and could click the send button to e-mail the report. Now the send button is disabled once the report shows as an attachment in Outlook. I have to ctrl-alt-del to break the process and outlook gives me an error message regarding the ole object. Is there anyway to fix this problem or a possible root cause. Thank you
I've got information stored per row with the name of the person which data-entried the information. If a user wants feedback from that user on that specific row i would like to make it able to send a mail to the data-entrier. The data-entrier name should be clicked in the row and that specific row should be attached in the mail.
I can store e-mail addresses of my data-entriers in the database, how do i achieve to send the mail address and specific row to outlook when a user clicks it?
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.
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.
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 VBA code (I have very little experience of VBA) to recreate a parameter query mail merge, which Access 2013 cannot achieve with the controls provided.I think that I need to assign a variable to the value of a control on my form then assign that variable to the relevant criteria section of my query.
Code: DIM RefNo as String DIM IDNo as String RefNo = Me.[Reference Number].Value IDNo = Me.Text582.Value DoCmd.OpenQuery SORTER How do you paste into criteria?
From there I would like to do a Word Mail Merge by having VBA open a document in Word, then activate the Merge to a New Document instruction.
I have a query that returns the string to use but I am not sure how I can actually use the returned value to do what I want.
e.g. my table: Partner ID Backup Field 5023949 UPC 501354 GTIN
my query will return 1 [backup field] value from the table above, and I then want to use that value to get another value that was previously declared in my code.
eg GTIN = "ABC123" UPC = "123ABC"
if my query returns the value "GTIN" then need to use the value of GTIN (ABC123) in my next part of the code.
msgbox GTIN would result in a message box ABC123
But I am not sure how to get the result value. I can say msgbox [backup field] but that returns "GTIN" not "ABC123"
For some reason i've had to make an update on some old VBA projects of mine. In this update i switch all references of DAO to ADO. I know there are some limits to what i can accomplish with ADO (where i would need to use DAO). Anyways in some of these old projects i use an SQL statement to provide me with a limited number of records which i then modify by iterating through the recordset.
I can't get this to work with ADO. It's as if it always expects me to provide a table in the argument.
In short my question is. Is it possible to change the values returned from an SQL statement using ADO
Code: 'This is the DAO version which is exactly what i'm looking to using ADO strSqlCommandText = "SELECT tblMain.TaskID, tblMain.Heading FROM tblMain WHERE (((tblMain.TaskID)=" & ProcessForm.txtIDValue.Text & "))" Set objRecordset = pubObjDatabase.OpenRecordset(strSqlCommandText, dbOpenDynaset) objRecordset.Edit objRcsToDbTable.Fields("Heading") = ProcessForm.txtBoxHeading.Text objRecordset.Update
This is what i've done and it doesn't work.
Code: strSqlCommandText = "SELECT tblMain.TaskID, tblMain.Heading FROM tblMain WHERE (((tblMain.TaskID)=" & ProcessForm.txtIDValue.Text & "))" Set objRecordset = New ADODB.Recordset objRecordset.Open strSqlCommandText, pubObjDatabase, adOpenDynamic, adLockOptimistic objRecordset.Edit objRcsToDbTable.Fields("Heading") = ProcessForm.txtBoxHeading.Text objRecordset.Update
I can think of some work around like, creating a temp table and insert/update all the records from there or creating an UPDATE SQL statement.
Hi, this is probably a very easy question for you “Access-gods” out there.
I’ve made a database (MS Access 2000) with all my clients. I collect a lot of contact info, including e-mail.
I want to make a function which opens a new mail window (Outlook 2003) and automatically puts in the e-mail from my form (In the send-to field of outlook).
I have query that creates table with 2 records each with 2 columns (2x2) and they do not have indexed ID,and query is related to combo box in other form so results are not always same but it is always (2x2) and value types are always same,
So how to show those results in text box in form,lets say 4 text boxes ,every value in one text box, i assume that i need to use DLookup() but i was able only to show first record,did not know what criteria put to go to second record.
When i select that query and create report i get what i want but i cant copy those text boxes to form that i want.
I already success to run this dynamic query where the parameters taken from the main form.Now the problem is the query result doesn't show in the subform.But the status bar below tell me that it have 2 records in the subform, but there is no data in the subform, it just Blank.I already apllied the Requery or Refresh to the subform (in the Command Button), but it have no result too.This is the code:
I am trying to count rows in the result of one of the queries and I am having a bit of trouble getting it going.
The current code - this is executed as on-click event when clicked on List Box feed with query below.
What I want to add is simple if that when number of rows produced by the querry is 1 it will enable a picture item in the different part of the form, however it does not want to count the rows for me.
Code: Private Sub search_items_Click() Me.OBSFullFilledOrdersHolder.Enabled = True mysql = "SELECT orders.[order id] , STUDENTS.[first name]& ' ' & students.[surname] AS Name, students.[contact name] AS ContactName , ORDERS.[Online Bookshelf order] AS OBS , STUDENTS.[Delivery Address 1], STUDENTS.[Delivery Address 2], STUDENTS.[Delivery Address 3], STUDENTS.[Delivery Address 4]"
[Code] ....
The query itself works when tested but when used in code with DCount function will return error: Run-Time 2471 the expression you entered as query parameter prouced this error
I am working with Access 2010, on vista. What I have is a query made up of two tables, one product the other inventory. (see below) query.jpg
In the product table i have a field called "minimum reorder level". In the inventory table i have two fields one called "number in stock" and "number on order". What i want to happen is "number on order" to be filtered by the result, if the "number in stock", is less than "minimum reorder level", if it is, have the result placed in the "number on order" field. EG. if the "number in stock" = 2 and the "minimum reorder level" = 5 then 3 would be placed in the field "number on order" and only the second record from the query would be visible (see below) Query result.jpg The result of this would mean that the field "number on order" would be populated with the result and the and query would also use this to filter the record.
I want to add a number to my results within a query depending on the month and how many results. For example I have 10 results in my query 3 from January, 5 from March and the rest from April. The 3 from January would be 1,2,3. The five in March would be 1,2,3,4,5 and so on. Is it possible to do?
Suppose there's a simple query which has two fields, "year" and "graduates", where "year" can be grouped by "2012", "2013", etc and "graduates" are individual names.
How can I export the list of graduates to multiple excel files, with the filename based on "year"?
I have tried to set the output file in macro as "c:desktop" & query.year & ".xls"
But it's not working and the output filename is exactly "&query.year&.xls "and the file contains all year and all names.
I am trying to create a form button that will automatically email each row of a query result to myself. At first the VBA code worked fine with a standard query. However when I use it with a query that contains a reference to a combobox form such as "<=[Forms]![Reminder]![Monthsleft].[Value] And >=0" I get the 3061 run-time error and "Too few parameters. Expected 1." I have included the VBA code below.
Private Sub Command9_Click() Dim MyDb As DAO.Database Dim rsEmail As DAO.Recordset Dim sToName As String Dim sSubject As String Dim sMessageBody As String
[code]....
If you intend to renew the lease, terms and conditions will need to be submitted for ECC for approval (regardless of changes or not in lease rates). If the terms have yet to be confirmed, it is important to begin the negotiation process as soon as possible with a target to provide the ECC submission at least two months prior to the commencement date of the renewed lease. To ensure sufficient time for ECC approval before the contract expiry date, please prepare the ECC paper and obtain necessary endorsements. Submission details can be found here. The ECC submission template and PSD Questionnaire could be found from this link
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 have searched high and low for sending a simple UDP command. It looks like it might have been possible with older versions of access but the newer version maybe not. Sending a simple UDP command via VBA. I just want to take a number from a query and broadcast it to 10.20.20.255 via port 5000. very simple but yet seems impossible.