Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Использование календаря / 10 сообщений из 10, страница 1 из 1
23.04.2003, 07:32
    #32146318
Kotenochek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
У меня есть на форме элемент календарь:
есть таблица и на форме элемент поле-Data , связанный с таблицей
Календарь в качестве данных использует - Data
Меняя дату в календаре в поле Data дата меняется только тогда когда я делаю активным этот элемент на форме.
Что нужно для того чтобы автоматически менялась дата в элементе Data, при изменении даты в календаре?
Знаю что нужно использовать Календарь.Value вот только для какого события?
Или есть другие варианты?
...
Рейтинг: 0 / 0
23.04.2003, 08:54
    #32146343
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
В простом модуле размести
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Option Compare Database
Option Explicit

Public mo_pbl_ControlElement       As Control    'храниться ссылка на элемент в который надо внести значение выбранной даты

Public Sub mo_OpenCalendar(mo_Element As Control)
    Set mo_pbl_ControlElement = mo_Element    ' присваевам переданный объект глобальной переменной
    Set mo_Element = Nothing    'подчистим
    DoCmd.OpenForm "frm0Calendar" 'форма с календарем
    'уничтожается mo_pbl_ControlElement в модуле frm0Calendar при закрытии
End Sub



В форме с календарем frm0Calendar

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Form_Current()
' получаем значение mo_pbl_ControlElement. Оно формируется в момент нажатии кнопки на некой форме.
' mo_pbl_ControlElement присваевается значение элемента к-ое мы хотим изменить
    On Error Resume Next
    k.Value = Nz(mo_pbl_ControlElement.Value, Date) ' k- имя элемента Календарь
End Sub

Private Sub k_DblClick()
    Call Кнопка1_Click 
End Sub

Private Sub Кнопка1_Click()
' Кнопка1 - это кнопка типа ОК. Так же эта процедкрка вызывается из события двойного щелчка по календарю

' делаем обратное присваивание. Так как mo_pbl_ControlElement содержит ссылку на поле (Control)
' то присваевание mo_pbl_ControlElement приведет к смене значения в поле формы
    On Error Resume Next
    mo_pbl_ControlElement.Value = k.Value
    Set mo_pbl_ControlElement = Nothing
    DoCmd.Close acForm, Me.Name
End Sub


В твоей форме размести рядом с полем даты кнопку вызывающую сл. код

Код: plaintext
1.
2.
3.
Private Sub ButtonCalendar_Click()
        Call mo_OpenCalendar(ПолеНаФорме_с_Датой)
End Sub


Этот пример можно было бы сделать и модулем класса, но так как форма открывется как Dialog - я не стал. Так же кто-нибудь сможет предложить тебе способ и лучше(проще).
...
Рейтинг: 0 / 0
23.04.2003, 10:09
    #32146387
Kotenochek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
А как в VB называется свойство для календаря которое если через обычные свойства элемента смотреть называется Данные и там еще можно выбрать например поле из таблицы, если форма связана с таблицей?
Я хочу это программно записать.
...
Рейтинг: 0 / 0
23.04.2003, 17:14
    #32146955
GeorgeV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
Проще простого. Пусть, например, поле именуется fldDate, а календарь - ctlCalendar.
В модуле формы описываем процедуру (исключительно ручками, минуя бланк свойств календаря, ибо на нем свойство "Нажатие кнопки" для календаря отсутствует).

Private Sub ctlCalendar_Click()
fldDate.SetFocus
fldDate.Text=ctrCalendar.Value
End Sub

Обратная связь (тоже приятно выглядит)

Private Sub fldDate_KeyUp(KeyCode As Integer, Shift As Integer)
If IsDate(fldDate.Text) Then
ctlCalendar.Value = fldDate.Text
End If
End Sub
...
Рейтинг: 0 / 0
21.06.2003, 12:27
    #32188150
Zanuda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
>Private Sub ctlCalendar_Click()
Эта процедура действительна если выбирать конкретное число, а вот если выбирается месяц или год, то не работает. Тем не менее при сокращенном отображении календаря (показ месяца и года) в заголовке период меняется.
Для DateTimePicker - в случае сокращеного календаря. используется Change(), но это внешняя библиотека.

Есть форма, на ней стандартный Календарь, отображающий только месяц и год, каким образом ативировать другое поле, при смене только года или месяца в календаре?
...
Рейтинг: 0 / 0
21.06.2003, 13:02
    #32188185
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
а мне вот понадобился специфичный календарь - для редактирования графика рабочего времени в зависимости от переносов празников - пришлось его просто сделать на форме ))

...
Рейтинг: 0 / 0
22.06.2003, 01:09
    #32188556
V. Motchulsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
2. Senin Viktor
Public Sub mo_OpenCalendar(mo_Element As Control)
Set mo_pbl_ControlElement = mo_Element ' присваевам переданный объект глобальной переменной
Set mo_Element = Nothing ??????????????? - Элемент на открытой форме, а мы его пытаемся уничтожить
DoCmd.OpenForm "frm0Calendar" 'форма с календарем
'уничтожается mo_pbl_ControlElement в модуле frm0Calendar при закрытии
End Sub
...
Рейтинг: 0 / 0
23.06.2003, 09:41
    #32188789
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
2V. Motchulsky

>Set mo_Element = Nothing ??????????????? - Элемент на открытой форме, а мы его пытаемся уничтожить

Хотя контрол передается по ссылке (ByRef, по-умолчанию), и должен был бы "уничтожиться" при Nothing - Этого не будет пока есть еще ссылки на этот контрол(объект) - в данном случае переменная mo_pbl_ControlElement.
Поэтому уничтожается только локальная ссылка на mo_Element. К общей радости оперативной памяти

З.Ы.
Но все равно - фэнкс. Передача по ByVal/ByRef - старый бич VB-программистов. Можно и не уследить.
...
Рейтинг: 0 / 0
23.06.2003, 12:26
    #32189002
V. Motchulsky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
2Senin Viktor
Это я скачал от нефиг делать пилораму, там что-то календарь глючил - частенько не закрывается форма, вот и стал вчитываться в код.
...
Рейтинг: 0 / 0
23.06.2003, 12:30
    #32189006
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование календаря
>Это я скачал от нефиг делать пилораму

А там другой календарь :(
другой код , другой подход.
Да и говорил я - давно делал.
В настоящей момент переделываю.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Использование календаря / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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