powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сделать ПРАВЕЛЬНЫЙ справочник
15 сообщений из 15, страница 1 из 1
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102099
AlexNiko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сделать функцию что бы она на входе открывала форму а на выходе, при закрытии формы-справочника давала значение выбранное в форме.
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102114
sFx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давала куда? можно это значение помещать в глобальную переменную например, а можно в качестве аргумента при открытии другой формы...
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102129
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не забыть при открытии формы указывать параметр acDialog, чтобы выполнение функции остановилось до закрытия формы.
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102132
AlexNiko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том то и дело что использовать это надо будет для вставки в различные формы так что аргумент формы отпадает, а хотелось бы видеть нечто подобное:
Код: plaintext
1.
me.mesto=getfromspavka()
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102136
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и напиши

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
function getfromspavka() as integer

docmd.openform  "name" ,,,acDialog
' в форме при закрытии присвой значение переменной Public ret_val'

getfromspavka=ret_val

end function

...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102252
ДиД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>savik
а как быть с размерами формы справочника? если открывать как acDialog, то ничего нельзя изменить.
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102278
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если ОЧЕНЬ надо, то можно написать обработчик onMouseMove и захреначить изменение размера.
Правда зачем это нужно - не очень понимаю. Не слишком напрягает та же особенность MsgBox ?
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102281
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно еще перед вызовом формы обнулить переменную (ну или задать для нее какое-то неподходящее значение),
а в функции сделать:

Код: plaintext
1.
2.
Do While MyVar= 0 
   DoEvents
Loop


Не очень хооршо, конечно, но работать должно ;0)
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32102410
vladK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если комплексуешь по поводц глобальных переменных (как я например), сохраняй значение - результат работы формы в её же свойстве TAG.
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32103320
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может Вам нужно полученное значение помещать сразу в поле основной формы?
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32103391
MixaCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ!!! Ну почему вечно одни глобальные переменные??!?!
Если вер. 2.0 - согласен, базара нет.... да и то.. зачем глобальные?!?
Они имеют тенденцию превращаться в мусорные ямы, да и ... не красиво это!!!

Ведь с 97 появились Propert'я - очень полезная штучка...
У себя переписал почти все Public переменные на Property - красота...

А механизм вызова справочника у меня примерно следующий:
1. Одна форма на все справочники и одна функция вызова...
2. По номеру справочника определяется описание, расположение элементов и пр... то бишь динамически настраивается форма (вплоть до конкретного вида под каждого пользователя).
3. В форму справочника передается Control (Set Property), в который надо вернуть значение после выбора пользователем). Естественно под него в форме справочника есть Private переменная типа Control. (в принципе, конечно можно использовать и Public переменную в форме...)
4. В этом случае не нужны никакие acDialog и пр... - обычная нормальная форма..
5. Tag - тоже не рекомендовал бы использовать для возврата значений... - имеет свойство сохраняться при закрытии формы - и в принципе таже самая муссорная яма....

2 All:
Естественно это только мое видение - никого не хотел обидеть!!!!
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32103413
Julius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, конечно, в VBA, хвала Биллу Гейтсу есть события классов, а модули форм - это тоже модули классов.
По-этому, в модуле формы-спраовчника можно написать свое событие:

Public Property ObjectChange(Id As Variant)

В событии AfterUpdate() формы-спарвочника:

Private Sub Form_AfterUpdate()
RaiseEvent ObjectChange(Me!Id)

End Sub

В вызввающей форме тогда надо писать:

Private WithEvents Frm As Form_Справочник

В событии кнопки Click:

Private Sub Кнопка_Click()
Set Frm = New Form_Справочник
Frm.Caption = "Подпись для формы-српавочника"
Frm.Visible = True
End Sub

Потом пишем обработчик для события нашей формы:

Private Sub Frm_ObjectChange(Id As Variant)
Me.Поле = Id
Frm.SteFocus
DoCmd.Close

End Sub

Преимуществ такого подхода множество:

1. Форму-справочник можно отобразить на экране много раз одновременно
2. форма-справочник ничего не должна знать о том, кто ее вызывает
3. вызывающая форма, напротив точно знает, зачем вызвала форму-справочник и что делать с кодом записи, который вернуло ее событие
4. Можно настроить некоторые свойства справочника, например, caption до того, как форма будет отображена на экране. Можно также применить фильтры, выбрать запись, начать изменение и т.п. - на Ваш вкус

Этот подход, строго говоря самый универсальный и правильный, поскольку если справочник универсален, незачем в нем описывать его реакцию на разного рода формы его вызова.
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32103434
MixaCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Julius:
Рад, что есть единомышленники!!!!
Надеюсь, что их много!!!!
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32103782
Фотография Savik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, понеслось!
Последователи Вирта и Страуструпа, апологеты ООП!
Всё это прикольно, но для такой элементарной задачи всё же проще, не мудрствуя лукаво, записать в глобальную переменную, тем более, что за время закрытия формы никаких мусорных ям не образуется.
...
Рейтинг: 0 / 0
Как сделать ПРАВЕЛЬНЫЙ справочник
    #32103918
MixaCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вопрос звучал "Как сделать ПРАВЕЛЬНЫЙ справочник"!!!!

Вот и отвечаем - как правильный, а не какой попало....
Причем согласен, что потенциально из справочника может вызываться лругой справочник - поэтому New - правильнее, чем старый OpenForm.....

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


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