I think reporting will be easier if you have a record in your Income for all instances where your orginization receives income--whether dues, donations or other funds. These records can be linked to your members table to enable you to see which members have paid their dues. I'd even log all expenses, using a separate field, in this table so that I can set up a typical accounting ledger type view of all income and expense transactions.
Your income table might have these fields:
__pk_IncomeID (an auto-entered serial number to serve as the primary key)
Transactiondate (date field)
TransType (Type of transaction, on value in this field would be "Dues")
Income (Number, dollar amount recieved)
Expense (Number, Dollar amount disbursed)
cBal (calcualtion field, Income - Expense )
Balance ( SummaryField, Total of cBal)
_fk_memberID (Number, links to __pk_MemberID field in the members table, leave this field empty for non dues transactions)
A portal to this table on a member based layout can be used to record dues when paid by that member. It could use this relationship:
Members::__pk_MemberID = IncExpLedger::_fk_memberID
If you define a relationship between members and this table that is sorted in descending order by date, the most recent dues payment will be the first related record and thus you can set up a report that lists all members and their most recent dues payment. Comparing the TransactionDate of that payment record to the current date will then enable you to determine their membership status.