powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вопрос по переходе из одной формы в другую. и обратно.
9 сообщений из 9, страница 1 из 1
вопрос по переходе из одной формы в другую. и обратно.
    #32492731
pfeffer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня есть форма с двумя полями адресов (напр, рабочий и домашний), есть форма для заполнения адреса (для удобства и единообразия адреса). Как сделать так, чтобы при закрытии формы заполнения адреса вся заполненная информация строкой попадала в первую форму?
...
Рейтинг: 0 / 0
вопрос по переходе из одной формы в другую. и обратно.
    #32492781
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть два варианта
простой и хороший :)

Простой:
В форме ввода делаеш pablic свойство типа Control
После открытия формы в вызывающей форме
инициализируеш это свойство ссылкой на контрол в который
должно вернутся значение.

при закрытии присваиваеш значение и оно по ссылке уходит в контролл
вызвавшей формы

2-й путь вызвать событие на вызвавшей форме и передать через него

но уменя уже рабочий день кончился
если захочеш завтра опишу правильный способ.
...
Рейтинг: 0 / 0
вопрос по переходе из одной формы в другую. и обратно.
    #32498057
pfeffer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ага, напишите, пожалуйста!
...
Рейтинг: 0 / 0
вопрос по переходе из одной формы в другую. и обратно.
    #32498166
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не проще ли на событие открытие вставить код который сохранил бы в переменную Screen.activeform ?
...
Рейтинг: 0 / 0
вопрос по переходе из одной формы в другую. и обратно.
    #32498191
pfeffer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а это как?
напишите поподробнее, пожалуйста!
...
Рейтинг: 0 / 0
вопрос по переходе из одной формы в другую. и обратно.
    #32498217
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чой-то мне кажется, что данный вопрос сводится к вопросу:
Как передать данные из одной формы в другую?
Подобные вопросы обсуждались в 2-х парралельных топиках (вчера-сегодня)
А если поиск запустить, то наверное и больше можно найти :)
http://www.sql.ru/forum/actualsearch.aspx?search=%EF%E5%F0%E5%E4%E0%F7%E0+%E4%E0%ED%ED%FB%F5+%EC%E5%E6%E4%F3+%F4%EE%F0%EC%E0%EC%E8&a=&ma=0&bid=4&dt=-1&s=1&so=1
...
Рейтинг: 0 / 0
вопрос по переходе из одной формы в другую. и обратно.
    #32498228
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открываешь параметры формы
в событие открытие формы ставишь процедура обработки событий

в процедуре ставишь код
Return_to = screen.activeform

в начале модуля формы
private Return_to as string

когда нужно будет имя формы куда вернуться - используй значение этой переменной
...
Рейтинг: 0 / 0
вопрос по переходе из одной формы в другую. и обратно.
    #32498416
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ИМХО правильный способ которым я сейчас пользуюсь для заполнения
полей формы из другой(всплывающий справочник)

Названия полей и форм беру из конкретного примера,
но абстрагироватся я думаю будет не сложно.
Имеем форму PL_P_Vvod
на ней поле cboRS_ID_B(в данном случае комбобокс но это не важно)
Рядом с полем размещена маленькая кнопка для продвинутого выбора
btRS_ID_B
При нажатии на нее открываем форму RS_Tree_Select
Причем не важно как главное поиметь ссылку на открытую форму.
В данном случае ссылка берется через коллекцию Forms
Но поскольку все происходит через ссылки ничего не мешает создать
экземпляр формы другим способом.
Через ссылку на форму запускаем ее метод,
передавая в нее какие вам угодно данные,
но главное ссылку на открывшую ее форму
в которую надо будет вернуть значение (Me).
Forms("RS_Tree_Select").OpenForSelect -1, "Выберите расходы", Me
***********************************
Dim rs As ADODB.Recordset 'Рекордсет для возврата значения(значений)
'в вызвавшую справочник форму
Dim frm As Form 'Переменная для сохранения ссылки на вызвавшую форму
*****************************************
Public Function OpenForSelect(RootNode As Long, Optional WindowCaption As String = "", Optional SrcForm As Form = Nothing)
'Здесь было много спец кода связанного с данным конкретным справочником,
'но нас интерисует только одна строчка
'Сохранение ссылки на форму в переменной модуля формы
Set frm = SrcForm
End Function
***************************************
Форма формирует список значений(или одно значение) который надо вернуть
Помещает его в рекордсет rs
Генерит событие для вызвавшей ее формы
И закрывается
RaiseCEvent evtSelectTreeClosed, "Получен список узлов", rs, True, frm
DoCmd.Close
**************************************************
'Модуль генерации события для формы
Public Type TEvent
lCode As Long
sDescription As String
vParamLow As Variant
vParamHi As Variant
vDestForm As String
End Type

Private Const evtUserEventBase = 500
Public Const evtSelectTreeClosed = evtUserEventBase + 1
Public Const evtpEventParam = 500

Public tCEvent As TEvent

Public Function RaiseCEvent(lCode As Long, Optional sDescription As String, _
Optional ByRef vParamLow As Variant, Optional ByRef vParamHi As Variant, _
Optional vDestForm As Variant) As Long
Dim frmTemp As Form

On Error Resume Next

tCEvent.lCode = lCode
tCEvent.sDescription = sDescription
If IsObject(vParamLow) Then
Set tCEvent.vParamLow = vParamLow
Else
tCEvent.vParamLow = vParamLow
End If
If IsObject(vParamHi) Then
Set tCEvent.vParamHi = vParamHi
Else
tCEvent.vParamHi = vParamHi
End If
tCEvent.vDestForm = vDestForm

If vDestForm Is Null Then
For Each frmTemp In Forms
frmTemp.EventHandler
Next
Else
vDestForm.EventHandler
End If
End Function

Public Sub DocTypesRegister()

End Sub
****************************************
Чтобы форма могла принять событие она должна иметь процедуру его обработки

Public Sub EventHandler()
Dim rs As ADODB.Recordset
Select Case tCEvent.lCode
Case evtSelectTreeClosed:
If tCEvent.vParamHi = True Then
Set rs = tCEvent.vParamLow
'MsgBox "Выбрано - " & rs.RecordCount
'В данном случае используется только одно значение
'И возможно проще использовать не рекордсет а переменную
'но сам механизм создавался с принципиальной возможностью
'возвращать список значений
rs.MoveFirst
'Вот момент для которого все затевалось
'Поле в вызвавшей форме получает выбранное значение
cboRS_ID_B = rs.Fields(0).Value
Else
' MsgBox "Выбор отменен"
End If
Me.Visible = True
End Select
End Sub

PS Механизм передачи с генерацией события предложил и помог сделать IgorM
...
Рейтинг: 0 / 0
вопрос по переходе из одной формы в другую. и обратно.
    #32500325
pfeffer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но это все так сложно для меня! (я только начинаю)
событие EventHandler - должно быть тем событием, которое вызывает "вторую" форму?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вопрос по переходе из одной формы в другую. и обратно.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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