Tôi có một biểu mẫu trong Access 2003 chỉ nên làm việc với một bản ghi duy nhất. Tôi có thể đặt thuộc tính Cycle
thành Current Record
nhưng biểu mẫu vẫn chuyển sang bản ghi tiếp theo khi tôi nhấn Enter. Suy nghĩ đầu tiên của tôi là tài sản KeyPreview
, nhưng tôi không thấy một. Suy nghĩ khác của tôi có lẽ là sự kiện KeyPress
hoặc KeyUp
, nhưng tôi nghĩ tôi sẽ hỏi trong trường hợp có hậu quả ngoài ý muốn. Ý tưởng nào?Tránh chuyển sang bản ghi tiếp theo khi nhấn Enter?
Trả lời
Thuộc tính Chu kỳ chỉ ảnh hưởng đến khóa TAB.
Để kiểm soát hành vi của phím Enter là thuộc tính toàn cầu.
Đến Tools/Options - tab Bàn phím và vào "Move Sau Enter" chọn "Next Field"
Có KeyPress và KeyDown sự kiện mà bạn có thể sử dụng để bẫy các phím Enter quá nhưng đó là công việc nhiều hơn.
Hài hước, nó không bao giờ xảy ra với tôi rằng "sở thích người dùng" của tôi đã ảnh hưởng đến ứng dụng của tôi. May mắn thay, người dùng của tôi có lẽ không đủ hiểu biết để đào bới thông qua các tùy chọn. Điều này làm việc cho tôi. Cảm ơn. –
Sẽ không ảnh hưởng đến toàn bộ ứng dụng. Nếu bạn chỉ muốn làm điều đó trên một số hình thức, không phải tất cả? Không phải là "trường tiếp theo" hành vi mặc định quá? – BIBD
Bạn có lẽ nên có ứng dụng của bạn kiểm tra các thiết lập cho tùy chọn này, bằng cách sử dụng GetOption và nếu nó không phải là những gì bạn muốn, thiết lập nó với GetOption. Nếu bạn muốn trả lại thiết lập của người dùng về cài đặt ban đầu, bạn sẽ muốn lưu vào bộ nhớ cache giá trị gốc và đặt lại khi ứng dụng đóng. –
Thuộc tính chu kỳ chỉ hoạt động với phím Tab.
Có hai tùy chọn bạn có thể theo đuổi.
Bạn có thể bẫy phím Enter trong KeyDown/KeyUp/keyPressed
- HOẶC -
Bạn có thể lọc các nguồn dữ liệu vào một bản ghi bạn muốn họ chỉnh sửa, và vô hiệu hóa thêm kỷ lục mới thông qua hình thức đó.
Bạn có thể thêm mã bên dưới vào biểu mẫu 'BeforeUpdate' của sự kiện. Nếu sử dụng muốn chuyển sang bản ghi tiếp theo, nó sẽ yêu cầu người dùng lưu sau đó đóng biểu mẫu trước khi họ có thể chuyển sang một bản ghi khác.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Select Case MsgBox("Save?", vbYesNo)
Case vbYes
DoCmd.Close
Case vbNo
Cancel = True
End Select
End Sub
Mã này chỉ kích hoạt nếu bản ghi đã được cập nhật, vì vậy nó không thực sự là một giải pháp cho vấn đề ban đầu chút nào. –
Điều này cũng có thể được thực hiện trong 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
Các phím khoảnh khắc như TAB, Alt, PgUp, PgDn, Nhập được ép vào cuối thêm kỷ lục (sau trường cuối cùng chủ yếu), cơ sở dữ liệu tự động lưu tất cả thông tin bạn đã nhập vào biểu mẫu và xóa các trường để bạn có thể nhập giá trị tiếp theo. Vì vậy, những gì xảy ra là dữ liệu được lưu nhưng biểu mẫu có vẻ trống.
3 điều cần làm:
- Mẫu Cycle tài sản thiết lập để Current Record.
- Thuộc tính xem trước khóa biểu mẫu được đặt thành Có.
Thêm mã sau đây để các tổ chức sự kiện KeyDown dạng:
'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
Tôi tìm thấy điều này trong khi sục sạo các trang web và không có thẻ tín dụng/trách nhiệm về mã nhưng tôi không biết nơi tôi tìm thấy nó . Làm việc cho tôi!
Nếu bạn truy cập vào Tùy chọn truy cập trên trang tệp, chuyển đến Cài đặt ứng dụng và cài đặt đầu tiên sẽ cho phép bạn chọn vị trí của bạn thay đổi khi bạn nhấn enter. Ít nhất trong Access 2013.
- 1. Nhấn Enter để chuyển sang điều khiển kế tiếp
- 2. Gửi giá trị khi nhấn Enter trong vùng văn bản và nhấn Shift + Enter phải đi tới dòng tiếp theo
- 3. Di chuyển tiêu điểm đến ô tiếp theo trên phím Enter Nhấn trong WPF DataGrid?
- 4. Nhấn Enter để tiếp tục trong C
- 5. Tránh Windows 'Ding' khi Enter được nhấn trong TextBox với OnKeyUp
- 6. Chọn nút trong khi nhấn nút enter
- 7. DataGridView-khi tôi nhấn enter nó đi đến ô kế tiếp
- 8. Có cách nào để tránh rằng việc gửi liên kết của knockoutjs gửi biểu mẫu khi nhấn phím enter?
- 9. KeyCode_Enter sang edittext tiếp theo
- 10. javascript nhấn phím enter
- 11. Nhấn enter hoặc đợi 10 giây để tiếp tục
- 12. Mảng chuyển sang phần tử tiếp theo
- 13. Giữ tiêu điểm trên hộp văn bản sau khi nhấn enter
- 14. Di chuyển lên UITextField tiếp theo khi 'Tiếp theo' được khai báo
- 15. KeyListener trong Textfield không kích hoạt khi nhấn enter
- 16. Tự động "tiếp tục" một khối nhận xét trong Cao nguyên khi nhấn enter?
- 17. Phải nhấn enter với nohup
- 18. Gọi hàm khi người dùng nhấn enter trong NSSearchField?
- 19. jquery contenteditable enter "Làm cách nào để kích hoạt chuyển đổi khi người nào đó nhấn enter?"
- 20. Gửi biểu mẫu khi nhấn enter trong Textarea
- 21. JSF gọi phương thức đậu từ nhập văn bản khi nhấn Enter
- 22. Nhấn Enter Luôn gửi biểu mẫu
- 23. Phát hiện khi người dùng nhấn enter trong Java
- 24. android set hidden keybord khi nhấn enter (trong EditText)
- 25. PuTTY gửi gì khi tôi nhấn phím Enter?
- 26. JSF 2.0: yêu cầu ajax khi nhấn ENTER
- 27. Gửi bằng cách nhấn enter ở dạng cửa sổ
- 28. Java JLabel, ngắt dòng văn bản sang dòng tiếp theo?
- 29. Java: Đăng ký <ENTER> nhấn phím trên JTextPane
- 30. Cách di chuyển con trỏ UITextField sang trường văn bản tiếp theo
Nếu bạn đang đi xuống bỏ phiếu và (tôi giả định cùng một người) bỏ phiếu để đóng. Hãy bình luận về lý do tại sao. Tôi thường xuyên bị buộc tội là hạnh phúc và thậm chí tôi không thấy vấn đề ở đây. – EBGreen
Tôi cũng không thấy vấn đề. Điều này có vẻ như một câu hỏi lập trình hợp pháp. Nó chỉ cần một tiêu đề tốt hơn - như thêm "trong Access VBA" vào cuối. –
Thật sao? Tôi nghĩ rằng các thẻ là đủ. Sao chép dữ liệu thường là một điều xấu. – EBGreen