Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
145 / 32 / 6
Регистрация: 01.11.2013
Сообщений: 745
1

Раскрыть элемент выбора даты

14.01.2016, 20:56. Просмотров 2960. Ответов 14
Метки нет (Все метки)


При получении фокуса датным Полем нужно развернуть элемент выбора даты и при выборе даты свернуть элемент выбора даты и перевести фокус на другое поле.
Кто подскажет?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2016, 20:56
Ответы с готовыми решениями:

Элемент выбора даты и времени для типа поля "Дата/время"
Здравствуйте. Есть встроенная функция отображать всплывающий календарь для выбора даты в поле типа...

Как добавить на форму поле для выбора даты?
Как добавить на форму поле для выбора даты?(Календарь)Не поле со списком!

Как раскрыть элемент аккардиона
Всем привет, нужна помощь не получается сделать одну вещь. есть код <li class="uk-parent"...

Выбора даты в календаре
Есть сайт, где есть календарь, там пытаюсь установить дату с 10 по 10:...

14
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
14.01.2016, 22:00 2
Лучший ответ Сообщение было отмечено govorun как решение

Решение

Я был уверен, что раскрыть элемент управления невозможно. Ведь хендл этого окна (хендл - системный номер окна, присваиваемый службами Windows) скрыт в аксе и к нему нет доступа. И вот только недавно с огромным удивлением увидел, что в списке макрокоманд RunCommand есть такая опция... Оказывается можно открыть элемент выбора даты. Пример на событии получения фокуса датным полем
Visual Basic
1
2
3
Private Sub ПолеДаты_GotFocus()
    DoCmd.RunCommand acCmdShowDatePicker
End Sub
Цитата Сообщение от govorun Посмотреть сообщение
при выборе даты свернуть элемент выбора даты и перевести фокус на другое поле.
Надо проверить выбрана ли дата на событии Change и перевести фокус. Проверка необходима, поскольку акс не может отличить ручной ввод даты от введенного через пикер
Visual Basic
1
2
3
Private Sub ПолеДаты_Change()
    If IsDate(Me.ПолеДаты) Then Me.ДругоеПоле.SetFocus
End Sub
Добавлено через 21 минуту
Забыл сказать, что опция acCmdShowDatePicker в списке RunCommand найдена в аксе 2010. Есть ли такая в 2007 не знаю. В 2003 и ниже наверняка нет, поскольку нет элемента выбора даты и приходиться пользоваться самодельными пикерами.
4
145 / 32 / 6
Регистрация: 01.11.2013
Сообщений: 745
15.01.2016, 17:44  [ТС] 3
Цитата Сообщение от mobile Посмотреть сообщение
Надо проверить выбрана ли дата на событии Change и перевести фокус. Проверка необходима, поскольку акс не может отличить ручной ввод даты от введенного через пикер
Visual Basic
1
2
3
Private Sub ПолеДаты_Change()
* * If IsDate(Me.ПолеДаты) Then Me.ДругоеПоле.SetFocus
End Sub
А вот это не захотело работать. Пикер закрывается, дата устанавливается в Поле, но курсор из датного поля не уходит.
0
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
15.01.2016, 18:11 4
Лучший ответ Сообщение было отмечено govorun как решение

Решение

Цитата Сообщение от govorun Посмотреть сообщение
А вот это не захотело работать. Пикер закрывается, дата устанавливается в Поле, но курсор из датного поля не уходит.
Да, конечно. Поле еще не получило значения. Надо проверять не Value поля, а его Text
Visual Basic
1
If IsDate(Me.ПолеДаты.Text) Then Me.ДругоеПоле.SetFocus
2
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 10
16.01.2016, 15:02 5
mobile, воспользовался Вашим решением. На одиночной форме все ОК. Но как только ее разместить в качестве подчиненной на другой форме, выдает ошибку:
Раскрыть элемент выбора даты

Раскрыть элемент выбора даты

Можете подсказать, как решить данную проблему?
0
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
16.01.2016, 17:13 6
alan3011, видимо поле в котором записывается дата свободное, не основано на датном поле таблицы. Для свободного поля надо указать свойство ShowDatePicker на вкладке Макет равным "Для дат" и выбрать свойство Формат датного типа, например "Краткий формат даты".
1
шапоклякистка 8-го дня
3655 / 2216 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
16.01.2016, 17:22 7
Цитата Сообщение от mobile Посмотреть сообщение
alan3011, видимо поле в котором записывается дата свободное, не основано на датном поле таблицы. Для свободного поля надо указать свойство ShowDatePicker на вкладке Макет равным "Для дат" и выбрать свойство Формат датного типа, например "Краткий формат даты".
Нет. Только что попробовала это на базе, о которой тут в соседней теме задавали вопрос о накапливающиейся истории в примечании. Поле датное, формат есть. На форме "Список основных средств" макрокоманда работает, создала пустую форму Form1 и вставила "Список основных средств" туда - все, не работает уже.
0
шапоклякистка 8-го дня
3655 / 2216 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
16.01.2016, 17:24 8
Вот сама база.

