Please clarify. How do you propose to "..select a related contact from the same table....without having to specifically select him..."?.
You have a record, (John) with a portal showing a related record (Doug). First of all, what piece of data makes them related?
What you probably need is the portal to be based on a second table occurrence of this table, joined by the 2 fields that define what makes them related (some 'flag' field with value that determine relationship, i.e. Company, City, etc). Then a button on the portal row can just GTRR using the same layout
This is a "many to many self join". The relationship will look like:
Contacts::__pkContactID = Join::_fkContactID
Contacts|Related::__pkContactID = Join::_fkRelatedContactID
Contacts|Related would be a second occurrence of Contacts.
You've probably already figured this much of the issue out. But the problem with it is that the join table entry will link John to Doug but it doesn't link Doug to John. But this data model can be used to make a two way link. The trick is to use a script to make a second Join record with the values in the ID fields swapped and then your link is now two way.
This is what I have and that is where I was going next so you just confirmed the solution. Thanks so much everyone for your contributions