Jumat, 15 Juli 2011

RE: [MS_AccessPros] Updating table with Age Group entry

I would not use Switch() since WHEN the age groups change, you would need to change the expression. Consider changing your age group lookup table to contain the AgeGroupID, FromAge, ToAge, and AgeGroupName. You can then add this table to your query without any joins. Set the criteria under the calculated age to:

Between FromAge and ToAge

This will allow you to place the AgeGroupID and AgeGroupName in the query output.

Duane Hookom
MS Access MVP

To: MS_Access_Professionals@yahoogroups.com
From: dbalorenzini@yahoo.com
Date: Fri, 15 Jul 2011 10:38:10 -0700
Subject: Re: [MS_AccessPros] Updating table with Age Group entry


This works great. Is there way in Query B that I change AgeGroupID to a numeric field so I can link it to tlkpAgeGroup table so I can pull out the AgeGroupName field to display the name of the Age group?

With warm regards,

Arthur Lorenzini| SQL Server/Access Developer l alorenzin@live.com
Office: 605-338-0947| Mobile: 605-857-9137 | Fax: 605-338-0947

1316 E. 7th Street
Sioux Falls, SD 57103
SQL Server Development
Database Adminstration Services
Microsoft Access Development
Grant Writing TA Services
IT Assessment Services
Software Application Training

From: John Viescas <john@viescas.com>
To: MS_Access_Professionals@yahoogroups.com
Sent: Friday, July 15, 2011 12:23 PM
Subject: RE: [MS_AccessPros] Updating table with Age Group entry


Art-

Try this:

QueryA:
SELECT StudentID, DateDiff("yyyy",[DOB],Date())+Int(Format(Date(),"mmdd")<Format([DOB],"mmdd")) AS Age, Switch([Age] <= 18, 1, [Age] <= 21, 2, [Age] <= 25, 3, [Age] <= 30,4, [Age] <= 35, 5, [Age] <= 40, 6, [Age] <= 49, 7, True, 8) As AgeGroup
FROM tblStudent

QueryB:
SELECT Count(StudentID) As Total, QueryA.AgeGroup
FROM QueryA
GROUP BY QueryA.AgeGroup

John Viescas, author
Microsoft Office Access 2010 Inside Out
Microsoft Office Access 2007 Inside Out
Building Microsoft Access Applications
Microsoft Office Access 2003 Inside Out
SQL Queries for Mere Mortals
http://www.viescas.com/
(Paris, France)

-----Original Message-----
From: MS_Access_Professionals@yahoogroups.com [mailto:MS_Access_Professionals@yahoogroups.com] On Behalf Of Art Lorenzini
Sent: Friday, July 15, 2011 6:56 PM
To: MS_Access_Professionals@yahoogroups.com
Subject: Re: [MS_AccessPros] Updating table with Age Group entry

OK this worked up to the point I tried to add the Count:

SELECT Count(tblStudent.StudentID) AS Total, DateDiff("yyyy",[DOB],Date())+Int(Format(Date(),"mmdd")<Format([DOB],"mmdd")) AS Age, Switch([Age] <= 18, 1, [Age] <= 21, 2, [Age] <= 25, 3, [Age] <= 30,4, [Age] <= 35, 5, [Age] <= 40, 6, [Age] <= 49, 7, True, 8) As AgeGroup
FROM tblStudent

I understand tha aggregate error but how do I put the expressions into a GROUP BY?

With warm regards,

Arthur Lorenzini| SQL Server/Access Developer l alorenzin@live.com
Office: 605-338-0947| Mobile: 605-857-9137 | Fax: 605-338-0947

1316 E. 7th Street
Sioux Falls, SD 57103
SQL Server Development
Database Adminstration Services
Microsoft Access Development
Grant Writing TA Services
IT Assessment Services
Software Application Training

From: John Viescas <john@viescas.com>
To: MS_Access_Professionals@yahoogroups.com
Sent: Friday, July 15, 2011 11:47 AM
Subject: RE: [MS_AccessPros] Updating table with Age Group entry