(а на второй вкладке той же формы "Список основных средств" смотреть примечание с накапливающейся историей).
0
Вложения
Тип файла: rar Основные фонды.rar (134.1 Кб, 29 просмотров)
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 10
16.01.2016, 17:35 9
mobile, поле не свободное, а основано на таблице. "Для дат" - указано.
Как-то возможно решить ту же задачу (раскрытие пикера и переход курсора на другое поле после присвоения даты) для подчиненной формы?
0
Эксперт MS Access
26611 / 14310 / 3166
Регистрация: 28.04.2012
Сообщений: 15,691
16.01.2016, 18:17 10
Цитата Сообщение от texnik-san Посмотреть сообщение
все, не работает уже.
Работает. Если переходить клавиатурой :-(
Если же мышкой, то нарываемся на цепь событий гасящих пикер. При входе пикер поднимается, но на событии мыши KeyUp, которое происходит позже фокуса, пикер гасится. Кстати на свободном поле такого эффекта нет. В заголовке такое свободное поле. Там все идет.

Если хотите, можно вызывать пикер на KeyUp мышки. Во вложении так. Но мне не кажется удобным...
1
Вложения
Тип файла: rar Основные фонды11.rar (117.1 Кб, 14 просмотров)
шапоклякистка 8-го дня
3655 / 2216 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
16.01.2016, 19:29 11
Цитата Сообщение от mobile Посмотреть сообщение
Работает. Если переходить клавиатурой :-(
Имеено клавиатурой переходила. Не работает, с той же ошибкой, что и у автора темы.

Добавлено через 1 минуту
Цитата Сообщение от mobile Посмотреть сообщение
Если хотите, можно вызывать пикер на KeyUp мышки. Во вложении так.
То же тот же эффект с вложенной формой.
0
шапоклякистка 8-го дня
3655 / 2216 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
16.01.2016, 19:31 12
Вот скриншот. Форма просто вложена в другую.

Без вложения в этой же форме все работает.
0
Миниатюры
Раскрыть элемент выбора даты  
145 / 32 / 6
Регистрация: 01.11.2013
Сообщений: 745
16.01.2016, 20:43  [ТС] 13
Я не знаю, кто он такой, но какой-то Памирыч переместил мои сообщения касающиеся данной темы, в тему Программно раскрыть ПолеСоСписком.
Тут глобальная проблема решается, а он... Там еще и вложение было...
 Комментарий модератора 
так бывает, когда ТС создает темы дубликаты
и конечно поменьше супер эмоций


Добавлено через 19 минут
Цитата Сообщение от govorun Посмотреть сообщение
и конечно поменьше супер эмоций
Еще и бубен получил... Что за жизнь..?
Простите великодушно...
0
шапоклякистка 8-го дня
3655 / 2216 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
16.01.2016, 20:46 14
Цитата Сообщение от govorun Посмотреть сообщение
Еще и бубен получил...
Поздравляю с повышением в ранге до "шаман"а )))
0
145 / 32 / 6
Регистрация: 01.11.2013
Сообщений: 745
17.01.2016, 19:34  [ТС] 15
texnik-san, Спасибо

Добавлено через 7 минут
Цитата Сообщение от mobile Посмотреть сообщение
Если хотите, можно вызывать пикер на KeyUp мышки. Во вложении так.
Может я не то смотрел, но после выбора даты в пикере курсор из датного поля не уходит. Я его там не увидел конечно, но и вдругих местах не нашел. А вот значек пикера не исчез. Значит датное поле активно.
Или это просто у меня нервное....? Растрогали меня тут давече...

Добавлено через 22 часа 37 минут
Цитата Сообщение от mobile Посмотреть сообщение
Да, конечно. Поле еще не получило значения. Надо проверять не Value поля, а его Text
Visual Basic
1
If IsDate(Me.ПолеДаты.Text) Then Me.ДругоеПоле.SetFocus
Заработало, по крайней мере в базе-черновике
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2016, 19:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Кнопка выбора даты
Добрый день! Есть кнопка <div class=\"AdmKn\"><div class=\"AdmKn1\"><div...

Диалог выбора даты
Добрый вечер. Подскажите, как в wxPython отобразить на панели элемент выбора даты? Какой элемент...

Форма выбора даты
Подскажите какую форму выбора даты (datepicker) лучше всего прикрутить к сайту на джумле 2.5.6?...

Диалоговое окно выбора даты
есть таковое? все компоненты есть кроме него.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.