|
|
|
вопрос по переходе из одной формы в другую. и обратно.
|
|||
|---|---|---|---|
|
#18+
у меня есть форма с двумя полями адресов (напр, рабочий и домашний), есть форма для заполнения адреса (для удобства и единообразия адреса). Как сделать так, чтобы при закрытии формы заполнения адреса вся заполненная информация строкой попадала в первую форму? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2004, 18:28 |
|
||
|
вопрос по переходе из одной формы в другую. и обратно.
|
|||
|---|---|---|---|
|
#18+
Есть два варианта простой и хороший :) Простой: В форме ввода делаеш pablic свойство типа Control После открытия формы в вызывающей форме инициализируеш это свойство ссылкой на контрол в который должно вернутся значение. при закрытии присваиваеш значение и оно по ссылке уходит в контролл вызвавшей формы 2-й путь вызвать событие на вызвавшей форме и передать через него но уменя уже рабочий день кончился если захочеш завтра опишу правильный способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2004, 19:01 |
|
||
|
вопрос по переходе из одной формы в другую. и обратно.
|
|||
|---|---|---|---|
|
#18+
ага, напишите, пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 10:47 |
|
||
|
вопрос по переходе из одной формы в другую. и обратно.
|
|||
|---|---|---|---|
|
#18+
а не проще ли на событие открытие вставить код который сохранил бы в переменную Screen.activeform ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:18 |
|
||
|
вопрос по переходе из одной формы в другую. и обратно.
|
|||
|---|---|---|---|
|
#18+
а это как? напишите поподробнее, пожалуйста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:25 |
|
||
|
вопрос по переходе из одной формы в другую. и обратно.
|
|||
|---|---|---|---|
|
#18+
Чой-то мне кажется, что данный вопрос сводится к вопросу: Как передать данные из одной формы в другую? Подобные вопросы обсуждались в 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:33 |
|
||
|
вопрос по переходе из одной формы в другую. и обратно.
|
|||
|---|---|---|---|
|
#18+
открываешь параметры формы в событие открытие формы ставишь процедура обработки событий в процедуре ставишь код Return_to = screen.activeform в начале модуля формы private Return_to as string когда нужно будет имя формы куда вернуться - используй значение этой переменной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 11:36 |
|
||
|
вопрос по переходе из одной формы в другую. и обратно.
|
|||
|---|---|---|---|
|
#18+
Вот ИМХО правильный способ которым я сейчас пользуюсь для заполнения полей формы из другой(всплывающий справочник) Названия полей и форм беру из конкретного примера, но абстрагироватся я думаю будет не сложно. Имеем форму 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 12:34 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32498228&tid=1674980]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
190ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 521ms |

| 0 / 0 |
