Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает ссылка на подчиненную форму / 24 сообщений из 24, страница 1 из 1
09.11.2018, 20:31
    #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
09.11.2018, 20:45
    #39730867
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Имя контрола ПФ2 не совпадает с именем формы - fs_03sample_res_list_2
...
Рейтинг: 0 / 0
09.11.2018, 20:57
    #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
09.11.2018, 21:20
    #39730884
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
...
Рейтинг: 0 / 0
09.11.2018, 21:37
    #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
09.11.2018, 21:53
    #39730888
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Сделал одинаковыми имя контрола и имя подформы ПФ2
- все заработало.
Почему так? Все же хотелось чтобы имена контрола и подформы были разными.
...
Рейтинг: 0 / 0
09.11.2018, 22:17
    #39730892
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Банджо,

Имя контейнера для подчиненной и имя самой подчиненной - это разные вещи
...
Рейтинг: 0 / 0
09.11.2018, 22:18
    #39730893
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Вы .Name и .sourceObject не путаете?
...
Рейтинг: 0 / 0
09.11.2018, 22:30
    #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
09.11.2018, 22:34
    #39730905
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Соответственно не работает основной код
Set frm = Forms![f_01main].Controls![f_03sample_res_list_2].Form.Controls![f_03sample_res_list_21].Form
...
Рейтинг: 0 / 0
09.11.2018, 23:08
    #39730913
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Set frm = Forms![f_01main].Controls![fs_03sample_res_list_2].Controls![fs_03sample_res_list_21].Form

так работает - ссылка на контрол, но указание свойства формы
...
Рейтинг: 0 / 0
09.11.2018, 23:18
    #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
09.11.2018, 23:49
    #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
09.11.2018, 23:54
    #39730942
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Спасибо, все заработало
...
Рейтинг: 0 / 0
30.11.2018, 12:00
    #39740774
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Добрый день, чтобы не создавать новую тему спрошу здесь
Аксесс 2003, обычная запись

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

Аксеес 2016 - не работает, пишет Type mismatch.
Что поправить?
Спасибо.
...
Рейтинг: 0 / 0
30.11.2018, 12:25
    #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
30.11.2018, 12:41
    #39740789
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
alecko, но ведь потом в 2003 это не будет работать?
Где там эти референсы, давно я не делал этого.. поищу. Может лучше просто отключить библиотеки?
...
Рейтинг: 0 / 0
30.11.2018, 12:45
    #39740792
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
так, что-то не понял а где у меня ; в конце строки потерялась.. и почему тогда без нее в 2003 все работает
...
Рейтинг: 0 / 0
30.11.2018, 12:49
    #39740796
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
В 2003 -м DAO, в 2016 -ADO поддержка DAO есть, нужно указать что это DAO рекордсет (либо поднять библиотеку DAO выше в референсах)-либо откомпилировать.
...
Рейтинг: 0 / 0
30.11.2018, 13:34
    #39740831
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
alecko, откомпилировать не очень гуд. Значит код поправлю. Хорошо, спасибо.
...
Рейтинг: 0 / 0
30.11.2018, 15:08
    #39740963
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
может я чё не понимаю-почему нельзя обратиться к элементу управления по его Index
...
Рейтинг: 0 / 0
12.12.2018, 21:50
    #39746967
Банджо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Чтобы не плодить темы - аксесс 2016, везде работает, на одной машине не работает код. Исходно окно базы данных скрыто - как его отобразить? В 2003 просто - отобразить скрытое окно и все, здесь все перерыл, не нахожу. Сорри за такой вопрос. Спасибо.
...
Рейтинг: 0 / 0
12.12.2018, 23:28
    #39747017
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
про 16 не знаю а в 7 (есть область переходов вместо окна БД) кнопка Офис-параметры-текущая база-переходы-флажок на области переходов
...
Рейтинг: 0 / 0
13.12.2018, 00:22
    #39747029
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает ссылка на подчиненную форму
Банджо,

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


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