In the Microsoft Access 2007 with an SQL Server Backend, we usually take a linked table from the SQL Server as Form.RecordSource of an editable form for a single table data modification. A local query is used for cross tables editions that combines fields from several linked tables. The local query must be updatable itself in order to modify data on the editing form.

Now we are planning to replace all local queries by Passthrough queries in order to use native SQL Server tables directly.

I've tried to create a very simple passthru query named qrySelProductsPassThroughEditable with the following SQL string:

```
SELECT dbo.Products.ID, dbo.Products.Name FROM dbo.Products;

```

The ID field is the IDENTITY field defined as Primary Key in the SQL Server as the definition:

```
CREATE TABLE [dbo].[Products](
    [ID] [int] IDENTITY(1,1) NOT NULL,
        ....
)

```

But the Datasheet returned by Access pass-through query is not editable at all. So it's not usable as .RecordSource for an editing form neither.

This is in contrary with [the link](http://www.access-programmers.co.uk/forums/showthread.php?t=197648) that says if a passthru query contains all Primary Keys of all involved tables, the query will be editable.

Conclusion Added a Posteriori
=============================

Through the discussions below, a passthrough query in a Microsoft Access 2007 .accdb, .accde or .accdr (Access runtime) is always readonly, it's never editable. You should use it as a final list, or as the .RecordSource of a report, not for a form for which you must use a linked table, or a writable Normal Query involving linked tables for data IO.