Solved

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

Posted on 2008-10-01
9
371 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
  • 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

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

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

The first two articles in this short series — Using a Criteria Form to Filter Records (http://www.experts-exchange.com/A_6069.html) and Building a Custom Filter (http://www.experts-exchange.com/A_6070.html) — discuss in some detail how a form can be…
Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…

813 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now