powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как передать параметр (критерий) при открытии "многоэкземлярной" формы
6 сообщений из 6, страница 1 из 1
Как передать параметр (критерий) при открытии "многоэкземлярной" формы
    #32469988
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартная ситуация:
есть набор документов - например накладные.
Пользователь хочет видеть на экране несколько детализованных накладных и ещё и вводить новую.
Понятно что для этого надо использовать несколько экземпляров одной формы.

открываю новый экземпляр формы как Гетц учил: set frm = new form_тратата

А как передать параметр (например типа как в OpenArgs), что бы мне открыть форму на нужном документе.
Как вообще это делается?
...
Рейтинг: 0 / 0
Как передать параметр (критерий) при открытии "многоэкземлярной" формы
    #32470000
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно что для этого надо использовать несколько экземпляров одной формы.
Лично мне это не понятно :)
----
Я думаю, тут поможет Me.Recordset. Например:
Me.Recordset!Fld_1 = Forms!MyForm!MyField
...
Рейтинг: 0 / 0
Как передать параметр (критерий) при открытии "многоэкземлярной" формы
    #32470010
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vsevolod V

А как открыть несколько документов не используя экземпляры одной формы?
Что бы на экране было 2 идентичные формы с разными данными?
...
Рейтинг: 0 / 0
Как передать параметр (критерий) при открытии "многоэкземлярной" формы
    #32470104
Проще всего создать св-во(а) у
form_тратата
так чтобы:

set frm = new form_тратата
Set form_тратата.RequeredBy = Me
(если нужно будет потом что-то возвращать в вызвавшую форму, а сама форма вызова может быть и экземпляром, и какой угодно)
form_тратата.ЕщеКакоеТоСвВо = ... (в зависимости от того, что вы хотите)

Причем, для не объектных св-ств вполне сгодятся скрытые поля.

(если предполагается открывать form_тратата и как стандартный экземпляр с acDialog, то можно передаться через глобальные переменные (по возможности быстрее переведя их содержимое в разряд свойств вызванной формы)
set glForm = me
glЕщеКакоеТоСвВо = Me.ЕщеКакоеТоСвВо
...
DoCmd.OpenForm "тратата" ,..., acDialog
...
Private Sub Form_Open(Cancel As Integer)
Set me.RequeredBy = glForm
Me.ЕщеКакоеТоСвВо = glЕщеКакоеТоСвВо
...
...
Рейтинг: 0 / 0
Как передать параметр (критерий) при открытии "многоэкземлярной" формы
    #32470446
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, обязательно попробую.
Ещё как-то можно организовать норм. работу неск. экземпляров?
Хотя подозреваю - последнее- самый оптимальный вариант.
...
Рейтинг: 0 / 0
Как передать параметр (критерий) при открытии "многоэкземлярной" формы
    #32470491
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще можно сделать функцию которая будет возвращать
некое предустановленное значение.

Function lngGetCurID(Optional ByVal lngID As Long = 0) As Long
Static Save as Long

If lngID = 0 Then
lngGetCurID=Save
Else
Save =lngID
End If

End Function

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


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