Все вопросы связанные с программированием. Языки программирования. Средства разработки.
Ответить
Аватара пользователя
dBaser
Не в сети
СуперМодератор
СуперМодератор
Сообщения: 1202
Зарегистрирован: Вт дек 09, 2003 11:50
Контактная информация:

VBA Access ::: Перехват нажатия кнопок на форме

Сообщение dBaser »

Иногда на форме необходимо бывает перехватывать нажатие кнопок (например PageUp и PageDown для отмены перехода между записями)


Вот простенькое решение этой задачи!


Код: Выделить всё

Private Sub Form_KeyDown (KeyCode as Integer, Shift as Integer) 

          Select Case KeyCode 
                     Case vbKeyPageUp, vbKeyPageDown 
                             KeyCode=0 

                     Case Else 
                            'Ничче не делать! 
          End Select 
End Sub 

Этот код нужно поместить в обработку событий формы "Нажатие кнопки"!
Если еще добавить в свойство цикла табуляции на форме "Только текущая запись", то на Вашей форме будет обрабатываться только текущая запись и не будет никаких недоразумений у конечного пользователя!
Критиковать - это показывать автору, как бы делал я, если бы умел.
-------
Продаются мужские часики. Один часик - 50 долларов.

Rostislava
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 6
Зарегистрирован: Вс апр 12, 2015 21:59

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение Rostislava »

У меня вопрос по коду на VBA:
на форме есть три кнопки: кнопка Поиск, кнопка Далее, кнопка Закрыть. Кнопка Поиск при нажатии на неё ищет по введенному образцу соответствующие записи, кнопка Далее продолжает поиск, а кнопка Cancel должна закрыть эту форму. Как написать код на VBA для кнопки Cancel? Помогите, плиз!!!! Буду очень благодарна.

Аватара пользователя
_korvin81
Не в сети
СуперМодератор
СуперМодератор
Сообщения: 8248
Зарегистрирован: Пт окт 08, 2004 19:10

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение _korvin81 »

Rostislava

Код: Выделить всё

Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
в модуле твоей формы
CommandButton1_Click - подставишь имя своей кнопки Cancel
UserForm1 - подставишь имя своей Формы
Не завидуй тому, кто силен и богат.
За рассветом всегда наступает закат.
С этой жизнью короткою, равную вздоху,
Обращайся, как с данной тебе напрокат.

Rostislava
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 6
Зарегистрирован: Вс апр 12, 2015 21:59

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение Rostislava »

Спасибо огромное! А для кнопки Далее? Я понимаю, что надо организовать цикл, но как?

Аватара пользователя
_korvin81
Не в сети
СуперМодератор
СуперМодератор
Сообщения: 8248
Зарегистрирован: Пт окт 08, 2004 19:10

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение _korvin81 »

Rostislava
А как у тебя работает кнопка Поиск? Как получается тот список по которому ты будешь двигаться кнопкой Далее?
Не завидуй тому, кто силен и богат.
За рассветом всегда наступает закат.
С этой жизнью короткою, равную вздоху,
Обращайся, как с данной тебе напрокат.

Rostislava
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 6
Зарегистрирован: Вс апр 12, 2015 21:59

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение Rostislava »

Код на VBA для кнопки Поиск:
Private Sub Поиск_Click()

Фам_учен.SetFocus
DoCmd.FindRecord Образец
MsgBox ("Образец найден")

End Sub
В поле образец вводим фамилию искомого ученика, нажимаем на кнопку Поиск и на форме отображаются данные ученика по этой фамилии. Но макрос находит первого ученика с такой фамилией. А учеников с такой фамилией несколько, как найти следующего ученика с такой фамилией при нажатии на кнопку Далее?


Rostislava
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 6
Зарегистрирован: Вс апр 12, 2015 21:59

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение Rostislava »

Спасибо! Все работает!

Rostislava
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 6
Зарегистрирован: Вс апр 12, 2015 21:59

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение Rostislava »

Еще один вопрос: как сделать, чтобы при запуске базы данных открывалась форма без ленты меню ( как в учебной базе Борей)?


Rostislava
Не в сети
Случайно забежавший
Случайно забежавший
Сообщения: 6
Зарегистрирован: Вс апр 12, 2015 21:59

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение Rostislava »

У меня офис 2010

Аватара пользователя
_korvin81
Не в сети
СуперМодератор
СуперМодератор
Сообщения: 8248
Зарегистрирован: Пт окт 08, 2004 19:10

Re: VBA Access ::: Перехват нажатия кнопок на форме

Сообщение _korvin81 »

"Файл" - "Параметры" или "Параметры Конфиденциальности"
Изображение
далее на вкладке "Текущая база данных"
Изображение
Не завидуй тому, кто силен и богат.
За рассветом всегда наступает закат.
С этой жизнью короткою, равную вздоху,
Обращайся, как с данной тебе напрокат.

Ответить