Solved

adding another column head to cross tab query

Posted on 2014-12-15
22
113 Views
Last Modified: 2014-12-26
i have sales transactions by store / date
i already did cross tab query like this :
TRANSFORM Sum(WeekAvg.DayAvg) AS SumOfDayAvg
SELECT WeekAvg.Store, Sum(WeekAvg.DayAvg) AS [Total Of DayAvg]
FROM WeekAvg
GROUP BY WeekAvg.Store
PIVOT WeekAvg.WekNo;

Open in new window

this will show store as row heading , WeekNumberOf The Year
and sales amount as row values
i woulk like to add also 2 cloumns under the week values to display the firstdayof week and last day of the week
i have the function already , but i want help in adding it to the cross tab query
0
Comment
Question by:NiceMan331
  • 10
  • 5
  • 3
  • +2
22 Comments
 
LVL 24

Expert Comment

by:Phillip Burton
ID: 40500167
I don't know exactly what you mean, but suspect it cannot be done easily.

In Microsoft Access' crosstab queries, you can only have one Column Heading and one Value option.
0
 

Author Comment

by:NiceMan331
ID: 40500173
ok , in conclusion , my cross tab gives week numbers at comun heading
any other way to select or to display the starting data and ending date of the week number ?
0
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 40500200
can you provide an example, perhaps an screenshot of what you would like it to look like in Excel?  and maybe some sample data as it is configured in your table.
0
 
LVL 24

Expert Comment

by:Phillip Burton
ID: 40500207
I would suggest using some functions in a form, i.e. not part of the query itself, but as Text Boxes.

It would help if you could provide what Dale has asked for, and also what is the start of Week 1 of this year is for your calculations.
0
 

Author Comment

by:NiceMan331
ID: 40500225
here are the data as now  ,
before.png
0
 

Author Comment

by:NiceMan331
ID: 40500231
and here as what i wish to add
After.png
0
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 40500248
You can't do that in a query.

But you can create a report or form. Insert the week data in the header and the query data in the details section.
Or you can create an empty form and just drag-and-drop the query to create a subform with datasheetview of your data. Then insert the week data in the header.

/gustav
0
 
LVL 24

Expert Comment

by:Phillip Burton
ID: 40500270
The above would make your Week 1 start on Sunday 29 December 2013 - is this correct?
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 40500313
this is doable, if you will export the crosstab query to excel and manipulate the Excel file using VBA codes.
0
 

Author Comment

by:NiceMan331
ID: 40500749
gustav
But you can create a report or form
may be this is the best solution , but the problem is if i have 52 weeks , i can't image that access report may be fit in one page

philip
The above would make your Week 1 start on Sunday 29 December 2013 - is this correct?
i have no problem about the value of the starting date , the function i use return correct value for me

rey
this is doable, if you will export the crosstab query to excel and manipulate the Excel file using VBA codes.
good suggestion , because i have to do chart in excell based on that query , but i have no experiance in how to make the manipulation in excell
0
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 40500780
>  the problem is if i have 52 weeks , i can't image that access report may be fit in one page ...

No, it won't. In fact, nothing will. But with a form having the crosstab as a subform, you can scroll horisontally and/or hide columns of little or no interest.

/gustav
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:NiceMan331
ID: 40500837
but any how i have to export it to excell to do chart analyse
0
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 40500846
Then you would export the crosstab to Excel, either a worksheet or a Named Range.

Look up the on-line help for:

    DoCmd.OutputTo
    DoCmd.TransferSpreadsheet

/gustav
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 40500855
<good suggestion , because i have to do chart in excell based on that query , but i have no experiance in how to make the manipulation in excell >

how much do you know about VBA codes ?
0
 

Author Comment

by:NiceMan331
ID: 40500924
how much do you know about VBA codes ?
i have a lot in VBA for access
but for excell and itc cells , i didn't do it before
0
 

Author Comment

by:NiceMan331
ID: 40516327
rey
i tried to upload the file here but it not accepted
here is sql for query weeklyavg
SELECT Accepted_Trans.Store, Accepted_Trans.WekNo, Sum(Accepted_Trans.Sales_Amt) AS SumOfSales_Amt, Count(Accepted_Trans.Trans_Date) AS CountOfTrans_Date, Sum(Accepted_Trans.Sales_Amt)/Count(Accepted_Trans.Trans_Date) AS DayAvg, First(Accepted_Trans.FrstDayWeek) AS FirstOfFrstDayWeek, Last(Accepted_Trans.LstDayWeek) AS LastOfLstDayWeek
FROM Accepted_Trans
GROUP BY Accepted_Trans.Store, Accepted_Trans.WekNo;

Open in new window

0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 40516360
@NiceMan

zip the db and upload.
0
 

Author Comment

by:NiceMan331
ID: 40516368
0
 
LVL 119

Accepted Solution

by:
Rey Obrero earned 500 total points
ID: 40516389
test this
Anal---rev.zip
0
 

Author Comment

by:NiceMan331
ID: 40517340
Excellent
Thanx
by the way , i just have small question in exporting to Excell
what is the code if i want to open a query , select specific data , and copy it to a specific cell in excell
for example if i want in same our example to only copy value of store number 135 where weeks in (5 to 10)
0
 
LVL 119

Expert Comment

by:Rey Obrero
ID: 40517703
just create another query with this statement and save as "myQuery"

TRANSFORM Sum(WeekAvg.DayAvg) AS SumOfDayAvg
SELECT WeekAvg.Store
FROM WeekAvg
WHERE (((WeekAvg.Store)=135))
GROUP BY WeekAvg.Store
PIVOT WeekAvg.WekNo In(5,6,7,8,9,10)

then in the code to export to excel, change

Set rs = CurrentDb.OpenRecordset("WeekAvgByStore")

with

Set rs = CurrentDb.OpenRecordset("myQuery")
0
 

Author Comment

by:NiceMan331
ID: 40518235
ok , thanx rey
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

In Debugging – Part 1, you learned the basics of the debugging process. You learned how to avoid bugs, as well as how to utilize the Immediate window in the debugging process. This article takes things to the next level by showing you how you can us…
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…
Familiarize people with the process of utilizing SQL Server views from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Access…
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

758 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

22 Experts available now in Live!

Get 1:1 Help Now