1. There is no possibility in Access to define a table with a computed column based on a user's defined function (that you would need to achieve your goal). So you would have to "manually" call this function every time a record is added, deleted or modified in the table. By manually I mean that "something" (an event procedure on forms, a startup function, etc.) would have to be called. This would eventually yield data corruption or incoherences : sooner or later there will be a case where the function should have been called and will not be (Murphy's Law, etc.).
2. The purpose of the GROUP BY clause of the SQL language is precisely to group rows of data according to the contents of one or several columns and return the resulting data set.
3. The function mentionned in 1 would probably use some SQL with a GROUP BY clause to update the table and insert the Group Record Ids, either directly using an UPDATE SQL statement or by using a loop in a RecordSet.