Jak edytować zapytanie tranzytowe / passthru?

W programie Microsoft Access 2007 z programem SQL Server Backend zwykle łączymy tabelę z SQL Server jako Form.RecordSource edytowalnej formy do modyfikacji danych pojedynczej tabeli. Lokalne zapytanie jest używane do edycji tabel krzyżowych, które łączą pola z kilku połączonych tabel. Lokalne zapytanie musi być możliwe do aktualizacji w celu modyfikacji danych w formularzu edycji.

Teraz planujemy zastąpić wszystkie zapytania lokalne przez zapytania Passthrough, aby bezpośrednio korzystać z rodzimych tabel SQL Server.

Próbowałem utworzyć bardzo proste zapytanie passthru o nazwie qrySelProductsPassThroughEditable za pomocą następującego ciągu SQL:

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

Pole ID to pole IDENTITY zdefiniowane jako klucz podstawowy w SQL Server jako definicja:

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

Arkusz danych zwrócony przez zapytanie tranzytowe Access nie jest w ogóle edytowalny. Nie jest więc użyteczny jako .RecordSource dla formularza edycji.

Jest to sprzeczne zpołączenie że jeśli zapytanie passthru zawiera wszystkie Klucze podstawowe wszystkich zaangażowanych tabel, zapytanie będzie można edytować.

Wniosek Dodano a posteriori

Dzięki poniższym dyskusjom zapytanie tranzytowe w programie Microsoft Access 2007 .accdb, .accde lub .accdr (Access runtime) jest zawsze tylko do odczytu, nigdy nie można go edytować. Powinieneś użyć go jako ostatecznej listy lub jako .RecordSource raportu, a nie dla formularza, dla którego musisz użyć połączonej tabeli, lub zapisywalnego Normalnego Zapytania zawierającego połączone tabele dla danych IO.

questionAnswers(4)

yourAnswerToTheQuestion