Results 1 to 5 of 5
  1. #1
    Ted C is offline Advanced Beginner
    Windows XP Access 2003
    Join Date
    Jun 2010
    Posts
    66

    WHERE clause "too complex"

    I'm trying to do a query that uses a date range, but Access doesn't like it.



    Code:
    SELECT tblClass.ClassName, 
               tblClassSession.SessionDate, 
               [LastName] & ", " & [FirstName] AS StudentName, 
               tblAttendanceStatus.Description AS Status
    FROM tblPersonnel INNER JOIN (tblClass INNER JOIN (tblClassSession INNER JOIN (tblAttendanceStatus INNER JOIN tblClassAttendance ON tblAttendanceStatus.StatusID = tblClassAttendance.StatusID) ON tblClassSession.ClassEventID = tblClassAttendance.ClassEventID) ON tblClass.ClassID = tblClassSession.ClassID) ON tblPersonnel.StudentID = tblClassAttendance.StudentID
    WHERE (tblClassSession.SessionDate) >= CDate([Forms]![frmReportsMenu]![txtStartDate])
       AND (tblClassSession.SessionDate) >= CDate([Forms]![frmReportsMenu]![txtEndDate])
    ORDER BY tblClass.ClassName, tblClassSession.SessionDate, [LastName] & ", " & [FirstName];
    If I take out
    Code:
    AND (tblClassSession.SessionDate) >= CDate([Forms]![frmReportsMenu]![txtEndDate])
    the query works.

    What about that little "AND" clause makes this query impossible to execute?

    Incidentally, txtStartDate and txtEndDate on the frmReportsMenu form are text fields with a Short Date input mask.
    Last edited by Ted C; 06-30-2010 at 11:51 AM.

  2. #2
    pbaldy's Avatar
    pbaldy is offline Who is John Galt?
    Windows XP Access 2007
    Join Date
    Feb 2010
    Location
    Nevada, USA
    Posts
    22,521
    Not sure offhand, but two thoughts come to mind. First, I suspect you want "<" (less than) rather than ">" for that second criteria. Second, you may not need the CDate() function. I don't normally use it in this type of situation, and perhaps it's causing the complexity.
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

  3. #3
    fishbase is offline Novice
    Windows XP Access 2003
    Join Date
    Jun 2010
    Location
    Annapolis, MD
    Posts
    4
    have you tried

    WHERE
    (tblClassSession.SessionDate) BETWEEN
    CDate([Forms]![frmReportsMenu]![txtStartDate])
    AND CDate([Forms]![frmReportsMenu]![txtEndDate])

  4. #4
    Ted C is offline Advanced Beginner
    Windows XP Access 2003
    Join Date
    Jun 2010
    Posts
    66
    fishbase... I tried a BETWEEN statement, and I was getting the same result.

    pbaldy... looks like I was missing the obvious, as usual. Changing the sign fixed it.

  5. #5
    pbaldy's Avatar
    pbaldy is offline Who is John Galt?
    Windows XP Access 2007
    Join Date
    Feb 2010
    Location
    Nevada, USA
    Posts
    22,521
    Glad you got it sorted out (though I'm surprised Between didn't work).
    Paul (wino moderator)
    MS Access MVP 2007-2019
    www.BaldyWeb.com

Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 3
    Last Post: 04-10-2010, 10:22 AM
  2. Report "WHERE" clause not working
    By rsearing in forum Reports
    Replies: 4
    Last Post: 05-26-2009, 02:07 PM
  3. aSTR = Dir("C:\*.*") >> "Type Mismatch"
    By JGrant in forum Programming
    Replies: 1
    Last Post: 03-28-2009, 05:17 AM
  4. Replies: 2
    Last Post: 08-31-2006, 12:19 PM
  5. "Count" and "Countif" in Reports
    By JMantei in forum Reports
    Replies: 1
    Last Post: 06-20-2006, 02:20 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums