Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 29.08.2016
Сообщений: 35
1

Передача значения переменной из одной формы в другую

18.07.2017, 22:29. Просмотров 2448. Ответов 22
Метки нет (Все метки)

День добрый!
Есть две формы: А и В. При определённом событии в форме А значение переменной (текстовой) А1 меняется. Это значение надо отобразить в свободном поле В1 на форме В (при её открытии). Подскажите, пожалуйста, как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2017, 22:29
Ответы с готовыми решениями:

Передача значения поля из одной формы в другую
Здравствуйте! Подскажите, пожалуйста, как передать значения полей из одной формы в другую? Т.е. у...

Передача значения поля (текст) из одной формы в другую форму Access
Здравствуйте! Подскажите, пожалуйста, как передать значения поля из одной формы в другую? ...

Передача значения переменной из одной формы в другую
собственно, название темы говорит само за себя) пишу, мол, #include <vcl.h> #pragma...

Передача значения переменной из одной формы в другую
Доброго времени суток Форумчане. Столкнулся с такой проблемой что мне нужно передать данные с одной...

22
Эксперт MS Access
26184 / 14015 / 3071
Регистрация: 28.04.2012
Сообщений: 15,394
18.07.2017, 22:41 2
Лучший ответ Сообщение было отмечено Z51 как решение

Решение

Сделайте переменную A1 публичной в общем модуле в разделе деклараций. При открытии формы B1 проверяете открыта ли форма A1 и, если открыта, записываете в поле. В процедуре загрузки формы B1
Visual Basic
1
If Currentproject.allforms("a1").isloaded then me.B1=A1
Объявление переменной A1 в общем модуле
Visual Basic
1
2
3
Option Compare Database
Option Explicit
Public A1
1
6130 / 3323 / 716
Регистрация: 05.10.2016
Сообщений: 9,118
18.07.2017, 22:57 3
Цитата Сообщение от mobile Посмотреть сообщение
Сделайте переменную A1 публичной в общем модуле в разделе деклараций.
Михаил, ну задвинул!
Сам то понял - чего написал?
...


Цитата Сообщение от Z51 Посмотреть сообщение
Подскажите, пожалуйста, как это сделать?
В обшем модуле обьявите переменную:
Visual Basic
1
Public sA1 as String
она (переменная) будет хранить нужное значение между вашими прыжками по формам.

Дальше:
Цитата Сообщение от Z51 Посмотреть сообщение
А значение переменной (текстовой) А1 меняется
На событие после обновление поля вешаем:
Visual Basic
1
sA1 = Значение Поля
А при открытии формы B1 - на событии CurrentRecord
Visual Basic
1
Me!ПолеЗначенияA1 = sA1
Как то так ...
0
1 / 1 / 0
Регистрация: 29.08.2016
Сообщений: 35
18.07.2017, 23:07  [ТС] 4
Цитата Сообщение от mobile Посмотреть сообщение
Сделайте переменную A1 публичной в общем модуле в разделе деклараций. При открытии формы B1 проверяете открыта ли форма A1 и, если открыта, записываете в поле. В процедуре загрузки формы B1...
Спасибо! Работает.
0
Эксперт MS Access
26184 / 14015 / 3071
Регистрация: 28.04.2012
Сообщений: 15,394
18.07.2017, 23:07 5
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Михаил, ну задвинул!
Сам то понял - чего написал?
Хотелось бы узнать чем событие CurrentRecord (которого, кстати не существует. Есть Current. А CurrentRecord это свойство) лучше чем событие загрузки? Особенно если форма без источника. А мы ведь об этом ничего не знаем, не так ли?

Насчет "задвинул". Не считая пунктуации, все достаточно точно.
1
6130 / 3323 / 716
Регистрация: 05.10.2016
Сообщений: 9,118
18.07.2017, 23:18 6
Цитата Сообщение от Z51 Посмотреть сообщение
Подскажите, пожалуйста, как это сделать?
А проще до закрытия формы А1, и после открытия формы В1 - передать значение в открываемую форму
Типа:
Me![Название Поля] = Forms("А1")![Название Поля]

