Odświeżenie / "od malowanie" formularza po naciśnięciu Esc [MS Access]

0

Witam,

może to nie do końca problem "bazy danych" ale myślę, że najszybciej mi poradzicie bo mnie już nosi...

Muszę coś szybko zbudować do obsługi prostej bazy danych (która jest w SQL Serwerze) - także padło na front-end w Accessie. I tak mam formularz na którym jest sporo pól które nie koniecznie są potrzebne zawsze. Także zdecydowałem, że je ukryje i tylko jak zaznaczę "check boxa" - to pola powiązane zmienią wartość Visible na True i oczywiście na odwrót, jak odznaczę to pola ukrywam. Wszystko fajnie działa jak należy .. ale próbuję teraz obsłużyć klawisz Esc. Czyli Zaznaczam "check box" - nazwijmy go "Oferta" - pojawiają mi się pola dla "Oferty" wypełniam sobie te pola ... po czym decyduję, że jednak nie chce wprowadzać żadnych zmian. Naciskam Esc - wartości mi znikają, check box jest "od znaczony" ... ale pola od "Oferty" nie znikają mi - nie odświeża formularza na zasadzie spr. czy checkbox jest zaznacozny czy nie.

Próbuje ponownie sprawdzić check boxa w:
Form_Undo
oraz odmalowuje formularz przez Me.Repaint

Ale ciągle nie mogę uzyskać oczekiwanego efektu :( A testowałem już na chyba wszystkich możliwych "Eventach" (wiem że dawno dawno temu coś podobnego robiłem a teraz amba :( ).

Jakieś podpowiedzi ?
Z góry wielkie dzięki.

1

Nie da się tego tak zrobić jak chcesz, możesz to obejść tak, że po zmianie checkboxa zmienisz własciwość dirty formularza na false

Private Sub Zaznacz0_AfterUpdate()
   'kod do ustawień kontrolek
    Me.Dirty = False
End Sub

To sprawi, ze esc nie zmieni wartość checkboxa.

To rozwiazuje problem esc pozostaje jeszcze manualne wciśniecie ctrl+z, co będzie miało podobny efekt, nie wywoła się zdarzenie po aktualizacji, możesz jedynie przechwycić to zdarzenie i zablokować:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = acCtrlMask And KeyCode = vbKeyZ Then
 KeyCode = 0
End If
End Sub
0

No i super @Panczo - takie obejście wydaje się eleganckie i więcej niż wystarczające. Także jak zwykle wielkie dzięki!

Ps. Z ciekawości widziałeś może ten topic https://4programmers.net/Forum/Bazy_danych/301283-view_odwolujace_sie_do_innej_bazy_danych co o tym myślisz da się to jakoś obejść ?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.