Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion GroupsFormsForms ProgrammingQueriesModules / DAO / VBAReports / PrintingMacrosDatabase DesignSecurityConversionImporting / LinkingSQL Server / ADPMultiuser / NetworkingReplicationSetup / ConfigurationDeveloper ToolkitsActiveX ControlsNew UsersGeneral 1General 2
Access DirectoryToolsTutorialsUser Groups
Related Topics
SQL ServerOther DB ProductsMS OfficeMore Topics ...

MS Access Forum / Queries / March 2006

Tip: Looking for answers? Try searching our database.

Last date value from records

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Zack Barresse - 28 Mar 2006 20:12 GMT
Hello,

Still learning Access, am used to Excel/VBA.  I asked this question at
MdbMakers.com (formerly AccessVBA.com) and it's still not working right for
me.  (Link: http://www.mdbmakers.com/forums/showthread.php?t=19767)

I have a query I want to produce.  There are multiple fields in a table
(Soil_Samples), one of which is a SampleDate field.  There is only one
sample per Field per SampleDate, so no duplicates there.  I want to
show/print all of the last SampleDate's for each Field sampled (record).

If you follow the thread linked above I almost have it all, it gets very
close.  I'd appreciate any help you can give.  I've switched all of this
data over from Excel and am having a hard time getting what I want.
Previous to this I had not used Access before.  The people at my work are
starting to want this more and more.  Thanks for looking.

Signature

Regards,
Zack Barresse, aka firefytr
To email, remove NOSPAM

Tom Ellison - 28 Mar 2006 20:28 GMT
Dear Zack:

If all you need is just the date for the most recent sample, use an
aggregate (Totals) query and use the MAX() of the date.

In the query design grid, select the table and then the desired columns.  At
the top, click on the "sigma" (a Greek letter looks like an 'M' on its
side).  A new row of selections appears.  Choose Max() for the date column.

This may be a start for you on this.

Tom Ellison

> Hello,
>
[quoted text clipped - 12 lines]
> Previous to this I had not used Access before.  The people at my work are
> starting to want this more and more.  Thanks for looking.
Zack Barresse - 28 Mar 2006 21:39 GMT
Hi Tom,

Thanks for the reply.  This does work, yes, but when I add more fields to it
to return for the results from the table (7 additional fields) I get
multiple dates.  I'm not really sure where to go from here.  Anything you
can add to help would be greatly appreciated.  Let me know if you need more
info.

Signature

Regards,
Zack Barresse, aka firefytr
To email, remove NOSPAM

> Dear Zack:
>
[quoted text clipped - 26 lines]
>> Previous to this I had not used Access before.  The people at my work are
>> starting to want this more and more.  Thanks for looking.
Tom Ellison - 28 Mar 2006 21:54 GMT
Dear Zack:

One purpose of a "totals" query is to combine multiple rows into one, and to
have columns across these subsets of rows that are "aggregated" with
functions like SUM, COUNT, MAX, and MIN.

Those columns not aggregated are GROUPed.  This means that every combination
of values in those columns that are grouped will form a subset of the rows
within which the aggregated columns are evaluated.

Sounds like a bunch of hyper-technical gunk, right?

OK, make it simple.

You have a soil sample for a field.  So you see:

Field    Most Recent Sample Date
1            5/19/2005
2            6/03/2005

Now, you add a column, say, who took the sample, by initials.  Now, if there
have been 3 samples last year taken by 3 different people, what do you want
to see in the column for the person?  Likely you want to see the one who
took the sample that was most recent.  Is this right?  Is this the kind of
result you want of all 7 of those additional fields you mention?

This will take a different query altogether.  Rather than just finding what
that date is, we must use that date to find a whole row of data from which
to return those 7 columns.

If this is a correct assessment, please do this.  Open the query in design
view and switch to SQL View.  Post the text of the query back here.  I'll
work from that to get you the kind of thing you want.

Make sure you send the malfunctioning version of the query that shows the 7
additional fields you want.

Tom Ellison

> Hi Tom,
>
[quoted text clipped - 34 lines]
>>> Previous to this I had not used Access before.  The people at my work
>>> are starting to want this more and more.  Thanks for looking.
Zack Barresse - 28 Mar 2006 22:05 GMT
Yes Tom, that is spot on, exactly what I'm looking for in your description.
Here is the SQL for two fields in my query ...

SELECT DISTINCT Max(Soil_Samples.SampleDate) AS MaxOfSampleDate,
Soil_Samples.Field
FROM Soil_Samples
GROUP BY Soil_Samples.Field;

When I add the other fields, this is what it looks like ...

SELECT DISTINCT Max(Soil_Samples.SampleDate) AS MaxOfSampleDate,
Soil_Samples.Field, Soil_Samples.Crop, Soil_Samples.NO3_1ft,
Soil_Samples.NO3_2ft, Soil_Samples.NO3_3ft, Soil_Samples.NO3_4ft,
Soil_Samples.NO3_5ft, Soil_Samples.NH4_1ft
FROM Soil_Samples
GROUP BY Soil_Samples.Field, Soil_Samples.Crop, Soil_Samples.NO3_1ft,
Soil_Samples.NO3_2ft, Soil_Samples.NO3_3ft, Soil_Samples.NO3_4ft,
Soil_Samples.NO3_5ft, Soil_Samples.NH4_1ft;

Does this get you what you need?  Let me know if you need anything else.
Thanks for your time Tom, much appreciated.  :)

