![]() |
|
|||||||
| Đăng Kí | Hỏi/Ðáp | Thành Viên | Lịch | vbSPY | Ðánh Dấu Ðã Ðọc | Tags |
![]() |
|
|
LinkBack | Ðiều Chỉnh | Xếp Bài |
|
|
#1 (permalink) |
|
Senior Member
|
Trước tiên, bạn đặt thuộc tính Navigation Buttons của form là No để người dùng không di chuyển tới lui giữa các record được. Sau đó, bạn thiết kế một nút lệnh (có thể dùng wizard) để người dùng chỉ được duyệt đi tới, từ record đầu tiên đến record cuối cùng. Lệnh VBA tương đương là: DoCmd.GoToRecord , , acNext.
Người dùng vẫn có thể dùng các phím mũi tên (lên, xuống, qua trái, qua phải), phím PgUp, PgDn, TAB và Shift+TAB để chuyển từ record này sang record khác. Do đó, bạn phải xử lý tình huống KeyDown của form để kiểm soát các phím này. Muốn vậy, bạn đặt thuộc tính Key Preview của form là Yes, rồi gõ đoạn mã 1 vào thủ tục xử lý tình huống KeyDown. Lưu ý: Trong ví dụ, tôi giả sử ô nhập liệu đầu tiên trên form là CustomerID, ô nhập liệu cuối cùng trên form là ContactTitle. Trong đoạn mã 1, do khống chế không cho dùng phím mũi tên qua trái, đi lên ở ô nhập liệu đầu tiên trên form là CustomerID, nên người dùng không thể di chuyển qua trái giữa các ký tự trong ô này. Tương tự, với ô nhập liệu ContactTitle, người dùng cũng không thể di chuyển qua phải giữa các ký tự trong ô này. Đoạn mã 1 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case 33, 34 ‘ Phím PgUp, PgDn KeyCode = 0 Case 37, 38 ' Mũi tên qua trái, đi lên If Me.ActiveControl.Name = "CustomerID" Then KeyCode = 0 End If Case 39, 40 ' Mũi tên qua phải, đi xuống ‘ Bạn có thể bỏ qua trường hợp này, vì đâu có cấm ‘ người dùng duyệt record kế tiếp If Me.ActiveControl.Name = "ContactTitle" Then KeyCode = 0 End If Case 9 If Shift And acShiftMask Then If Me.ActiveControl.Name = "CustomerID" Then KeyCode = 0 End If End If End Select End Sub thay đổi nội dung bởi: vphamquoc, 02-12-2008 lúc 09:07 AM. |
|
|
|
|
|
|