![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.11.2011
Сообщений: 67
|
![]()
Что нужно написать в свойстве подчиненая форма "объект-источник", чтобы при изменении данных в поле основной формы "пол" М или Ж подставлялась соответствующая им подчиненная форма М или Ж. Поле ФИО1 служит для поиска записей в форме
Foto.jpg Заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 30.03.2010
Сообщений: 153
|
![]()
При изменении данных в поле основной формы "пол" М или Ж программно меняйте объект-источник контрола подчиненная форма.
Me!КонтролПодчиненнаяФорма.SourceOb ject = "М" или Me!КонтролПодчиненнаяФорма.SourceOb ject = "Ж" где М и Ж имена форм. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.11.2011
Сообщений: 67
|
![]()
Извените, я не прграммист и ничего не понял, какую сделать запись в поле "объект-источник"? Нужно чтобы при поиске в основной "форма1" менялась подчиненная форма в зависимости от записи в поле "пол". Форма1 сделана на основе таблица1, ПодчиненаяФорма_Ж на основе таблица2, ПодчиненаяФорма_М на основе таблица3, Таблица1 связана отношением "1 ко многим" и с таблица2 и таблица3
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 30.03.2010
Сообщений: 153
|
![]()
raytek, если форма1 у Вас служит для ввода новых данных, то на событие после обновления поля Пол можно написать так:
Код:
P.S. А может Вам попробовать элемент управления Вкладки? |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 07.11.2011
Сообщений: 67
|
![]()
Спасибо, попробую. Я привел простой пример, а задача у меня гораздо сложней, в форме1 уже куча вкладок и форма предназначена для просмотра энергетического оборудования с совершенно разными свойствами, не совместимыми в одной таблице....
Подождите, а что написать в поле "объект-источник" подчиненной формы? Последний раз редактировалось raytek; 09.11.2011 в 22:22. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 09.11.2011
Сообщений: 5
|
![]()
В этом поле подчиненной формы уже прописан объект-источник, - таблица, с которой связана данная форма. Не путайте контрол основной формы, в который вложена субформа, с самой этой субформой. У контрола "объект-источник" - субформа, а у субформы - таблица. Однако все равно, не уверен, что у вас что-н получится, так как, насколько я понимаю (тоже не программер), аксесс в принципе не умеет в рантайме удалять и добавлять контролы в форму. Здесь правда не совсем контролы, а их содержание ..., не пробовал ... В общем, имейте ввиду ...
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 30.03.2010
Сообщений: 153
|
![]()
Если форма для просмотра, то можно ничего не писать, просто на событие формы форма1 "Текущая запись" подвесьте приведённый выше код. При переходе по записям будет определяться значение поля Пол и в контрол субформа будет подставляться нужная форма.
Последний раз редактировалось Woodlin; 10.11.2011 в 07:20. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 07.11.2011
Сообщений: 67
|
![]()
Все получилось! Ваш код вставил только в Форма1 Текущая запись, строку объект-источник оставил пустой, но есть еще одна проблема. В реальном проекте болше двух подчиненых форм и я попробовал подкоректировать ваш код пока для 3х:
Это рабочий код для 2х подформ: Код: Private Sub Form_Current() IF Me!Пол = "М" THEN Me!ПодчиненнаяФорма.SourceObject = "ПодчиненнаяФорма_М" ELSE Me!ПодчиненнаяФорма.SourceObject = "ПодчиненнаяФорма_Ж" END IF End Sub Это подкоректированный для 3х подформ: Private Sub Form_Current() If Me!Пол = "М" Then Me!ПодчиненнаяФорма.SourceObject = "ПодчиненнаяФорма_М" If Me!Пол = "Д" Then Me!ПодчиненнаяФорма.SourceObject = "ПодчиненнаяФорма_Д" Else Me!ПодчиненнаяФорма.SourceObject = "ПодчиненнаяФорма_Ж" End If End Sub но Access ругается: Compile error: Block If without And If помогите исправить ошибку, нужен код для любого числа подформ Заранее спасибо! |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 12.08.2010
Сообщений: 1,079
|
![]() Код:
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 30.03.2010
Сообщений: 153
|
![]()
raytek, попробуйте Select Case. Я сам его использовал для числовых значений, но судя по справке для строковых тоже должно подойти.
Пример взят со справочного сайта: Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ПЕрвая форма, кликая по кнопке, другая форма | Nadej | C++ Builder | 0 | 02.10.2011 17:58 |
Форма | tgm | Microsoft Office Excel | 6 | 21.01.2011 10:39 |
форма | Милана666 | Общие вопросы Delphi | 2 | 03.06.2010 20:34 |
Изменяемая таблица | Helennna | Microsoft Office Excel | 1 | 05.01.2010 01:26 |
Изменяемая дата в формуле | Алексей_Баженов | Microsoft Office Excel | 5 | 03.04.2008 11:10 |