Добавлено через 2 минуты
Цитата Сообщение от mobile Посмотреть сообщение
Хотелось бы узнать чем событие CurrentRecord
Смотрите: Порядок событий в объектах базы данных


Добавлено через 4 минуты
Цитата Сообщение от mobile Посмотреть сообщение
А CurrentRecord это свойство
Да! Попутал слегка - верно OnCurrent = Точняк.
mobile, вашим энциклопедическим познаниям пора памятник ставить!
Спасибо!
1
Эксперт MS Access
26184 / 14015 / 3071
Регистрация: 28.04.2012
Сообщений: 15,394
18.07.2017, 23:18 7
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Смотрите:
Смотрю. И где там событие CurrentRecord? Его нет. Есть Current. "Текущая запись" в русском Access. Но и это не столь важно, будем считать опиской. Как воспользоваться этим событием, если форма без источника? А ведь мы об этом ничего не знаем. ТС не говорил об устройстве B1.
1
1 / 1 / 0
Регистрация: 29.08.2016
Сообщений: 35
18.07.2017, 23:24  [ТС] 8
Цитата Сообщение от Eugene-LS Посмотреть сообщение
А проще до закрытия формы А1, и после открытия формы В1 - передать значение в открываемую форму
Типа:
Me![Название Поля] = Forms("А1")![Название Поля]
Передаётся значение ПЕРЕМЕННОЙ, не значение ПОЛЯ. Да, проще сделать невидимое поле и передать его значение другому полю на другой форме. Но задача состояла передать значение переменной. Я создал пустой модуль, описал переменную как и посоветовал Михаил, - всё работает.
0
6130 / 3323 / 716
Регистрация: 05.10.2016
Сообщений: 9,118
18.07.2017, 23:27 9
Цитата Сообщение от mobile Посмотреть сообщение
Смотрю. И где там событие CurrentRecord? Его нет. Есть Current. "Текущая запись" в русском Access
В тот то у меня и путанка идёт - я работаю на MSO 2013 ENG (и ENG с 2000 года)
И пошло ... поехало (с переводом).
Забываю русские эквиваленты VBA ...
0
Модератор
Эксперт MS Access
2734 / 1537 / 380
Регистрация: 12.06.2016
Сообщений: 3,823
18.07.2017, 23:33 10
Лучший ответ Сообщение было отмечено mobile как решение

Решение

Цитата Сообщение от mobile Посмотреть сообщение
Есть Current. "Текущая запись" в русском Access. Но и это не столь важно, будем считать опиской.
Как воспользоваться этим событием, если форма без источника?
Даже если форма без источника данных, событие OnCurrent возникает - однократно.
Я этим порой пользуюсь для форм-контейнеров вложенных форм.
2
6130 / 3323 / 716
Регистрация: 05.10.2016
Сообщений: 9,118
18.07.2017, 23:42 11
Цитата Сообщение от mobile Посмотреть сообщение
в русском Access
Замечен глюк:
Msa 2007 -2010
В построителе выражений - пишет "Формы!" вместо "Forms!" - что совершенно некорректно , и вызывает глюк у юсеров без поддержки РУС. языка.

Добавлено через 6 минут
Цитата Сообщение от Capi Посмотреть сообщение
Даже если форма без источника данных, событие OnCurrent возникает - однократно.
Совершенно в ДЫРОЧКУ!!! - довольно полезное событие!
0
Эксперт MS Access
26184 / 14015 / 3071
Регистрация: 28.04.2012
Сообщений: 15,394
18.07.2017, 23:50 12
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Замечен глюк:
Это не глюк, это фича локализованной версии. Также как вместо Detail Область данных, а вместо Header или Footer Заголовок и Примечание.

