powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает ссылка на подчиненную форму
24 сообщений из 24, страница 1 из 1
Не работает ссылка на подчиненную форму
    #39730863
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, есть подчиненные формы на разных вкладках главной формы.
На первой вкладке в main-ПФ1 выводится реестр данных, на второй вкладке в main-ПФ2-ППФ3 выводится этот же реестр, другие поля.
ПФ1 и ППФ3 на одном запросе, различается состав выводимых полей.
Нужно синхронизировать текущие записи ПФ1 при переходе в ППФ2 и наоборот.
На событии текущая запись ПФ1 пишу

Set frm = Forms![f_01main].Controls![f_03sample_res_list_2].Form.Controls![f_03sample_res_list_21].Form
strCriteria = "[ID_res] = " & res_connect
Set rst = frm.RecordsetClone
rst.FindFirst strCriteria
frm.Bookmark = rst.Bookmark

Пишет - не могу найти поле f_03sample_res_list_2
В чем ошибаюсь?

ПФ1 - f_03sample_res_list
ПФ2 - f_03sample_res_list_2
ППФ3 - f_03sample_res_list_21

Спасибо.
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730867
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имя контрола ПФ2 не совпадает с именем формы - fs_03sample_res_list_2
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730873
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал понять где ломается - вопрос в том, что ссылка на контрол подчиненной формы работает, а ссылка на саму подчиненную нет
II = Forms![f_01main].Controls![fs_03sample_res_list_2].Name - работает
II = Forms![f_01main].Controls![f_03sample_res_list_2].Form.Name - не работает
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730884
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730887
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, прочитал, но понятнее не стало. Собственно вопрос сводится к вот этому:

II = Forms![f_01main].Controls![fs_03sample_res_list_2].Name - работает
II = Forms![f_01main].Controls![f_03sample_res_list_2].Form.Name - не работает

Почему ссылка на контрол работает, а на саму форму в контроле не работает?
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730888
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал одинаковыми имя контрола и имя подформы ПФ2
- все заработало.
Почему так? Все же хотелось чтобы имена контрола и подформы были разными.
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730892
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банджо,

Имя контейнера для подчиненной и имя самой подчиненной - это разные вещи
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730893
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы .Name и .sourceObject не путаете?
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730902
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИгортанБанджо,
Имя контейнера для подчиненной и имя самой подчиненной - это разные вещиЭто ясно. Но если я делаю имена контейнера и ПФ одинаковыми, то оба этих теста (это просто тест на проверку работоспособности ссылки) работают
II = Forms![f_01main].Controls![fs_03sample_res_list_2].Name
II = Forms![f_01main].Controls![f_03sample_res_list_2].Form.Name

А если сделаю имена контейнера и ПФ разными
контейнер - fs_03sample_res_list_2
ПФ - f_03sample_res_list_2

то

II = Forms![f_01main].Controls![fs_03sample_res_list_2].Name - работает
II = Forms![f_01main].Controls![f_03sample_res_list_2].Form.Name - не работает

То есть не работает ссылка на подформу при разных именах, почему?
В чем ошибка?
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730905
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Соответственно не работает основной код
Set frm = Forms![f_01main].Controls![f_03sample_res_list_2].Form.Controls![f_03sample_res_list_21].Form
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730913
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Set frm = Forms![f_01main].Controls![fs_03sample_res_list_2].Controls![fs_03sample_res_list_21].Form

так работает - ссылка на контрол, но указание свойства формы
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730916
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банджо, подподформа находится в форме, которую засунули в контейнер-изначально её в главной форме нет.
можно попробовать её сначала объявить в подформе, а потом показать главной форме.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 'шапка формы ПФ2, которая подформа в главной форме
 public withevents formPP3 as form


Private sub Form_Load()
Set  formPP3 =Me.controls("[f_03sample_res_list_21").form
End sub

' теперь в главной форме должно сработать

Private withevents frm as form


Private sub Form_Load()
Set frm =Me.controls("f_03sample_res_list_2").Form.formPP3
End sub


p.s. не тестировал и идея с public формой как-то не нравится, но может и взлетит... по крайней мере идея здравая :)

конечно лучше работать с модулями класса-объявлять их из модуля главной формы
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730937
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банджо,

Код: vbnet
1.
2.
3.
4.
5.
    If NameActFrm <> "SettingAll" Then
        Forms(NameActFrm).sub_form.Form.MyClsSub.CmdAddLine
    Else
        Call Forms(NameActFrm).CmdAddLine
    End If


где
NameActFrm - имя главной
sub_form - имя контейнера подч формы
Form - обращение к форме в контейнере. И даже не по имени.

другая форма обращения
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Set MyActiveForm = Forms(NameActFrm)
'
With MyActiveForm.Form
    If NameActFrm <> "SettingAll" Then
        !sub_form.Form.MyClsSub.setFilterOn = False
        !sub_form.Form.MyClsSub.myWhere (0)
    Else
        .Form.ShowAll
    End If
End With



Это из рабочего проекта
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39730942
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все заработало
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39740774
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, чтобы не создавать новую тему спрошу здесь
Аксесс 2003, обычная запись

Set dbs = CurrentDb()
strSQL = "SELECT * FROM [t_01res_org]"
Set rst = dbs.OpenRecordset(strSQL)

Аксеес 2016 - не работает, пишет Type mismatch.
Что поправить?
Спасибо.
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39740781
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банджо,
в 2016 библиотека ADO вероятно подключена-проверить в референсах, можно попробовать так (если подключены обе)
Код: vbnet
1.
2.
3.
Dim rst as DAO.Recordset
strSQL = "SELECT * FROM t_01res_org;"
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39740789
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko, но ведь потом в 2003 это не будет работать?
Где там эти референсы, давно я не делал этого.. поищу. Может лучше просто отключить библиотеки?
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39740792
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так, что-то не понял а где у меня ; в конце строки потерялась.. и почему тогда без нее в 2003 все работает
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39740796
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 2003 -м DAO, в 2016 -ADO поддержка DAO есть, нужно указать что это DAO рекордсет (либо поднять библиотеку DAO выше в референсах)-либо откомпилировать.
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39740831
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko, откомпилировать не очень гуд. Значит код поправлю. Хорошо, спасибо.
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39740963
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может я чё не понимаю-почему нельзя обратиться к элементу управления по его Index
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39746967
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтобы не плодить темы - аксесс 2016, везде работает, на одной машине не работает код. Исходно окно базы данных скрыто - как его отобразить? В 2003 просто - отобразить скрытое окно и все, здесь все перерыл, не нахожу. Сорри за такой вопрос. Спасибо.
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39747017
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про 16 не знаю а в 7 (есть область переходов вместо окна БД) кнопка Офис-параметры-текущая база-переходы-флажок на области переходов
...
Рейтинг: 0 / 0
Не работает ссылка на подчиненную форму
    #39747029
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банджо,

F11.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает ссылка на подчиненную форму
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]