24. Jak w Arkuszu danych zlikwidować selektory rekordów (uzupełnione)?

Poniższy opis dotyczy MsAccess 97:

We właściwościach formularza jest cecha RecordSelectors (Selektory rekordów), ale dotyczy ona tylko widoku Formularz, a nie Arkusz danych.

Aby wyłączyć selektory rekordów dla Arkusza danych potrzebny jest pewien fortel. Polega on na tym, że w stopce formularza (stopka sie nie wyswietla w widoku Arkusz danych, więc można tam wpisywać co się chce) wstawiamy pole o nazwie np. PoleX.

Teraz przypisanie:


Me!PoleX.ColumnHidden = -1
spowoduje ukrycie selektora rekordów. Powyższe przypisanie można zrobić w procedurze Form_Open.

Opisana metoda stosuje się również do podformularzy. W formularzu nadrzędnym piszemy:


Me!SbForm.Form!PoleX.ColumnHidden = -1

Uzupełnienie dotyczące MsAccess 2000:

Fortele, sztuczki i inne niekonwencjonalne rozwiązania mają niestety tę wadę, że niekiedy pasują wyłącznie do jednej wersji pakietu, bo wykorzystują jakieś nieudokumentowane funkcje albo wręcz błędy, które producent może usunąć, "psując" nasz efekt. 
Podobnie jest w tym przypadku - to co działa w Accessie 97, czyni niemałe spustoszenie w Accessie 2000. W najlepszym przypadku grozi nam wyrzucenie do kodu, ale prawdopodobnie zablokuje się nam Access i będziemy musieli zabić proces. 

O problemach z tą metodą w MsAccess 2000 powiedział mi Krzysztof Naworyta. Wprawdzie moja strona jest głównie o Accessie 97 i nie gwarantuję, że podawane sposoby będą działały w innych wersjach, to jednak użycie tej miłej metody w Accessie 2000 napawa grozą. Z tego co pisze Krzysztof, wynika, że metoda może nawet uszkodzić sam formularz. Czym prędzej ostrzegam wszystkich: Nie stosujcie powyższej metody w Accessie 2000!

Oto fragment listu Krzysztofa:

Nie wiem jak u Ciebie, ale mi to zawsze psuje bazę w Access 2000 (Win 2000). Wyskakuje błąd że metoda dla obiektu _textbox ble ble, a potem nie mogę usunąć uszkodzonego formularza, itp. Myślę, że w związku z tym należałoby dołożyć stosowną adnotację.

O tak, adnotację uczyniłem. Dzięki za uwagi.