Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/32: Рейтинг темы: голосов - 32, средняя оценка - 4.91
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте, обитатели форума !

Подскажите светлую мысль, как в VBA по событию текущей формы программно назначить или изменить подчиненную ей форму (с назначением связанных полей, соответственно)?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.03.2013, 15:32
Ответы с готовыми решениями:

Динамическая установка размеров формы
Не пойму что делаю не так.Начальные размеры формы 300x300. private void button1_Click(object sender, EventArgs e) { ...

Программная установка расширений для браузеров
Доброго времени суток! Заранее скажу, что перед тем как спрашивать на форуме, устроил dos атаку на поисковики:) У меня возникла...

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

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

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

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

Me.F_Company_sub.LinkChildFields = "TextBoxName"

Подскажите пож., как с этим работать... А то я что-то обрадовался, что нашел нужный способ.. а сделать с ним ничего не вышло.
0
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.03.2013, 19:28  [ТС]
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Kontugenyi Посмотреть сообщение
А расскажите поподробнее как сделать так, чтобы поля основной формы обновлялись в зависимости от выбранной записи подчиненной формы.
Чтобы обойти тонкости формулировок БД и добиться максимально синхронного понимания предмета разговора предлагаю рассмотреть некую область действительности, которую при необходимости можно смасштабировать или перенести на другую область окружающего мира: итак, если есть территория РФ с неким правовым пространством -> далее, в рамках этого пространства (на уровне ниже) создаются или уже существуют предприятия (ООО, ОАО и т.д.) с определенными атрибутами и собственной структурой (tblПредприятие) -> далее, на уровень ниже, на предприятии создаются, перемещаются, продаются продукты труда (услуги, товары, объекты, опять же со своими атрибутами) (tblОбъекты) -> далее, на предприятии формируются, перемещаются и удаляются некие документы (tblДокументы) ->... ну и так далее до нужно степени деталировки. Теперь смоделируем себе, что все изменения с участием перечисленных элементов происходят в результате неких событий (tblСобытие). У этих событий есть атрибуты: наименование события, его описание, дата и т.д. Таблица tblСобытие будет связующей для всех остальных таблиц отношением (объекты)один-ко-многим(события). То есть на предприятии можем создавать (может происходить) множество событий (создавая записи в таблице tblСобытие), в результате которого создаются документы (tblДокументы) и некие объекты производства (tblОбъекты) и т.д: События оказываются подчинены (дочерние объекты) к конкретному предприятию (родительский объект), объекты производства, документы (дочерние объекты) будут привязаны к данному событию (ну и разумеется к этому родительскому предприятию).
Примерную структуру БД выкладываю. Если речь об этом, то коды VBA и организацию форм распишу. Если есть неточности формулировок БД - специалисты, подправьте меня.
Миниатюры
Динамическая программная установка подчиненной формы для данной  
0
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
17.03.2013, 23:12  [ТС]
mobile, а существуют ли иные (командные) способы установки связи между полями таблиц БД, кроме как перетаскивание их мышью из таблицы в таблицу в окне схемы данных - т.е. во время выполнения ?
0
 Аватар для Андрэич
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
17.03.2013, 23:19
Цитата Сообщение от Bars4 Посмотреть сообщение
mobile, а существуют ли иные (командные) способы установки связи между полями таблиц БД, кроме как перетаскивание их мышью из таблицы в таблицу в окне схемы данных - т.е. во время выполнения ?
Программные способы?
Можно непосредственно SQL, можно кодом VBA (но и в первом случае без последнего не обойтись)
1
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.03.2013, 23:43
Цитата Сообщение от Bars4 Посмотреть сообщение
mobile, а существуют ли иные (командные) способы установки связи между полями таблиц БД, кроме как перетаскивание их мышью из таблицы в таблицу в окне схемы данных - т.е. во время выполнения ?
Да, есть. Смотрите в хелпе предложение CONSTRAINT для инструкций ALTER TABLE и CREATE TABLE. Можно создать управляющий запрос с ними и задать в нем все необходимые свойства и связи. А в сочетании с CHECK можно добиться и нетривиальных результатов, ищите, например, "триггер Бенедикта" в инете. Здесь запрещены ссылки на иные форумы, поэтому прямую ссылку дать не могу.
1
10 / 0 / 2
Регистрация: 29.01.2013
Сообщений: 85
18.03.2013, 21:40
Цитата Сообщение от Bars4 Посмотреть сообщение
Чтобы обойти тонкости формулировок БД и добиться максимально синхронного понимания предмета разговора....
Мне кажется у меня все должно быть проще. Есть таблица tblCompany, которая содержит поля ИНН, форма собственности, краткое наименование и полное наименование. Страница разделена на 2 части: нижняя содержит подчиненную форму в режиме таблицы со списком записей (список компаний), верхняя содержит элементы управления textbox. TextBox'ы верхней части соответствуют выбранным записям подчиненной формы. Т.е. при перемещении по записям подчиненной формы меняются соответствующие значения textbox в верхней части.

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

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

Пример формы в приложении.
Миниатюры
Динамическая программная установка подчиненной формы для данной  
0
68 / 8 / 1
Регистрация: 14.03.2013
Сообщений: 116
18.03.2013, 22:36  [ТС]
Цитата Сообщение от Kontugenyi Посмотреть сообщение
Страница разделена на 2 части: нижняя содержит подчиненную форму в режиме таблицы
"Страница разделена" - подразумевал форма разделена ?
Если нижняя часть содержит подчиненную форму, то на ней я не смог обнаружить родительскую. Она существует ?
Почему нельзя просто на основе tblТаблица создать разделенную frmФорма (собственно у тебя это и сделано), а затем скрыть столбцы, отображение которых не требуется. Элементы управления остаются. Кодируй их на VBA как требуется.
Или я что-то неправильно понял ?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.03.2013, 22:36
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru