powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
17 сообщений из 17, страница 1 из 1
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874831
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется кнопка на форме помимо кнопки имеется листбокс и комбобокс.Нужно чтобы при нажатии на кнопку открывалась форма но критерий ее содержимого зависил от того,какое значение выбрано (листбокс или комбобокса). Пробовал воспользоваться методом Active.Control.Name на разных возможных событиях кнопки-всегда получается что Active.Control.Name это имя кнопки.Какой может быть выход?
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874838
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drafty,
1.А почему все это не "прикрутить" к событию листбокса или комбобокса?
2.Хотелось бы видеть Ваш код
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874839
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку: в момент нажатия кнопки Active.Control.Name=Имя кнопки
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874844
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PreviousControl.

К тому же, не Active.Control, а ActiveControl.
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874861
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
draftyКакой может быть выход?

выхода минимум два
1. кнопка не нужна, при выборе значения в листбоксе или комбобоксе сразу вызывать нужную форму.
2. сделать переменную, присвоить ей ноль, при выборе в листбоксе присваивать ей 1, при выборе в комбо присваивать ей 2. Соответственно в кнопке анализируем переменную: если 0 вообще ничего не выбрано, 1- в последний раз тыкались в листбокс, 2 - последний выбор из комбо
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874864
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichellePreviousControl.

К тому же, не Active.Control, а ActiveControl.
Попробую, завтра отпишусь
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874865
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
второй способ более подходит, мало ли сколько еще там элементов управления и сколько раз по ним тыкали
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874866
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichellePreviousControl.

К тому же, не Active.Control, а ActiveControl.Не доглядел-вопрос "очень сложный" поэтому смотрел не внимательно
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874895
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkudrafty,
1.А почему все это не "прикрутить" к событию листбокса или комбобокса?
2.Хотелось бы видеть Ваш код
По техническим причинам пока не могу опубликовать код
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874897
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku__MichellePreviousControl.

К тому же, не Active.Control, а ActiveControl.Не доглядел-вопрос "очень сложный" поэтому смотрел не внимательно

...это опечатка,в редакторе vba написано как надо, иначе компилятор бы ругался,это уж мне известно
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874948
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
draftyПо техническим причинам пока не могу опубликовать кодНу раз не можете...Вот обработка события "нажатие кнопки".При этом из списка с мультивыбором,в зависимости от выбора,формируется строка WHERE для запроса [gruMyDate],используемая при его открытии:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub cmbGru_Click()
Dim i, mydate
For Each i In Me.list.ItemsSelected
    mydate = mydate & "," & Format(Me.Список4.ItemData(i), "\#mm\/dd\/yy\#")
Next
If mydate = Empty Then
    CurrentDb.QueryDefs("gruMyDate").SQL = "SELECT * FROM таблица1"
        Else
    CurrentDb.QueryDefs("gruMyDate").SQL = "SELECT * FROM таблица1 WHERE дата IN(" & Mid(mydate, 2) & ")"
End If
DoCmd.OpenQuery "gruMyDate"
End Sub

для поляСоСписком как-то так:
Код: vbnet
1.
2.
3.
4.
DoCmd.ApplyFilter , "дата=" & Format(Me.cmd, "\#mm\/dd\/yy\#")   
'если поле имеет тип дата\время
DoCmd.ApplyFilter , "поле=" & Me.cmd 'если число
DoCmd.ApplyFilter , "поле='" & Me.cmd & "'" 'если текст.Аналогично и в cmbGru_Click() при определении mydate
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874949
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку: строку
Код: vbnet
1.
mydate = mydate & "," & Format(Me.Список4.ItemData(i), "\#mm\/dd\/yy\#")

следует читать
Код: vbnet
1.
mydate = mydate & "," & Format(Me.list.ItemData(i), "\#mm\/dd\/yy\#")

список4 и list-имеется ввиду один и тот же элемент-список
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39874963
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichellePreviousControl.

К тому же, не Active.Control, а ActiveControl.
Да, действительно,лучшее решение для этого случая это Screen.PreviousControl.Name
Благодарю за помощь 👍👍👍
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39875155
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drafty,
а если перед нажатием кнопки ткнули(случайно) не в тот элемент имя которого Вы хотите получитьvmag....мало ли сколько еще там элементов управления и сколько раз(и по каким) по ним тыкали
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39875355
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagdraftyКакой может быть выход?

2. сделать переменную, присвоить ей ноль, при выборе в листбоксе присваивать ей 1, при выборе в комбо присваивать ей 2. Соответственно в кнопке анализируем переменную: если 0 вообще ничего не выбрано, 1- в последний раз тыкались в листбокс, 2 - последний выбор из комбо
Неплохой вариант (возьму на вооружение),но я сторонник того,что если есть уже готовое свойство или метод-лучше пользоваться им(для пополнения багажа 'знаний'),чем идти обходными путями
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39875363
Фотография drafty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkudrafty,
а если перед нажатием кнопки ткнули(случайно) не в тот элемент имя которого Вы хотите получитьvmag....мало ли сколько еще там элементов управления и сколько раз(и по каким) по ним тыкали
...на этот случай мною предусмотрена ветка с выдачей юзеру msgbox,,а потом Exit Sub (иначе выскакивает ошибка) 😉😉😉
...
Рейтинг: 0 / 0
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
    #39875438
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkudrafty,
1.А почему все это не "прикрутить" к событию листбокса или комбобокса?
Это не потребует никаких MSGBOX и будет максимально просто
(не надо изобретать велосипед и создавать сложности там,где их нет)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]