Based on that information, I would suggest you really only require one table and less fields than you have. Although a few other tables would be recommeneded.
i.e.
tblCompanies
CompanyID
CompanyName
tblContacts
ContactID
CompanyID
ContactTypeID
DateOfContact
tblContactTypes
ContactTypeID
ContactType
You would join the fields with the same name to its equal in the other tables to create the one-to-many joins.
The third table, tblContactTypes, has two fields - an autonumber for indexing and a contact type. In each row you can put the contact types such as meeting, telemarketing, complaint, etc. That way you are always prepared for future additions without having to redesign anything.
The company would go in its own table too with any other information you want to keep about it i.e. phone numbers, contact names, address, etc.
The middle table, tblContacts, is where you store your details.
Using a query you can now select the details you want from that one table alone and bind it to the report. No VBA needed.
