I would organize this a bit differently.
Code:
tblClient
c_id c_name c_address ---> other client (company) related fields
tblClientFacilities
cf_id c_id -----> other client (company) related facilitiy fields
tblRole
r_id r_description
1 Engineer
2 Buyer
3 Process Manager
4 Quality Assurance
tblPeople
p_id p_lastname p_firstname r_id
tblClientPeople
cp_id c_id p_id ---> other client people related fields
In essence, you do not need a separate table for each 'type' of person, you just need one table storing all contacts and their role. Then a client person table to store which company they're associated with (a person could be active at multiple companies but you'd only have to store information about that person one time). Then you could limit what your users see (employee types) in your data entry from based on their selections. Finally, the method I'd use for this, if you want the users to see everything related to the company in a single data entry form, would be to use a tabbed form where the main client information is on the first tab and all the relevant information is on subsequent tabs (client facilities on a tab, client people on a tab and so on)
I do not use bound forms at all so someone might be able to respond better if you are using a form/subform combination, even if you are a tabbed form is still appropriate.