The missing 'AS' did throw me.

I've now got it as:
VB Code:
  1. strQuery = "SELECT Surname & Chr(44) & Chr(32) & Forenames " & _
  2.       "AS FullName, IIF(IsNull(QueryDateOnly.MemID), ""N"", ""Y"") " & _
  3.       "AS Present FROM Members LEFT JOIN " & _
  4.       "(SELECT MemID FROM RegMem WHERE SDate = #" & _
  5.       Format("2005-04-07", "yyyy-mm-dd") & "#) AS QueryDateOnly " & _
  6.       "ON Members.MemID = QueryDateOnly.MemID;"

But why is the subquery needed?