Solved

Use DoCmd.SendObject to Send an Excel .xls with Filename Based on an Order Number

Posted on 2008-10-01
9
393 Views
Last Modified: 2013-11-27
Hi Experts!

I have an Access 2003 Db that uses DoCmd.SendObject to send a vendor an order based on a query called "Qry_Order". This works great, but it would be nice if the filename was unique to each order . As it is now, the attached .xls file is always named after the query so: "Qry_Order.xls".

There is an order number that I would like to pass to create the filename from. It is called "PR_Number" and looks like "PR1058", for example and this would, ideally be passed to create "PR1058.xls"  I have no idea how to do this. I have a combo box I can reference for the PR_Number. Just don't know it it can be done.

Here is the DoCmd statement I have now:
DoCmd.SendObject acSendQuery, "Qry_Order", "Microsoft Excel", _
myVendor, _
, , StrSubject

Thanks,

Kevin
0
Comment
Question by:k_smee
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
9 Comments
 
LVL 16

Expert Comment

by:Chuck Wood
ID: 22616254
Try this:
Use the TransferSpreadsheet method to export the query to a spreadsheet with the name you want to use then use the SendObject method to send the spreadsheet to the vendor.
0
 

Author Comment

by:k_smee
ID: 22616674
I got the DoCmd.TransferSpreadsheet to make the file in my C:\Temp folder, but I don't see that the DoCmd.SendObject method has provision to send anything other than an Access object like a query, table, etc...Am I missing something?
0
 
LVL 16

Accepted Solution

by:
Chuck Wood earned 125 total points
ID: 22616835
You are correct.

You can use the attached code together with the attached class module (change txt to cls and import) to email your spreadsheet.

Public Sub SendEmail()
    Dim cls As New clsSendEmail, blnSent As Boolean
    blnSent = cls.Email("someone@somewhere.com", "Subject", "Body", , "ExcelPathAndName")
    If Not blnSent Then MsgBox "The Email Failed", vbInformation, "Email Failed"
End Sub

Open in new window

clsSendEmail.txt
0
Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

 

Author Comment

by:k_smee
ID: 22619887
Thanks! I'll give it a shot in the morning. The db is at work..
0
 

Author Comment

by:k_smee
ID: 22624417
This works great. Is there a way to have it pop up the Outlook mail object to pick recipients or do i need to hard code them? Some of my users like to be able to add other recipients. Thanks! Kevin
0
 
LVL 16

Expert Comment

by:Chuck Wood
ID: 22624500
You can use an InputBox or a UserForm to let them add recipients. Opening the mail item is something I haven't done before.
0
 

Author Comment

by:k_smee
ID: 22636751
I figured out how to do the display object before sending. I just added:
outMsg.Display True

This is right before the .Send command.
Thanks for all the help !
0
 

Author Closing Comment

by:k_smee
ID: 31501992
Excellent help on this one, Thanks!
0
 
LVL 16

Expert Comment

by:Chuck Wood
ID: 22636788
I am very glad you found the answer. And thank you for sharing it with the rest of us. Thank for the kind words and the high grade. Good luck on your project.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes two methods for creating a combo box that can be used to add new items to the row source -- one for simple lookup tables, and one for a more complex row source where the new item needs data for several fields.
You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question