Mam formularz w programie Access 2003, który powinien działać tylko z jednym rekordem. Mogę ustawić właściwość Cycle
na Current Record
, ale formularz nadal przeskakuje do następnego rekordu po naciśnięciu klawisza Enter. Moja pierwsza myśl to własność KeyPreview
, ale jej nie widzę. Moją drugą myślą jest być może zdarzenie KeyPress
lub KeyUp
, ale pomyślałem, że zapytam w razie niezamierzonych konsekwencji. Jakieś pomysły?Zapobieganie przechodzeniu do następnego rekordu po naciśnięciu Enter?
Odpowiedz
Właściwość Cycle wpływa tylko na klawisz TAB.
Aby kontrolować zachowanie klawisza Enter, który jest właściwością globalną.
przejdź do Narzędzia/Opcje - zakładka Keyboard oraz „Move Po Enter” wybierz „następnym polu”
Istnieje przyciśnięcie i keyDown zdarzenia, które można użyć do pułapki klawisz Enter zbyt ale to więcej pracy.
Zabawne, nigdy nie doszło do tego, że moje "preferencje użytkownika" wpłynęły na moją aplikację. Na szczęście moi użytkownicy prawdopodobnie nie są wystarczająco mądrzy, aby przejść przez opcje. To działa dla mnie. Dzięki. –
Nie wpłynie to na całą aplikację. Co jeśli chcesz to zrobić tylko w niektórych formach, nie wszystkie? Czy domyślnym zachowaniem nie jest także "Następne pole"? – BIBD
Najprawdopodobniej Twoja aplikacja powinna sprawdzić ustawienia tej opcji, korzystając z funkcji GetOption, a jeśli nie jest to to, czego potrzebujesz, ustaw ją za pomocą GetOption. Jeśli chcesz przywrócić ustawienia użytkownika do jego oryginalnego ustawienia, będziesz chciał buforować oryginalną wartość i zresetować ją po zamknięciu aplikacji. –
Właściwość Cykl działa tylko za pomocą klawisza Tab.
Istnieją dwie opcje, które można wykonać.
Mógłbyś pułapka klawisz Enter w KeyDown/KeyUp/keyPressed
- ALBO -
Można filtrować źródła danych do jednego rekordu chcesz ich edycji i wyłączyć dodawanie nowych rekordów za pośrednictwem tego formularza.
Możesz dodać poniżej kod do zdarzenia "BeforeUpdate" formularza. Jeśli użytkownik chce przejść do następnego rekordu, poprosi użytkownika o zapisanie, a następnie zamknięcie formularza, zanim będzie mógł przejść do innego rekordu.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Select Case MsgBox("Save?", vbYesNo)
Case vbYes
DoCmd.Close
Case vbNo
Cancel = True
End Select
End Sub
Ten kod jest uruchamiany tylko wtedy, gdy rekord został zaktualizowany, więc w rzeczywistości nie jest to rozwiązanie pierwotnego problemu. –
Można to również zrobić w vba.
Application.GetOption "Move After Enter" 'get current setting
Application.SetOption "Move After Enter", 0 'don't move
Application.SetOption "Move After Enter", 1 'Next Field
Application.SetOption "Move After Enter", 2 'Next Record
http://www.pcreview.co.uk/forums/enter-key-moving-next-field-t3454281.html
Klucze Moment Like TAB, Alt, PgUp, PgDn, Wprowadź są dociskane pod koniec dodawania rekordu (po ostatnim polu głównie), baza danych automatycznie zapisuje wszystkie informacje wprowadzone w formularzu i usuwa dane z pól, dzięki czemu można wprowadzić następną wartość. Tak więc, dane są zapisywane, ale formularz wygląda pusto.
3 rzeczy do zrobienia:
- Formularz Cycle nieruchomości ustawiony na bieżący rekord.
- Właściwość podglądu klucza formularza ustawiona na Tak.
Dodaj następujący kod do KeyDown zdarzenia w postaci:
'33 - PgUp; 34 - PgDown; 9 - Tab; 18=Alt; 13=Enter Select Case KeyCode Case 33, 34, 18, 9, 13 KeyCode = 0 Case Else 'Debug.Print KeyCode, Shift End Select
Znalazłem to podczas szorowania po sieci i nie wziąć kredyt/odpowiedzialność za kod, ale nie wiem, gdzie znalazłem go . Pracuje dla mnie!
Jeśli wejdziesz w Opcje dostępu na stronie pliku, przejdź do Ustawień klienta, a pierwsze ustawienie pozwoli Ci wybrać miejsce, w którym zmienia się ostrość, gdy naciśniesz Enter. Przynajmniej w Access 2013.
- 1. Przejście do następnego pola tekstowego po naciśnięciu klawisza "Enter" zamiast do przesłania (Windows Phone)
- 2. Wybór następnego pola przy naciśnięciu enter przy użyciu jquery
- 3. Prześlij wartość po naciśnięciu klawisza Enter w obszarze tekstowym i naciśnięcie klawisza Shift + Enter powinno przejść do następnego wiersza.
- 4. JSF 2.0: żądanie ajax po naciśnięciu ENTER
- 5. przechowywać klawiaturę otwarte po naciśnięciu klawisza Enter
- 6. Zmiana regulacji ostrości po naciśnięciu klawisza Enter
- 7. Focus on następnego pola po naciśnięciu wprowadź React.js
- 8. Zapobieganie przechodzeniu terminala Gnome z trybu po wykonaniu
- 9. Prześlij przycisk logowania do logowania po naciśnięciu Enter
- 10. Formularz html uniemożliwia przesyłanie po naciśnięciu Enter na konkretnym wejściu
- 11. Jak wyłączyć automatyczne wysyłanie po naciśnięciu klawisza Enter?
- 12. Funkcja uruchamiania Androida po naciśnięciu "Enter" w EditText
- 13. Wyłącz dźwięk systemu na TSpinEdit po naciśnięciu klawisza Enter
- 14. Automatycznie "kontynuuj" blok komentarza w Sublime po naciśnięciu Enter?
- 15. Zapobieganie "klawisz Enter", aby uruchomić TextWatcher
- 16. Zapobieganie ukrywaniu kursora w przeglądarce po naciśnięciu klawisza.
- 17. Zapobieganie utracie zmiennych po naciśnięciu przycisku przeładowania przeglądarki
- 18. Zapobieganie pobieraniu następnego fragmentu (karty) z ViewPager
- 19. Zapobieganie zarówno rozmycie i keyUp zdarzenia na ogień po naciśnięciu wprowadź w polu tekstowym
- 20. Vim: Jak wgrać do otwartego okna lub klamry po naciśnięciu klawisza Enter?
- 21. Uibutton miga po naciśnięciu
- 22. Przenoszenie się do następnego UITextField Po kliknięciu "Dalej"
- 23. Zapobieganie Visual Studio przewijania do końca pliku po naciśnięciu Ctrl A (zaznacz wszystko)
- 24. Wykrywanie po naciśnięciu przycisku "Powrót do aplikacji"
- 25. Dodawanie efektu wizualnego do SKSpriteNode po naciśnięciu
- 26. java uzyskiwanie następnego numeru sekwencji SQL rekordu przed wstawieniem
- 27. Ustawienie EditText na pojedynczą linię powoduje utratę ostrości po naciśnięciu Enter
- 28. TextBox przy użyciu HTMLEditorExtender nie wstawia nowej linii po naciśnięciu klawisza Enter
- 29. Dlaczego moje okno dialogowe jQuery ponownie wczytuje stronę po naciśnięciu klawisza Enter?
- 30. Przejdź do adresu URL po naciśnięciu przycisku OK po naciśnięciu przycisku
Jeśli zamierzasz głosować i (zakładam tę samą osobę) głosować, aby zamknąć. Proszę skomentuj dlaczego. Regularnie oskarżam mnie o bycie szczęśliwym, a nawet nie widzę tutaj problemu. – EBGreen
Nie widzę problemu. Wydaje się, że to uzasadnione pytanie programistyczne. Potrzebny jest tylko lepszy tytuł - na przykład dodanie "w Access VBA" do końca. –
Naprawdę? Myślę, że znaczniki były wystarczające. Powielanie danych jest zazwyczaj złe. – EBGreen