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.)