Piotr Henke

Piotr Henke specjalista, Zakład
Opel Polska w
Gliwicach

Temat: Jak wyczyścić pole w formularzu pomijając AfterUpdate?

Witam
Mam problem z czyszczeniem pola w formularzu (VBA)Chodzi o to, że wypełniany jest formularz z kilkunastoma polami ale dodałem przycisk polecenia [Anuluj]który czyści wszystkie te pola. Problem jest w tym że każde pole ma przypisane działanie po "AfterUpdate" i kiedy naciśniemy przycisk Anuluj a w polu jest już coś wprowadzone (np.tekst)i jednocześnie ma focus to niepotrzebnie wykonuje się polecenie"AfterUpdate". Czy istnieje możliwość zablokowania wykonywania"AfterUpdate" przy czyszczeniu pola przyciskiem polecenia?
pozdrawiamPiotr Henke edytował(a) ten post dnia 21.01.11 o godzinie 21:01
Monika M.

Monika M. PROGRAMISTA VBA,
Excel, Access,
Outlook, Word -
SZKOLENIA

Temat: Jak wyczyścić pole w formularzu pomijając AfterUpdate?

W Accessie brakuje czegoś takiego, jak EnableEvents, który jest w Excelu, więc chyba najlepiej byłoby uzależnić działanie kodu w AfterUpdate każdego z wymienionych formantów od wartości zmiennej zadeklarowanej na poziomie modułu formularza (np. typu boolean), której to wartość byłaby zmieniana podczas działania kodu z przycisku [Anuluj].
Np. wszystkie AfterUpdate działają tylko, jeśli zmienna blnCancel = False (domyślnie), natomiast na początku kodu dla [Anuluj] powinna następować zmiana wartości blnCancel na True, następnie wykonanie kodu czyszczenia pól tekstowych, a na końcu przywrócenie domyślnej wartości zmiennej.

Ale to pomysły na rozwiązanie bez znajomości wszystkich mechanizmów działających w tej chwili w formularzu - być może dałoby się to wszystko jakoś inaczej zorganizować. Nie wiem, jakie działania są wykonywane w polach tekstowych i dlaczego konieczne jest użycie AfterUpdate.
Piotr Henke

Piotr Henke specjalista, Zakład
Opel Polska w
Gliwicach

Temat: Jak wyczyścić pole w formularzu pomijając AfterUpdate?

Spróbuje to przetestować.
dzięki
Piotr Henke

Piotr Henke specjalista, Zakład
Opel Polska w
Gliwicach

Temat: Jak wyczyścić pole w formularzu pomijając AfterUpdate?

A może jest coś co zastąpiłoby AfterUpdate? Generalnie u mnie AfterUpdate odpowiada za porównanie wartości wpisanej w pole z wartościami znajdującymi się w innej tabeli. Jeżeli znajdzie identyczna wartość to jest OK a jesli nie to pojawia się komunikat o błędnie wprowadzonej wartości.
Może akcja po jakimś konkretnym klawiszu?
Monika M.

Monika M. PROGRAMISTA VBA,
Excel, Access,
Outlook, Word -
SZKOLENIA

Temat: Jak wyczyścić pole w formularzu pomijając AfterUpdate?

To dla mnie to jest trochę dziwne rozwiązanie - po co sprawdzanie, czy coś, co wpisałam jest w innej tabeli? Może po prostu od razu wybierać wartości, które istnieją w innej tabeli, np. z pola kombi?
Można też używać przycisku wywołującego porównywanie, ale nie wiem czy to dobre rozwiązanie.

Wydaje mi się, Panie Piotrze, że bez wglądu w sam formularz można doradzać na 100 sposobów, a i tak będzie nieoptymalnie.
Może zaprezentuje Pan przykład, np. podobnie zrobiony formularz z odpowiednimi tabelami (z danymi przykładowymi), to będzie można coś zaproponować i podyskutować, które z propozycji są OK - im więcej osób nad tym pomyśli, tym większe prawdopodobieństwo, że to będzie działać ;)
Piotr Henke

Piotr Henke specjalista, Zakład
Opel Polska w
Gliwicach

Temat: Jak wyczyścić pole w formularzu pomijając AfterUpdate?

Prawidłowych wpisów może być kilkanaście tysięcy więc pole kombi raczej nie sprawdzi się, Wartości które są wprowadzane są bardzo podobne. (różnia sie np jednym znakiem na 10 znaków).Generalnie chodzi o to żeby zatrzymać cały proces jeśli pracownik się pomyli i wprowadzi niedozwolony ciąg znaków.(lista kilkunastu tysięcy dozwolonych wartości znajduje się w tabeli)
Wszystko jest ok aż do momentu kiedy pracownik chce wyczyścić wszystkie pola(anuluje swoje wpisy) a w ostatnim polu który wypełniał jest już jakaś wartość wtedy niepotrzebnie przy utracie focusu wykonuje sie dzialanie After Update. Dodam tylko że taich pól w formularzu jest kilkanaście i w każdym momencie pracownik ma mżliwośc czyszczenia swoich wpisów.Piotr Henke edytował(a) ten post dnia 02.02.11 o godzinie 18:09
Paweł D.

Paweł D. Programista Analityk
- Firmowe Bazy
Danych

Temat: Jak wyczyścić pole w formularzu pomijając AfterUpdate?

Jeśli chcesz dosłownie wyczyścić pola (wpisać NULL czy pusty ciąg), to chyba nie ma znaczenia co że zaktualizujesz pole i póxniej je wyczyścisz ?
Więcej szczegółów prosimy :]
Piotr Henke

Piotr Henke specjalista, Zakład
Opel Polska w
Gliwicach

Temat: Jak wyczyścić pole w formularzu pomijając AfterUpdate?

Nie ma to znaczenia że pierwsze zaktualizuje a później wyczyszczę ale pierwsze klikniecie w przycisk Anuluj nie skutkuje czyszczeniem pola (uruchamia sie AfterUpdate), trzeba powtórzyć klikniecie w Anuluj i wtedy dopiero czyści wszystkie pola.To taka mała niedogodność:)Piotr Henke edytował(a) ten post dnia 07.02.11 o godzinie 18:36



Wyślij zaproszenie do