First Best Practice is to look at using SQL Express instead of Access.
So if I understand right, you have multiple secondary tables, which you need to link together by company or category or something.
For this would would need to create this new Primary table or Identify an existing primary table and it would need an ID field which is a primary key. Then in each of your other table you would need to create a field to hold this primary key as well. This would be your relationship field to link a secondary row to the primary row.
One optino would be to create a whole new table strucutre for your data and as you process your data move it into this new architecture. This culd be accomplished via InfoPath. Otherwise, you would need to go through all of your existing data first in Access or SQL and get it fixed then setup your InfoPath form to add new in the same relationships. InfoPath, database forms have to be setup as such from the beginning and are completely dependent on the existing table relationships, these have to be established and working for InfoPath to work, especially submit back to the database. You would not be able to perform table maintenance via a form, at least not without WebServices.
You may want to look at the Database Accelerator, which includes a whole suite of web services for interacting with your database, but it requires SQL or SQLExpress. Qdabra Database Accelerator Suite Version 2.1 - Developer
Let me know if you need anything else.