Go with hnasr - your 3rd "table" is just a query on the other two. Since it is a query, every time you look at it, it correctly reflects any (previous) changes to the other 2 tables.
Just to make it clearer, I would let it have 3 columns, and this will also handle when the FirstName/Lastname is null (it retains the other without having the entire field go null)
Select iif(firstName is null, LastName, firstName & nz(" " & lastname, "") PersonOrCompany, ID, "Person" as Type
From Tbl1
Union ALL
Select CompanyName, ID, "Company"
From Tbl1