Solved

Export Query Results to Excel

Posted on 2012-03-27
15
372 Views
Last Modified: 2012-03-27
Hi Experts,

I have a query of X rows by Y xolumns, both X and Y I determine at run-time, and I get the propper results.

Considering that X and Y are unkown at design time, my question is how can I export the Query's results into Excel, and still have a Totals row at the end?

Thanks.
0
Comment
Question by:APD_Toronto
  • 7
  • 5
  • 2
  • +1
15 Comments
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
you can export the query to excel with

docmd.transferspreadsheet acexport,8, "queryName","C:\folder\myExcel.xls",true

after exporting, you need to open the excel file using VBA codes to set the formula to the corresponding cells or use the codes from this thread

http://www.experts-exchange.com/Microsoft/Development/MS_Access/Q_27209975.html#a36215605

rowCnt=Sheet.usedRange.rows.count  will give you the total rows used

you can use the count to set the formula to the correct cells
0
 
LVL 33

Expert Comment

by:Norie
Comment Utility
When exporting a query to Excel from Access you don't need to specify the no of columns(fields) and rows(records).

How and when are the totals added?
0
 

Author Comment

by:APD_Toronto
Comment Utility
instead of a fixed path, can i  export to the user's desktop?
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
yes

dim strPath
strPath=environ("userProfile") & "\Desktop\

docmd.transferspreadsheet acexport,8, "queryName", strPath & "myExcel.xls", true
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
Comment Utility
<and still have a Totals row at the end?>
Do you mean the totals using the "Totals" button in Datasheet view of the query?
This will include these totals:
DoCmd.OutputTo acOutputQuery, "YourQuery", acFormatXLS, "C:\YourFolder\YourFile.xls"

Still not quite sure what you mean by:
"I have a query of X rows by Y xolumns, both X and Y I determine at run-time"
a query's Columns are fixed, and the number of rows depends on any criteria...
So it is not clear what you mean by:<I have a query of X rows by Y xolumns, both X and Y I determine at run-time, >

Can you clarify...?

JeffCoachman
0
 

Author Comment

by:APD_Toronto
Comment Utility
Jeff, see http://www.experts-exchange.com/Microsoft/Development/MS_Access/Q_27648929.html

capricorn, using the rowcnt + 1 would give me the next row, say 29, but how would i get the col count and use that to:

A29 = "T O T A L S :"
B29 = Sum(B1:B28)
C29 = Sum(C1:C28)
...
...
?29 = Sum(?1:?28)
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
dim colCnt as integer
colCnt =Sheet.usedRange.columns.count
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
dim colCnt as integer, varChar as string
colCnt =Sheet.usedRange.columns.count

varChar=chr(64 + colCnt),  if colcnt is 7, varChar is  "G"
0
 

Author Comment

by:APD_Toronto
Comment Utility
If colcount is 3, how do I know the max is D29?  

Do I need a function to convert number to letter, or can i access a cell with 2 ints?
0
 
LVL 33

Expert Comment

by:Norie
Comment Utility
You can try this for the totals.

It assumes column A wil be populated for each row of data.

Dim TotalsRow As Long

Dim NoCols As Long

TotalsRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

NoCols = Cells(1, Columns.Count).End(xlToLeft).Column - 1

Range("A" & TotalsRow) = "T O T A L S"

Range("B" & TotalsRow).Resize(, NoCols) = "=SUM(R2C:R[-1]C)"

Open in new window

0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
APD_Toronto,
upload sample db with the table and query
0
 

Author Comment

by:APD_Toronto
Comment Utility
capricorn, i'm following your code example, but is it possible to enable the inteliSense dropdown after the period for the excel objects
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
you have to add  the excel object library to your references and use early binding instead of late binding (the codes from the link is late binding)
0
 

Author Comment

by:APD_Toronto
Comment Utility
how do i do early binding...

I think i'm almost done
0
 
LVL 119

Accepted Solution

by:
Rey Obrero earned 500 total points
Comment Utility
here is a sample of early binding

Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
xlApp.Visible = True
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

PL/SQL can be a very powerful tool for working directly with database tables. Being able to loop will allow you to perform more complex operations, but can be a little tricky to write correctly. This article will provide examples of basic loops alon…
This article descibes how to create a connection between Excel and SAP and how to move data from Excel to SAP or the other way around.
The viewer will learn how to use a discrete random variable to simulate the return on an investment over a period of years, create a Monte Carlo simulation using the discrete random variable, and create a graph to represent the possible returns over…
This Micro Tutorial demonstrates in Microsoft Excel how to consolidate your marketing data by creating an interactive charts using form controls. This creates cool drop-downs for viewers of your chart to choose from.

743 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

15 Experts available now in Live!

Get 1:1 Help Now