Вопрос № 38137: Уважаемые Эксперты, здравствуйте!
Пожалуйста, подскажите, как проверить текстовое поле в Access 2002 на нулевое(пустое) значение. Почему не работает следующий код:...Вопрос № 38170: Уважаемые эксперты! Как передать фокус следующему и предыдущему элеменам управления по свойству TabIndex (нужен пробег по элементам управления с помощью клавиш-стрелок)?...
Вопрос
№ 38.137
Уважаемые Эксперты, здравствуйте!
Пожалуйста, подскажите, как проверить текстовое поле в Access 2002 на нулевое(пустое) значение. Почему не работает следующий код:
Приложение:
Отправлен: 21.03.2006, 18:54
Вопрос задал: AJS (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Genyaa
Здравствуйте, AJS!
Сделайте небольшую хитрость... (Access действительно не обрабатывает попытку сравнения значения поля с Null)
Напишите так, как я написал в приложении...
Впрочем, ту же операцию в Access, как мне кажется, проще сделать на уровне свойств поля (свойства "Условие на значение" и "Сообщение об ошибке"). Тогда код обработчика событий "освобождается от чисто технических деталей"... но я не настаиваю... бывает случае, когда выглядит лучше сделать в коде.
Приложение:
Ответ отправил: Genyaa (статус: 2-ой класс)
Ответ отправлен: 21.03.2006, 22:07
Отвечает: AlexanderZh
Здравствуйте, AJS!
на null проверяют так: if IsNull( имя поля ) = true
Ответ отправил: AlexanderZh (статус: 5-ый класс)
Ответ отправлен: 22.03.2006, 00:16 Оценка за ответ: 5
Вопрос № 38.170
Уважаемые эксперты! Как передать фокус следующему и предыдущему элеменам управления по свойству TabIndex (нужен пробег по элементам управления с помощью клавиш-стрелок)?
TabIndex - свойство, дающее знать (или устанавливать) порядковый номер элемента на форме при переходе по <Tab>.
SetFocus - метод, устанавливающий фокус на элементе.
В приложении пример использования...
При клике на форме макрос пробежится фокусом по всем элементам формы UserForm1 в порядке их TabIndex со скоростью - каждый следующий элемент в секунду.
Приложение:
Ответ отправил: Genyaa (статус: 2-ой класс)
Ответ отправлен: 22.03.2006, 11:13 Оценка за ответ: 5 Комментарий оценки: Почему вы шагаете с i=1, j=1, а не так: For j = 0 To UserForm1.Controls.Count-1 For i = 0 To UserForm1.Controls.Count-1 If UserForm1.Controls(i ).TabIndex = j Then UserForm1.Controls(i).SetFocus А что нет методов, функций для определения контрола с предыдущим- следующим индексом? Кроме того, в этом цикле надо ещё пропускать лэйбелы :)
Отвечает: Залетин Виталий Викторович
Здравствуйте, Александр А.А.!
ТУт событие KeyDown надо обрабатывать, но явно указывать контрол. Например:
Private Sub Text1_KEydown(...)
If keyCode=vbKeyLeft Then Text2.SetFocus
End Sub
--------- Учиться никогда не поздно. Особенно программированию!