Форум программистов, компьютерный форум, киберфорум
Наши страницы

MS Access

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 5.00
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
#1

Динамическая программная установка подчиненной формы для данной - MS Access

14.03.2013, 15:32. Просмотров 3410. Ответов 13
Метки нет (Все метки)

Здравствуйте, обитатели форума !

Подскажите светлую мысль, как в VBA по событию текущей формы программно назначить или изменить подчиненную ей форму (с назначением связанных полей, соответственно)?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 15:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамическая программная установка подчиненной формы для данной (MS Access):

Сумма из подчиненной формы, отмена записей в подчиненной форме - MS Access
Нужна сразу помощь по четырем пунктам, форма КвитанцияСкупкиОбмена надо: 1. Суммирование поля Сумма в подчиненной форме с занесением в...

Выборка в подчиненной форме 2 из формы 2 по выбранному значению в подчиненной форме 1 из формы 1 - MS Access
Добрый день! Есть 2 формы(на первой форме находится "подчиненная форма 1", на второй "подчиненная форма 2") В "подчиненной форме 1"...

Обновление поля подчиненной формы по обновлению поля другой подчиненной формы - MS Access
Доброго времени суток. Прошу помощи, запутался. Существует главная форма (допустим frmMain) На форме frmMain размещено 2 подчиненные...

Кнопки для подчиненной формы - MS Access
Есть нетабличная форма1, на которой находиться подчиненная табличная форма2. Как сделать, чтобы при нажатии например на кнопку 'Добавить',...

Фильтр для подчиненной формы - MS Access
Всем доброго и удачного дня!!! У меня вскочил вопрос. Как в основной форме - Ученики , при обновлении ПоляСоСписком - ПоискУченика ,...

Фильтр для подчиненной формы - MS Access
Добрый день. Пытаюсь создать фильтр для суб формы. Не получается. (( в БД Форма "Изменить параметры центр оплаты" используемая...

13
mobile
21514 / 12123 / 2400
Регистрация: 28.04.2012
Сообщений: 13,342
14.03.2013, 16:19 #2
У контрола главной формы, содержащего подформу, можно изменить объект-источник:
Visual Basic
1
Me.КонтролКонтейнерСубформы.SourceObject="ИмяФормы"
У самой подформы можно изменить источник данных:
Visual Basic
1
Me.КонтролКонтейнерСубформы.Form.RecordSource="ИмяТаблицы/запросаИлиSQL-выражениеЗапроса"
Можно задать поля связи LinkMasterFields и LinkChildFields
Visual Basic
1
2
Me.КонтролКонтейнерСубформы.LinkMasterFields="ИмяПоляГлавнойФормы"
Me.КонтролКонтейнерСубформы.LinkChildFields="ИмяПоляПодформы"
Или вы не о том спрашиваете?
1
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
14.03.2013, 16:42  [ТС] #3
Об этом.
Светлая голова. Спасибо.
Т.е пользуясь таким методом и с привлечением пары раскрывающихся списков с таблицами и их полями можно динамически мастерить структуру базы во время выполнения кода ?
0
mobile
21514 / 12123 / 2400
Регистрация: 28.04.2012
Сообщений: 13,342
14.03.2013, 16:54 #4
Цитата Сообщение от Bars4 Посмотреть сообщение
Т.е пользуясь таким методом и с привлечением пары раскрывающихся списков с таблицами и их полями можно динамически мастерить структуру базы во время выполнения кода ?
Не "структуру базы", а интерфейс формы. Под структурой БД обычно понимается набор таблиц/полей, их свойств и связей между ними.

А интерфейс формы, да можно менять динамически в достаточно широких пределах. Правда создавать новые контролы или удалять имеющиеся можно только в режиме конструктора, но тоже программно.
А менять источники данных форм и контролов можно сколь угодно часто. Лишь бы интерфейс соотвествовал "бизнес-требованиям"
1
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
14.03.2013, 17:01  [ТС] #5
Цитата Сообщение от mobile Посмотреть сообщение
Можно задать поля связи LinkMasterFields и LinkChildFields
Visual Basic
1
2
Me.КонтролКонтейнерСубформы.LinkMasterFields="ИмяПоляГлавнойФормы"
Me.КонтролКонтейнерСубформы.LinkChildFields="ИмяПоляПодформы"
Не влияет ли это на часть структуры БД - связи (пусть даже без контроля целостности данных) ?
0
mobile
21514 / 12123 / 2400
Регистрация: 28.04.2012
Сообщений: 13,342
14.03.2013, 17:29 #6
Свойства Основные поля/Подчиненные поля создают интерфейс, который, по идее, должен отражать структуру БД. Например, главная форма на основе таблицы заказов, а подчиненная на основе таблицы товаров в заказе. Тогда связь по номеру заказа в Основных/Подчиненных полях создаст удобный и непротиворечивый интерфейс. Но, если перепутать поля, то конечно, можно создать ошибочную ситуацию (например, в одном линковых полей написать КодТовара и связь будет КодЗаказа=КодТовара !!!). Но и тогда ошибки будут ошибками данных, а не структуры данных. Эти свойства никак не связаны со структурой в том смысле, что они могут как-то ее изменить. Таблицы, поля, связи остаются прежними.
1
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
14.03.2013, 17:37  [ТС] #7
Т.е. речь идет о структуре представления данных. Уловил.
Спасибо.
0
Kontugenyi
10 / 0 / 1
Регистрация: 29.01.2013
Сообщений: 75
17.03.2013, 11:37 #8
А расскажите поподробнее как сделать так, чтобы поля основной формы обновлялись в зависимости от выбранной записи подчиненной формы. Т.е. в подчиненной форме отображаются все данные в режиме таблицы, в основной форме поля только для одной записи вынесены в textbox (предполагается возможность редактировать) и должны обновляться в зависимости от выбранной записи подчиненной формы.

F_Company - основная форма, F_Company_sub - подчиненная. TextBoxName - поле основной формы, NameShort - поле подчиненной формы.

Me.F_Company_sub.LinkChildFields = "TextBoxName"

Подскажите пож., как с этим работать... А то я что-то обрадовался, что нашел нужный способ.. а сделать с ним ничего не вышло.
0
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.03.2013, 19:28  [ТС] #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Kontugenyi Посмотреть сообщение
А расскажите поподробнее как сделать так, чтобы поля основной формы обновлялись в зависимости от выбранной записи подчиненной формы.
Чтобы обойти тонкости формулировок БД и добиться максимально синхронного понимания предмета разговора предлагаю рассмотреть некую область действительности, которую при необходимости можно смасштабировать или перенести на другую область окружающего мира: итак, если есть территория РФ с неким правовым пространством -> далее, в рамках этого пространства (на уровне ниже) создаются или уже существуют предприятия (ООО, ОАО и т.д.) с определенными атрибутами и собственной структурой (tblПредприятие) -> далее, на уровень ниже, на предприятии создаются, перемещаются, продаются продукты труда (услуги, товары, объекты, опять же со своими атрибутами) (tblОбъекты) -> далее, на предприятии формируются, перемещаются и удаляются некие документы (tblДокументы) ->... ну и так далее до нужно степени деталировки. Теперь смоделируем себе, что все изменения с участием перечисленных элементов происходят в результате неких событий (tblСобытие). У этих событий есть атрибуты: наименование события, его описание, дата и т.д. Таблица tblСобытие будет связующей для всех остальных таблиц отношением (объекты)один-ко-многим(события). То есть на предприятии можем создавать (может происходить) множество событий (создавая записи в таблице tblСобытие), в результате которого создаются документы (tblДокументы) и некие объекты производства (tblОбъекты) и т.д: События оказываются подчинены (дочерние объекты) к конкретному предприятию (родительский объект), объекты производства, документы (дочерние объекты) будут привязаны к данному событию (ну и разумеется к этому родительскому предприятию).
Примерную структуру БД выкладываю. Если речь об этом, то коды VBA и организацию форм распишу. Если есть неточности формулировок БД - специалисты, подправьте меня.
0
Миниатюры
Динамическая программная установка подчиненной формы для данной  
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.03.2013, 23:12  [ТС] #10
mobile, а существуют ли иные (командные) способы установки связи между полями таблиц БД, кроме как перетаскивание их мышью из таблицы в таблицу в окне схемы данных - т.е. во время выполнения ?
0
Андрэич
2835 / 767 / 40
Регистрация: 20.05.2012
Сообщений: 2,052
17.03.2013, 23:19 #11
Цитата Сообщение от Bars4 Посмотреть сообщение
mobile, а существуют ли иные (командные) способы установки связи между полями таблиц БД, кроме как перетаскивание их мышью из таблицы в таблицу в окне схемы данных - т.е. во время выполнения ?
Программные способы?
Можно непосредственно SQL, можно кодом VBA (но и в первом случае без последнего не обойтись)
1
mobile
21514 / 12123 / 2400
Регистрация: 28.04.2012
Сообщений: 13,342
17.03.2013, 23:43 #12
Цитата Сообщение от Bars4 Посмотреть сообщение
mobile, а существуют ли иные (командные) способы установки связи между полями таблиц БД, кроме как перетаскивание их мышью из таблицы в таблицу в окне схемы данных - т.е. во время выполнения ?
Да, есть. Смотрите в хелпе предложение CONSTRAINT для инструкций ALTER TABLE и CREATE TABLE. Можно создать управляющий запрос с ними и задать в нем все необходимые свойства и связи. А в сочетании с CHECK можно добиться и нетривиальных результатов, ищите, например, "триггер Бенедикта" в инете. Здесь запрещены ссылки на иные форумы, поэтому прямую ссылку дать не могу.
1
Kontugenyi
10 / 0 / 1
Регистрация: 29.01.2013
Сообщений: 75
18.03.2013, 21:40 #13
Цитата Сообщение от Bars4 Посмотреть сообщение
Чтобы обойти тонкости формулировок БД и добиться максимально синхронного понимания предмета разговора....
Мне кажется у меня все должно быть проще. Есть таблица tblCompany, которая содержит поля ИНН, форма собственности, краткое наименование и полное наименование. Страница разделена на 2 части: нижняя содержит подчиненную форму в режиме таблицы со списком записей (список компаний), верхняя содержит элементы управления textbox. TextBox'ы верхней части соответствуют выбранным записям подчиненной формы. Т.е. при перемещении по записям подчиненной формы меняются соответствующие значения textbox в верхней части.

Планировалось, что в обычном состоянии в верхней части textBox'ы заблокированы для ввода данных (параметр доступ = false), но при нажатии соответствующей кнопки textBox'ы разблокируются позволяя внести изменения в данную запись через эти textbox'ы.

Идея в том, чтобы в подчиненной табличной форме отображались все организации, но не все параметры для каждой организации, а только основные, а уж в верхней части - полностью все параметры, которые при необходимости можно изменить.

Пример формы в приложении.
0
Миниатюры
Динамическая программная установка подчиненной формы для данной  
Bars4
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
18.03.2013, 22:36  [ТС] #14
Цитата Сообщение от Kontugenyi Посмотреть сообщение
Страница разделена на 2 части: нижняя содержит подчиненную форму в режиме таблицы
"Страница разделена" - подразумевал форма разделена ?
Если нижняя часть содержит подчиненную форму, то на ней я не смог обнаружить родительскую. Она существует ?
Почему нельзя просто на основе tblТаблица создать разделенную frmФорма (собственно у тебя это и сделано), а затем скрыть столбцы, отображение которых не требуется. Элементы управления остаются. Кодируй их на VBA как требуется.
Или я что-то неправильно понял ?
1
18.03.2013, 22:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2013, 22:36
Привет! Вот еще темы с ответами:

Объект-источник для подчиненной формы. - MS Access
День всем добрый, подскажите плз как програмно присвоить подчиненной форме SourseObject - таблицу? SubForm.SourseObject = FrmName...

Условие для запроса из подчиненной формы - MS Access
Подскажите какой синтаксис для условия отбора в запросе из поля со списком в подчиненной форме

Фильтр по списку для подчиненной формы - MS Access
Всем доброго времени суток! Очень нужна помощь. Есть форма "Оборудование". Пытаюсь сделать так, чтобы при нажатии на одно из значений...

Условие отбора для подчиненной формы - MS Access
Здравствуйте, помогите составить условие. Есть база, в ней есть форма (Художники), в ней есть подчиненная форма (Товары подчиненная форма),...


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

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

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