Signature

Regards,
Zack Barresse, aka firefytr
To email, remove NOSPAM

> Dear Zack:
>
[quoted text clipped - 74 lines]
>>>> want. Previous to this I had not used Access before.  The people at my
>>>> work are starting to want this more and more.  Thanks for looking.
Tom Ellison - 28 Mar 2006 22:31 GMT
Dear Zack:

SELECT SampleDate, Field, Crop, NO3_1ft, NO3_2ft,
   NO3_3ft, NO3_4ft, NO3_5ft, NH4_1ft
 FROM Soil_Samples T
 WHERE SampleDate =
   (SELECT MAX(T1.SampleDate)
     FROM Soil_Samples T1
     WHERE T1.Field = T.Field)

I think this should do it.

The technique is know as a correlated subquery (the last 3 lines of code).
It uses aliases T and T1 for the same table, so the query operates
independently on two distinct copies of the table on which it is abase.

Tom Ellison

> Yes Tom, that is spot on, exactly what I'm looking for in your
> description. Here is the SQL for two fields in my query ...
[quoted text clipped - 98 lines]
>>>>> want. Previous to this I had not used Access before.  The people at my
>>>>> work are starting to want this more and more.  Thanks for looking.
Zack Barresse - 28 Mar 2006 22:57 GMT
That absolutely does it for me Tom!  Thank you very much!  Now comes the
hard part - understanding your solution.  :)

I can't thank you enough.  I would have never gotten that on my own.  Much
appreciated.  Let me know if I can ever do anything *Excel'ly* for you.  :)

Signature

Regards,
Zack Barresse, aka firefytr
To email, remove NOSPAM

> Dear Zack:
>
[quoted text clipped - 116 lines]
>>>>>> want. Previous to this I had not used Access before.  The people at
>>>>>> my work are starting to want this more and more.  Thanks for looking.
Tom Ellison - 28 Mar 2006 23:02 GMT
Dear Zack:

The explanation is there there are two queries running on the same table.

For every row produced from the "outer" query, the inner query is consulted
to find the most recent sample date for that field.  This date is then used
to filter out all the samples for other dates.

Tom Ellison

> That absolutely does it for me Tom!  Thank you very much!  Now comes the
> hard part - understanding your solution.  :)
[quoted text clipped - 124 lines]
>>>>>>> people at my work are starting to want this more and more.  Thanks
>>>>>>> for looking.
Zack Barresse - 28 Mar 2006 23:20 GMT
Thanks for the explanation.  It's quite a bit to chew, especially for an
Access newb like myself.  Can I ask you another quick question?  If I run a
query and change some records in that query, will it change the data in the
orignial table?  Afaik, this is the case.  Please correct me if I'm wrong.

Tom, your help has been invaluable to me.  Thank you very much for your
service!

-Zack Barresse, MVP: Excel

> Dear Zack:
>
[quoted text clipped - 135 lines]
>>>>>>>> people at my work are starting to want this more and more.  Thanks
>>>>>>>> for looking.
Tom Ellison - 29 Mar 2006 00:17 GMT
Dear Zack:

Buy me a beer at the next summit, OK?

Some queries are "updatable" others are not.  What we have just worked on
would be, I'm quite sure.

Generally, if it isn't updatable it won't let you change things at all.  If
it lets you change, then it's saving the changes.

Tom Ellison

> Thanks for the explanation.  It's quite a bit to chew, especially for an
> Access newb like myself.  Can I ask you another quick question?  If I run
[quoted text clipped - 146 lines]
>>>>>>>>> before.  The people at my work are starting to want this more and
>>>>>>>>> more.  Thanks for looking.
Zack Barresse - 29 Mar 2006 01:27 GMT
> Buy me a beer at the next summit, OK?

You got it.  ;)

> Some queries are "updatable" others are not.  What we have just worked on
> would be, I'm quite sure.
[quoted text clipped - 3 lines]
>
> Tom Ellison

Thanks for that Tom.  :)
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.