Но Вы все же не ответили чем событие Current лучше Load для данной задачи.
0
6130 / 3323 / 716
Регистрация: 05.10.2016
Сообщений: 9,118
19.07.2017, 00:04 13
Цитата Сообщение от mobile Посмотреть сообщение
Это не глюк, это фича локализованной версии. Также как вместо Detail Область данных, а вместо Header или Footer Заголовок и Примечание.
Это названия объектов формы! - И если их не употреблять в коде - глюка не будет.
Формы! - это обращение к коллекции Forms! ...
И тут уже всё иначе ...

Добавлено через 6 минут
Цитата Сообщение от mobile Посмотреть сообщение
Но Вы все же не ответили чем событие Current лучше Load для данной задачи.
А чёрт его знает - я давал ссылу на док по событиям - это разрабу решать ...
0
Эксперт MS Access
26184 / 14015 / 3071
Регистрация: 28.04.2012
Сообщений: 15,394
19.07.2017, 00:38 14
Цитата Сообщение от Capi Посмотреть сообщение
Даже если форма без источника данных, событие OnCurrent возникает - однократно.
Не всегда. Если форма с источником и AllowAdditions=False и источник пустой (Where False), то OnCurrent не наступит
1
6130 / 3323 / 716
Регистрация: 05.10.2016
Сообщений: 9,118
19.07.2017, 00:40 15
Цитата Сообщение от mobile Посмотреть сообщение
Если форма с источником и AllowAdditions=False и источник пустой (Where False), то OnCurrent не наступит
Частный случай.
0
Эксперт MS Access
26184 / 14015 / 3071
Регистрация: 28.04.2012
Сообщений: 15,394
19.07.2017, 00:43 16
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Частный случай.
Да. Но как и любое исключение опровергает квантор всеобщности.
0
6130 / 3323 / 716
Регистрация: 05.10.2016
Сообщений: 9,118
19.07.2017, 00:51 17
Цитата Сообщение от mobile Посмотреть сообщение
Если форма с источником и AllowAdditions=False и источник пустой (Where False), то OnCurrent не наступит
Ленточная форма (на вскидку - первая попавшееся)
AllowAdditions=False
и источник пустой
Visual Basic
1
2
3
Private Sub Form_Current()
    MsgBox Me.RecordSource & " - нету!"
End Sub
Событие возникает ...
0
Эксперт MS Access
26184 / 14015 / 3071
Регистрация: 28.04.2012
Сообщений: 15,394
19.07.2017, 01:02 18
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Событие возникает ...
Не вижу такого. Вот пример
0
Вложения
Тип файла: rar EmptySource.rar (14.5 Кб, 8 просмотров)
6130 / 3323 / 716
Регистрация: 05.10.2016
Сообщений: 9,118
19.07.2017, 01:11 19
Цитата Сообщение от mobile Посмотреть сообщение
Не вижу такого. Вот пример
И в споре иногда рождается истина...
Спасибо - ща гляну!
(Аж стало интересно)

Добавлено через 4 минуты
Цитата Сообщение от mobile Посмотреть сообщение
Вот пример
Подвох!
Там RecordSource = "SELECT * FROM Города WHERE False;"
Если убрать его = Отрабатывает!
Мы так не договаривались ...
0
Эксперт MS Access
26184 / 14015 / 3071
Регистрация: 28.04.2012
Сообщений: 15,394
19.07.2017, 01:13 20
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Подвох!
Там RecordSource = "SELECT * FROM Города WHERE False;"
Я именно этот случай и упоминал как исключение
Цитата Сообщение от mobile Посмотреть сообщение
Если форма с источником и AllowAdditions=False и источник пустой (Where False), то OnCurrent не наступит
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2017, 01:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Передача переменной из одной формы в другую
Объясните пожалуйста: 1. Куда вставлять (1)? 2. Куда вставлять (2)? Покажите пожалуйста на...

Передача переменной из одной формы в другую
Здравствуйте. Подскажите пожалуйста как передать значение переменных из Form1 в Form2, чтобы...

Передача переменной из одной формы в другую
Есть сервер-распределитель, на нем хранятся данные о серверах вычислителях (порт и IP), с "Клиент"...

Передача переменной из одной формы в другую
Здравствуйте! Подскажите как правильно передавать переменную из одной формы в другую


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.