Table 1: tblMembershp

Table 2: tbl MembersTrans
Relationship:
I am a volunteer for a small non-profit organization. I maintain membership records and am also a member of the board of directors. Everyone is an unpaid volunteer. I want to generate a query (MS Access 2007) that will show which members have had no transactions (that is paid membership dues) for membership years 2009, 2010 and 2011. I have been unable to get the query to show any such information.
The database uses two tables, tblMembership (which contains data such as name, address, phone, email, etc.) and tblMembersTrans which records transactions as follows: TransDate, MembershipYear, TransType, and TransPaid (the amount of payment). TransID is an autonumber (Primary Key). MembershipID is the link from tblMemberhship and is an autonumber (Primary Key) in tblMembership. The link is MemberID in tblMembersTrans.
TransDate is the date of a payment, which can be for the current membership year, the past membership year if there was an arrearage, or the for a subsequent year or years. If a payment covers more than one membership year, a separate record is created to record the payments. TransType refers to Single, Family, etc. type of memberships. TransPaid is the amount of payment for a single membership year.
Everything has been working fine except for a new query that I tried to create. The query that I tried to create 1st from another query, as the source, that combines tblMembership fields and tblMembersTrans for years 1998 through 2013, and then I tried again, instead of using another query as the source, I tried creating the query from both tables. In neither case did the new query work properly. What I want is a query that will show all of the selected fields from the tblMembership (name, address, etc.) for those members who have NO transactions for MembershipYear 2009 and 2010 and 2011. The query also is set to only select those records where Status IS NULL and Archive = FALSE. (There are people who enjoy a certain status such that payment is not required. Those archived -- meaning Archive = Yes/true -- are excluded from qryMailingList and thus are not mailed publications. The purpose of the current query that I am trying to create should produce a list of those members who have not paid their membership contribution since the 2008 membership year, who are not archived and who do not enjoy a special status. That list would be used by the board of directors to determine if some should enjoy a special status, or should be archived and no longer be mailed publications.
In the query design view, I set MembershpYear to 2009 and 2010 and 2011. I also set all of the other transaction related fields to IS NULL. I think that perhaps the problem is that in reality MembershipYear will be null for all records where TransID is null. But I don't know how to get around that. I tried all sorts of various combinations but nothing worked, even including 2008 and setting the other years 2009-2011 to IS NULL, thinking that it would at least show those who last paid for the 2008 membership year but not thereafter. Even that did not work.
The query does not work in that it is empty, that is is shows no names, or any other data. It merely has one record line (new).
This is somewhat baffling because I have another query that shows data for those who have never paid anything for any year. For that query, I merely included one field from tblMembersTrans, that is, TransID and in design view, set it to: IS NULL, and it worked to return the selected fields from tblMemberhip for those members who never paid anything for any year. So why can't I get this to work just for selected years?
Thanks.
Allan
P.S. I was going to copy the database and delete the records and create some sample data; however, I was hoping that someone here could merely tell me how to set the query design window so that the query would work.

Table 2: tbl MembersTrans

Relationship:

I am a volunteer for a small non-profit organization. I maintain membership records and am also a member of the board of directors. Everyone is an unpaid volunteer. I want to generate a query (MS Access 2007) that will show which members have had no transactions (that is paid membership dues) for membership years 2009, 2010 and 2011. I have been unable to get the query to show any such information.
The database uses two tables, tblMembership (which contains data such as name, address, phone, email, etc.) and tblMembersTrans which records transactions as follows: TransDate, MembershipYear, TransType, and TransPaid (the amount of payment). TransID is an autonumber (Primary Key). MembershipID is the link from tblMemberhship and is an autonumber (Primary Key) in tblMembership. The link is MemberID in tblMembersTrans.
TransDate is the date of a payment, which can be for the current membership year, the past membership year if there was an arrearage, or the for a subsequent year or years. If a payment covers more than one membership year, a separate record is created to record the payments. TransType refers to Single, Family, etc. type of memberships. TransPaid is the amount of payment for a single membership year.
Everything has been working fine except for a new query that I tried to create. The query that I tried to create 1st from another query, as the source, that combines tblMembership fields and tblMembersTrans for years 1998 through 2013, and then I tried again, instead of using another query as the source, I tried creating the query from both tables. In neither case did the new query work properly. What I want is a query that will show all of the selected fields from the tblMembership (name, address, etc.) for those members who have NO transactions for MembershipYear 2009 and 2010 and 2011. The query also is set to only select those records where Status IS NULL and Archive = FALSE. (There are people who enjoy a certain status such that payment is not required. Those archived -- meaning Archive = Yes/true -- are excluded from qryMailingList and thus are not mailed publications. The purpose of the current query that I am trying to create should produce a list of those members who have not paid their membership contribution since the 2008 membership year, who are not archived and who do not enjoy a special status. That list would be used by the board of directors to determine if some should enjoy a special status, or should be archived and no longer be mailed publications.
In the query design view, I set MembershpYear to 2009 and 2010 and 2011. I also set all of the other transaction related fields to IS NULL. I think that perhaps the problem is that in reality MembershipYear will be null for all records where TransID is null. But I don't know how to get around that. I tried all sorts of various combinations but nothing worked, even including 2008 and setting the other years 2009-2011 to IS NULL, thinking that it would at least show those who last paid for the 2008 membership year but not thereafter. Even that did not work.
The query does not work in that it is empty, that is is shows no names, or any other data. It merely has one record line (new).
This is somewhat baffling because I have another query that shows data for those who have never paid anything for any year. For that query, I merely included one field from tblMembersTrans, that is, TransID and in design view, set it to: IS NULL, and it worked to return the selected fields from tblMemberhip for those members who never paid anything for any year. So why can't I get this to work just for selected years?
Thanks.
Allan
P.S. I was going to copy the database and delete the records and create some sample data; however, I was hoping that someone here could merely tell me how to set the query design window so that the query would work.
Last edited: