QEdit.zip
Autor: Krzysztof Pozorek
Baza w formacie MsAccess 2000
29kB, 10-07-2006
Problem:
Zdarza się, że potrzebujemy w każdym rekordzie na formularzu ciągłym wyświetlić informacyjnie dane zagregowane z innych tabel. To proste, wystarczy zrobić standardowego JOIN-a i gotowe.
SELECT Tabela1.*, Query1.JakasSuma FROM Tabela1 INNER JOIN Query1 ON Tabela1.Id = Query1.Id;
Niestety zaraz bardzo się rozczarujemy, bo okazuje się, że takiej kwerendy nie można już edytować(!). Jak z tym sobie poradzić?
Rozwiązanie:
Pierwszy pomysł nasuwa się sam, to zastąpienie JOIN-a funkcja DFirst, która wyświetli nam potrzebne informacje. Niestety to baaardzo wolne rozwiązanie.
Proponuje bardzo prosty sposób dla początkujących i zaawansowanych, który pozwala wręcz błyskawiczne wyświetlać dane pomocnicze zachowując jednocześnie możliwość edycji danych. Szybkość i prostota tego rozwiązania bardzo mi się spodobała - mam na myśli wykorzystaną w przykładzie sztuczkę z polem kombi :-)
Uwagi:
Ta
"sztuczka" to nie jakaś nowość, tylko znane Kombi1.Column(1), jednak w
tym kontekście to raczej mało popularne zastosowanie.
Istnieje możliwość uzyskania podobnego efektu za pomocą specjalnej
funkcji, która trzyma recordset z zmiennej statycznej i odwołuje się do
niej bez ponownego otwierania obiektu. Jednak prostota jest wyraźnie po
stronie prezentowanego przykładu.
K.P.