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

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

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

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

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

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

...это опечатка,в редакторе vba написано как надо, иначе компилятор бы ругался,это уж мне известно
...
Рейтинг: 0 / 0
11.10.2019, 00:57
    #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
11.10.2019, 01:11
    #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
11.10.2019, 08:02
    #39874963
drafty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить какой элемент БЫЛ в фокусе на момент нажатия кнопки
__MichellePreviousControl.

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

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


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