You can get the list of student ID's with a simple query, which you can then use to filter other queries by Student_ID. You need two because the first one has a group by in it, which limits the number of fields you can put in.
For example: I have a stamp collection, and I want to know which countries have both stamp number 1800 AND 1900 in the collection. In query design view, I do this:
The SQL for the query is this (with the table name usually removed to make it easier to read:
SELECT COUNTRYNUM, Count(COUNTRYNUM) AS CountOfCOUNTRYNUM
FROM [Main Collection]
WHERE (FIRST=1800 Or FIRST=1900)
GROUP BY COUNTRYNUM
HAVING Count(COUNTRYNUM)>1;
Notice COUNTRYNUM is in the query twice - first to group by and display, and second to count how many times it occurs.
Notice too that the two conditions are joined with OR; if both of them are met, then the count will be > 1.
You would replace
COUNTRYNUM with Student_ID,
FIRST with the name of your date field, and
Main Collection with the name of your table. (I know - shouldn't use spaces in table names)
Once you have this working, you would join it to other queries on Student_ID to filter the data they show.