Итак, вот код для отключения перехода по записям по Scroll'у:
| Код | Option Compare Database Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer ............................................................................
Private Sub Form_Current() If b = 1 Then DoCmd.GoToRecord acForm, "form1", acGoTo, a End Sub
Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long) b = 1 a = Form.CurrentRecord End Sub
|
Значение b=1 означает, что колесико мыши крутилось. Замечание: При b=1 использование стандартных кнопок перехода по записям формы невозможно (то есть возможно, но результат будет - выбор одной и той же записи (текущей) ).
При создании собственных кнопок примерный код такой:
| Код | Private Sub Form_Load() DoCmd.GoToRecord acForm, "form1", acLast d = Form.CurrentRecord DoCmd.GoToRecord acForm, "form1", acFirst c = Form.CurrentRecord e = 3 End Sub
Private Sub Next_1_Click() b = 0 If Form.CurrentRecord < d Then DoCmd.GoToRecord acForm, "form1", acNext End Sub
Private Sub GoTo_1_Click() b = 0 If (e >= c) And (e <= d) Then DoCmd.GoToRecord acForm, "form1", acGoTo, e End Sub
|
А вот при b=0 событие Form_Current не происходит, и кнопки работают как часы .
Ну и установка переменной b в значение 0 (для нормальной работы стандартных кнопок обработки записей):
| Код | Private Sub Form_Timer() If b <> 0 Then b = 0 End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If b <> 0 Then b = 0 End Sub
Private Sub ЗаголовокФормы_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If b <> 0 Then b = 0 End Sub
Private Sub ОбластьДанных_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If b <> 0 Then b = 0 End Sub
Private Sub ПримечаниеФормы_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If b <> 0 Then b = 0 End Sub
|
Естественно, из всех этих событий хватит и одного Timer'а. Я выставил его интервал - 100. Но это - кто как. Вобще хватит и 1 секунды.
| Цитата | | можно и назначить переход к текущей записи, хи , а ты попробуй, а потом подергай туда суда колёсиком, оно проскакивать умудряеться. |
Я крутил колесико с максимальной скоростью, какую только может развить мой палец . Проскоков не было. Не думаю, что часто встречаются люди, палец которых обладает поистине скоростью истребителя, тем более - специально бешено раскручивающие колесико мыши. Это уже - зоофилия. |