Art-

Put those two expressions in a query on your table, then run it to see if you like the result. You can then GROUP BY on the AgeGroupID to get what you want.

John Viescas, author
Microsoft Office Access 2010 Inside Out
Microsoft Office Access 2007 Inside Out
Building Microsoft Access Applications
Microsoft Office Access 2003 Inside Out
SQL Queries for Mere Mortals
http://www.viescas.com/
(Paris, France)

-----Original Message-----
From: MS_Access_Professionals@yahoogroups.com [mailto:MS_Access_Professionals@yahoogroups.com] On Behalf Of Art Lorenzini
Sent: Friday, July 15, 2011 6:37 PM
To: MS_Access_Professionals@yahoogroups.com
Subject: Re: [MS_AccessPros] Updating table with Age Group entry

OK, that make sense but I how would I do it in a query? I need to list the age groups and their appriopriate student counts.

With warm regards,

Arthur Lorenzini| SQL Server/Access Developer l alorenzin@live.com
Office: 605-338-0947| Mobile: 605-857-9137 | Fax: 605-338-0947

1316 E. 7th Street
Sioux Falls, SD 57103
SQL Server Development
Database Adminstration Services
Microsoft Access Development
Grant Writing TA Services
IT Assessment Services
Software Application Training

From: John Viescas <john@viescas.com>
To: MS_Access_Professionals@yahoogroups.com
Sent: Friday, July 15, 2011 11:33 AM
Subject: RE: [MS_AccessPros] Updating table with Age Group entry

Art-

Because the age changes over time, you should NOT store age group in your table.
You should calculate it in a query:

Age: DateDiff("yyyy", [DOB], Date()) + Int(Format(Date(), "mmdd") <
Format([DOB], "mmdd"))

AgeGroupID: Switch([Age] <= 18, 1, [Age] <= 21, 2, [Age] <= 25, 3, [Age] <= 30,
4, [Age] <= 35, 5, [Age] <= 40, 6, [Age] <= 49, 7, True, 8)

John Viescas, author
Microsoft Office Access 2010 Inside Out
Microsoft Office Access 2007 Inside Out
Building Microsoft Access Applications
Microsoft Office Access 2003 Inside Out
SQL Queries for Mere Mortals
http://www.viescas.com/
(Paris, France)

-----Original Message-----
From: MS_Access_Professionals@yahoogroups.com
[mailto:MS_Access_Professionals@yahoogroups.com] On Behalf Of Art
Sent: Friday, July 15, 2011 6:12 PM
To: MS_Access_Professionals@yahoogroups.com
Subject: [MS_AccessPros] Updating table with Age Group entry

I have a table called tblStudent:

tblStudent
StudentID PK
LastName
FirstName
DOB
AgeGroupID - FK to tlkpAgeGroup

The tlkpAgeGroup table contains the following records:
AgeGroupID AgeGroupName
1 18 and Under
2 19 - 21
3 22 - 25
4 26 - 30
5 30 - 35
6 36 - 40
7 41 - 49
8 50 and over

What I am trying to do is update the AgeGroupID field in tblStudent with the
appropriate number based on the DOB. Any ideas?

Thanks,

Art Lorenzini,
Sioux Falls, SD

------------------------------------

Yahoo! Groups Links

[Non-text portions of this message have been removed]

------------------------------------

Yahoo! Groups Links

[Non-text portions of this message have been removed]

------------------------------------

Yahoo! Groups Links

[Non-text portions of this message have been removed]


[Non-text portions of this message have been removed]

------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/MS_Access_Professionals/

<*> Your email settings:
Individual Email | Traditional

<*> To change settings online go to:
http://groups.yahoo.com/group/MS_Access_Professionals/join
(Yahoo! ID required)

<*> To change settings via email:
MS_Access_Professionals-digest@yahoogroups.com
MS_Access_Professionals-fullfeatured@yahoogroups.com

<*> To unsubscribe from this group, send an email to:
MS_Access_Professionals-unsubscribe@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/

Tidak ada komentar:

Posting Komentar