Link to existing -or- add new record, without seeing all existing

I’m creating a case management system for a small student support program. I would like anyone (teacher, our agency staff, other agencies’ staff, family members, etc.) to be able to make a referral directly in the system. Right now my Objects are Students, Families, and Referrals. I have a pipeline set up so students have a status of new referral, accepted services, declined services. Students are are connected to many referrals, families are connected to many students.

Initially I set it up so a person creating a referral also creates a student (and their family info). But then one student or family could end up with many records. So then I made it so a person would enter the student name on the referral, but then there’s no way to convert that referral to a student on the staff end.

I don’t want to put a drop-down list of existing students and and “add another option” button, because I don’t want anyone/everyone to be able to see the whole list of students who have received referrals. I tried adding a search bar that only shows the results you search for (Name/Grade), but then I can’t figure out how to do the next step- add a referral for this student. The action triggers can insert a new connected record but they can’t open the form to do it.

Any ideas on how to make it so you can’t create a duplicate record without being able to see all the records?

If this can’t be done, then I’ll probably just take the referral outside the system and then staff can create the referrals/students/families from phone calls, emails, etc.

Hello! Would you be willing to use JS code for this?

I don’t have any/much coding experience nor does anyone working on this project. I understand the conceptual basics but am not especially interested in investing the time to learn programming laguages. I’m comfortable cutting and pasting and hacking here and there though. Soooo… maybe? I’d rather not but if that’s the only way?