Maybe Andy answered your question(s), but this is how I found this particular problem.
First, here is an article on debugging by Chip Pearson. http://www.cpearson.com/excel/debug.htm
So I opened the form "frmAttendance"..... and was taken to the debug window. The error dialog box indicates it is something to do with "MeetingID".
Looking at the highlighted line, I see it is in a function with two arguments: "MeetingID" and "Organization".
The line that was highlighted has an aggregate function "DCount"; having used aggregate functions before, I know there are 3 things to check: Expr, Domain & Criteria.
The criteria is from the function arguments, so that seems OK.
The Domain can be a table or a query. In this case it is a multi-table query. I opened the query in design view to see what fields are available.
The EXPR is a field in the domain. But in this case, there is no field named "MeetingID" in the query. Looking at the tables in the query, there is also no FIELD named "MeetingID".... but there is a field named "ysnMeetingID". I changed the names and opened the form again.
Tada! no error.
So it was obvious that, in two places and several lines, "MeetingID" should be "ysnMeetingID". Don't understand why the prefix "ysn"...... to me, that indicates "YesNo". The PK field is an autonumber type field with a name that indicates it is a Boolean type field is...... confusing.
I used to use a prefix of "p" for the arguments (parameters) in functions/subs until I created a function that needed the age of an employee. I named the argument "pAge". While I read it as "p Age", Access saw it as "Page" - a reserved word.Now I am trying to use a prefix of "arg"..