10. Update Query musi wykorzystywać kwerendę, którą można aktualizować...

Coś nie wierzę w czytelność tych wszystkich SQL-i w podobnych opracowaniach, dlatego ten artykuł napiszę pismem  "obrazkowym" ;-) A chodzi o to, że niekiedy Access nie pozwala wykonać naszej kwerendy aktualizującej dając komunikat jak w tytule. Co wtedy robić? Problem jest szerszy, ale ja tutaj omówię jeden przypadek takiej kwerendy, w którym wystarczy dopisać do SELECT słowo DISTINCTROW i można już aktualizować dane(!).

W naszej kwerendzie możemy używać nawet kwerend agregujących i nasza kwerenda nie straci możliwości aktualizujących , ale należy pamiętać o jednym ważnym ograniczeniu, że polem aktualizującym nie może być wartość z kwerendy agregującej. 

A oto przykład budowy takiej kwerendy aktualizującej, krok po kroku:

1. oto nasza tabela:

2. Chcemy dokonać aktualizacji w polu CzyMax dla największej daty w każdej  grupie. Budujemy w tym celu kwerendę pomocniczą Q1 (zauważmy, że jest to kwerenda agregująca):

3. A następnie kwerendę właściwą Q2, która dokona aktualizacji danych:

Niestety, próba wykonania takiej kwerendy kończy się komunikatem jak na obrazku ;-(

4. Aby aktualizacja się udała musimy dokonać "drobnej korekty" i do właściwości Rekordy unikatowe wpisać Tak:

Teraz bez problemu dokonamy aktualizacji danych.

K.P. (z wykorzystaniem wybranych postów K.N.)