From: AccessKay on
Not sure if anyone knows the answer to this but I welcome any suggestions for
things to try. I have a crosstab query layered off of a Union query. I also
have a form with a text box for the user to choose the year and a command
button that pulls the report. It works fine if I choose the year 2009 or
earlier but if I choose 2010 I receive an error message, “…database engine
does not recognize “ as a valid field name or expression. I have not a clue
as to what is happening.

Thanks for any suggestions.

Here's my query…if this helps any.

PARAMETERS [Forms]![frmQtr]![txtEnterYr] Text ( 255 );

TRANSFORM Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS
SumOfSumOfLbr_Total_Cost

SELECT zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
Format([TransDate],"yyyy") AS DYear,
Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS [Total Of SumOfLbr_Total_Cost]

FROM zqryforTotalsQTR

WHERE (((Format([TransDate],"yyyy"))=[Forms]![frmQtr]![txtEnterYr]))

GROUP BY zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
Format([TransDate],"yyyy")

PIVOT "Qtr " & Format([TransDate],"q");

From: AccessKay on
Thanks Karl. It didn't work(syntax errors) but I get your logic.

"KARL DEWEY" wrote:

> Try it this way --
> PARAMETERS [Forms]![frmQtr]![txtEnterYr] Long;
> .........
> WHERE Year([TransDate]=[Forms]![frmQtr]![txtEnterYr]
>
> --
> Build a little, test a little.
>
>
> "AccessKay" wrote:
>
> > Not sure if anyone knows the answer to this but I welcome any suggestions for
> > things to try. I have a crosstab query layered off of a Union query. I also
> > have a form with a text box for the user to choose the year and a command
> > button that pulls the report. It works fine if I choose the year 2009 or
> > earlier but if I choose 2010 I receive an error message, “…database engine
> > does not recognize “ as a valid field name or expression. I have not a clue
> > as to what is happening.
> >
> > Thanks for any suggestions.
> >
> > Here's my query…if this helps any.
> >
> > PARAMETERS [Forms]![frmQtr]![txtEnterYr] Text ( 255 );
> >
> > TRANSFORM Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS
> > SumOfSumOfLbr_Total_Cost
> >
> > SELECT zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
> > Format([TransDate],"yyyy") AS DYear,
> > Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS [Total Of SumOfLbr_Total_Cost]
> >
> > FROM zqryforTotalsQTR
> >
> > WHERE (((Format([TransDate],"yyyy"))=[Forms]![frmQtr]![txtEnterYr]))
> >
> > GROUP BY zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
> > Format([TransDate],"yyyy")
> >
> > PIVOT "Qtr " & Format([TransDate],"q");
> >
From: Jerry Whittle on
I've found it best to put any parameters and criteria in another query then
base the crosstab on the first query.

Also I'd have to wonder about using Text for the parameter data type. I'd
rather have it a number and do something like this:

WHERE (((Year([TransDate]))=[Forms]![frmQtr]![txtEnterYr]))

Lastly does the form have a plain text box , combo box, or list box? Is it
bound or something unbound where the user types in the value? You might need
to use the .text or .value something like below expecially if it's a combo
box.

[Forms]![frmQtr]![txtEnterYr].text
--
Jerry Whittle, Microsoft Access MVP
Light. Strong. Cheap. Pick two. Keith Bontrager - Bicycle Builder.


"AccessKay" wrote:

> Not sure if anyone knows the answer to this but I welcome any suggestions for
> things to try. I have a crosstab query layered off of a Union query. I also
> have a form with a text box for the user to choose the year and a command
> button that pulls the report. It works fine if I choose the year 2009 or
> earlier but if I choose 2010 I receive an error message, “…database engine
> does not recognize “ as a valid field name or expression. I have not a clue
> as to what is happening.
>
> Thanks for any suggestions.
>
> Here's my query…if this helps any.
>
> PARAMETERS [Forms]![frmQtr]![txtEnterYr] Text ( 255 );
>
> TRANSFORM Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS
> SumOfSumOfLbr_Total_Cost
>
> SELECT zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
> Format([TransDate],"yyyy") AS DYear,
> Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS [Total Of SumOfLbr_Total_Cost]
>
> FROM zqryforTotalsQTR
>
> WHERE (((Format([TransDate],"yyyy"))=[Forms]![frmQtr]![txtEnterYr]))
>
> GROUP BY zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
> Format([TransDate],"yyyy")
>
> PIVOT "Qtr " & Format([TransDate],"q");
>
From: AccessKay on
Hi Jerry,
I'm thinking about what you said about using the crosstab query's Column
Heading to define the fields in my report. How could I do this? I tried to
reference the form under the column heading but received an error message
about it being too complicate to perform…

I also now have some idea about why the year 2010 won't work with my
form/report. It works with my query when I enter the year in the parameter
(asking for form). But I'm thinking that because I only have data for one
quarter in 2010, that my report doesn't know how to handle the missing fields
for Q2,Q3,and Q4. Have you had any experience with this?

Here is my SQL again:
PARAMETERS [Forms]![frmQtr]![txtEnterYr] Long;
TRANSFORM Sum(Nz([SumOfLbr_Total_Cost])) AS TotalCost
SELECT qryforTotals.Category, qryforTotals.DGroup,
Sum(Nz([SumOfLbr_Total_Cost])) AS [Total Of SumOfLbr_Total_Cost]
FROM qryforTotals
WHERE (((Year([TransDate]))=[Forms]![frmQtr]![txtEnterYr]))
GROUP BY qryforTotals.Category, qryforTotals.DGroup
PIVOT "Qtr " & Format([TransDate],"q");

Thanks again!


"Jerry Whittle" wrote:

> Forms and reports based on crosstab queries can be a problem. A crosstab
> could produce many fields with different names and a form or report is
> expecting just certain fields and names.
>
> If you know all the fields that you want on the form or report, you can use
> the crosstab query's Column Headings property to define them. A form or
> report will work then.
> --
> Jerry Whittle, Microsoft Access MVP
> Light. Strong. Cheap. Pick two. Keith Bontrager - Bicycle Builder.
>
>
> "AccessKay" wrote:
>
> > Thanks for all the useful tips and suggestions. I built the select query and
> > then based my crosstab on it but I was having problems with my form relating
> > to the query. I think my brain is shot so I'm going to try again tomorrow.
> > I appreciate your help.
> >
> > "Jerry Whittle" wrote:
> >
> > > I've found it best to put any parameters and criteria in another query then
> > > base the crosstab on the first query.
> > >
> > > Also I'd have to wonder about using Text for the parameter data type. I'd
> > > rather have it a number and do something like this:
> > >
> > > WHERE (((Year([TransDate]))=[Forms]![frmQtr]![txtEnterYr]))
> > >
> > > Lastly does the form have a plain text box , combo box, or list box? Is it
> > > bound or something unbound where the user types in the value? You might need
> > > to use the .text or .value something like below expecially if it's a combo
> > > box.
> > >
> > > [Forms]![frmQtr]![txtEnterYr].text
> > > --
> > > Jerry Whittle, Microsoft Access MVP
> > > Light. Strong. Cheap. Pick two. Keith Bontrager - Bicycle Builder.
> > >
> > >
> > > "AccessKay" wrote:
> > >
> > > > Not sure if anyone knows the answer to this but I welcome any suggestions for
> > > > things to try. I have a crosstab query layered off of a Union query. I also
> > > > have a form with a text box for the user to choose the year and a command
> > > > button that pulls the report. It works fine if I choose the year 2009 or
> > > > earlier but if I choose 2010 I receive an error message, “…database engine
> > > > does not recognize “ as a valid field name or expression. I have not a clue
> > > > as to what is happening.
> > > >
> > > > Thanks for any suggestions.
> > > >
> > > > Here's my query…if this helps any.
> > > >
> > > > PARAMETERS [Forms]![frmQtr]![txtEnterYr] Text ( 255 );
> > > >
> > > > TRANSFORM Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS
> > > > SumOfSumOfLbr_Total_Cost
> > > >
> > > > SELECT zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
> > > > Format([TransDate],"yyyy") AS DYear,
> > > > Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS [Total Of SumOfLbr_Total_Cost]
> > > >
> > > > FROM zqryforTotalsQTR
> > > >
> > > > WHERE (((Format([TransDate],"yyyy"))=[Forms]![frmQtr]![txtEnterYr]))
> > > >
> > > > GROUP BY zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
> > > > Format([TransDate],"yyyy")
> > > >
> > > > PIVOT "Qtr " & Format([TransDate],"q");
> > > >
From: Jerry Whittle on
Forms and reports based on crosstab queries can be a problem. A crosstab
could produce many fields with different names and a form or report is
expecting just certain fields and names.

If you know all the fields that you want on the form or report, you can use
the crosstab query's Column Headings property to define them. A form or
report will work then.
--
Jerry Whittle, Microsoft Access MVP
Light. Strong. Cheap. Pick two. Keith Bontrager - Bicycle Builder.


"AccessKay" wrote:

> Thanks for all the useful tips and suggestions. I built the select query and
> then based my crosstab on it but I was having problems with my form relating
> to the query. I think my brain is shot so I'm going to try again tomorrow.
> I appreciate your help.
>
> "Jerry Whittle" wrote:
>
> > I've found it best to put any parameters and criteria in another query then
> > base the crosstab on the first query.
> >
> > Also I'd have to wonder about using Text for the parameter data type. I'd
> > rather have it a number and do something like this:
> >
> > WHERE (((Year([TransDate]))=[Forms]![frmQtr]![txtEnterYr]))
> >
> > Lastly does the form have a plain text box , combo box, or list box? Is it
> > bound or something unbound where the user types in the value? You might need
> > to use the .text or .value something like below expecially if it's a combo
> > box.
> >
> > [Forms]![frmQtr]![txtEnterYr].text
> > --
> > Jerry Whittle, Microsoft Access MVP
> > Light. Strong. Cheap. Pick two. Keith Bontrager - Bicycle Builder.
> >
> >
> > "AccessKay" wrote:
> >
> > > Not sure if anyone knows the answer to this but I welcome any suggestions for
> > > things to try. I have a crosstab query layered off of a Union query. I also
> > > have a form with a text box for the user to choose the year and a command
> > > button that pulls the report. It works fine if I choose the year 2009 or
> > > earlier but if I choose 2010 I receive an error message, “…database engine
> > > does not recognize “ as a valid field name or expression. I have not a clue
> > > as to what is happening.
> > >
> > > Thanks for any suggestions.
> > >
> > > Here's my query…if this helps any.
> > >
> > > PARAMETERS [Forms]![frmQtr]![txtEnterYr] Text ( 255 );
> > >
> > > TRANSFORM Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS
> > > SumOfSumOfLbr_Total_Cost
> > >
> > > SELECT zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
> > > Format([TransDate],"yyyy") AS DYear,
> > > Sum(zqryforTotalsQTR.SumOfLbr_Total_Cost) AS [Total Of SumOfLbr_Total_Cost]
> > >
> > > FROM zqryforTotalsQTR
> > >
> > > WHERE (((Format([TransDate],"yyyy"))=[Forms]![frmQtr]![txtEnterYr]))
> > >
> > > GROUP BY zqryforTotalsQTR.Category, zqryforTotalsQTR.DGroup,
> > > Format([TransDate],"yyyy")
> > >
> > > PIVOT "Qtr " & Format([TransDate],"q");
> > >