The data engine must have a unique means of identifying each row in each table, it must also reference all required fields unless they have deault values.
Is their a way in which you can simplify the SQL.
Classically you would have a single table underlying a single form, so you would map your parent form as the top level, and then drop down with sub forms if required for child tables.
Personally I've never tried to insert new records using a joined query in Access.
Another alternative may be to use an unbound form, set values as required, and then write the values to the resepctive tables.
I have used this query to create a form, the problem is that I cannot add any new rows ?
Before using a query as the recordsource for a form you may want to check in query design mode that indeed you can add new records to the query. Usually when you can add new records to the query you see a blank row at the very bottom of the query.