When you add a subform which uses a query with joins this gives problems when you do not add all fields for every table used in the query.
It will not be possible to add, update or delete records.
The solution is to include all fields in the query:
SELECT tblOne.*, tblTwo.* FROM tblOne JOIN tblTwo on ...
Another reason why the subform records are not editable if the tables do not have primary keys and foreign keys defined.
Alway check the relationships between tables ('Database tools' -> 'Relationships').
Other reasons why your subform is not editable (source Allen Browne):
It has a GROUP BY clause. A Totals query is always read-only.
It has a TRANSFORM clause. A Crosstab query is always read-only.
It uses First(), Sum(), Max(), Count(), etc. in the SELECT clause. Queries that aggregate records are read-only.
It contains a DISTINCT predicate. Set Unique Values to No in the query's Properties.
It involves a UNION. Union queries are always read-only.
It has a subquery in the SELECT clause. Uncheck the Show box under your subquery, or use a domain aggregation function instead.
It uses JOINs of different directions on multiple tables in the FROM clause. Remove some tables.
The fields in a JOIN are not indexed correctly: there is no primary key or unique index on the JOINed fields.
The query's Recordset Type property is Snapshot. Set Recordset Type to "Dynaset" in the query's Properties.
The query is based on another query that is read-only (stacked query.)
Your permissions are read-only (Access security.)
The database is opened read-only, or the file
attributes are read-only, or the database is on read-only media (e.g.
CD-ROM, network drive without write privileges.)
The query calls a VBA function, but the database is
not in a trusted location so the code cannot run. (See the yellow box at
the top of this Access 2007 page.)
The fields that the query outputs are Calcluated fields (Access 2010.)
Competition entry by David Cummins
powered by Serendipity v1.0