powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Надо задать значения из главной формы определенным полям подчиненной.
16 сообщений из 16, страница 1 из 1
Надо задать значения из главной формы определенным полям подчиненной.
    #39282064
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую Всех! Подсобите кодом!
Есть главная форма с полями "параметр1" и "параметр2", есть ранее заполненная подчиненная форма. Требуется в одноименные поля подчиненной задать значения из главной. Как составить код на это действие? Желательно конкретно, я только учусь.
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282275
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
структуру кода я представляю так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Кнопка25_Click()
DoCmd.GoToControl "подчформа2"
DoCmd.GoToRecord , , acFirst
'задать значение полю подчформы2 параметр1 значение поля параметр1 главной формы
'проверить запись последняя или нет
'если не последняя, то
DoCmd.GoToRecord , , acNext
'задать значение полю подчформы2 параметр1 значение поля параметр1 главной формы
'если последняя, то остановиться
End Sub



Помогите написать, то, что закоментировано.
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282288
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Для копируемых контролов основной формы
в окне свойств на вкладке События для После обновления задать =Func_AfterUpdate().
2. В модуле основной формы разместить функцию Func_AfterUpdate
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Function Func_AfterUpdate()
 Dim Rst As DAO.Recordset
 Set Rst = подчформа2.Form.RecordsetClone
 With Rst
  Do Until .EOF
   .Edit
   .Fields(Screen.ActiveControl.Name) = Screen.ActiveControl
   .Update
   .MoveNext
  Loop
  .Close
 End With
 Set Rst = Nothing
End Function
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282427
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle, не хочет работать )).
Я собрал свою комбинированную конструкцию на это действие из макроса и модулей, вроде работает.
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282431
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr,

Библиотеку DAO нужно подключить.
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282436
Я бы на главной форме добавил кнопку, на Click которой повесил такой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
With Me![Имя субформы].Form.RecordsetClone
  If .RecordCount = 0 Then Exit Sub
    .MoveFirst
  Do Until .EOF
   .Edit
   ![параметр1] = Me![параметр1]
   ![параметр2] = Me![параметр2]
   .Update
   .MoveNext
  Loop
End With



PS. Michelle, у формы тоже есть свойство ActiveControl. Это надежнее, чем Screen.ActiveControl. Если не ошибаюсь, последний не видит всплывающие и диалоговые формы.
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282485
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle, как это сделать?
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282525
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr__Michelle, как это сделать?Ссылки подключаются так:
В редакторе VBA выбирается пункт меню Tools -> References ->
дальше в открывшемся списке найти Microsoft DAO <номер версии> Object Library
поставить галку и нажать OK.

Но в данном случае, как верно напомнил Анатолий ( Киев ), это даже не обязательно.
Вместо объявления Rst надо просто использовать With Me![Имя субформы].Form.RecordsetClone,
и DAO-библиотека не потребуется.
Теперь, с учетом также уточнения Анатолий ( Киев ) по поводу ActiveControl,
функция выглядит так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function Func_AfterUpdate()
 With Внедренный0.Form.RecordsetClone
  .MoveFirst
  Do Until .EOF
   .Edit
   .Fields(Me.ActiveControl.Name) = Me.ActiveControl
   .Update
   .MoveNext
  Loop
 End With
End Function
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282544
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
.Fields(Me.ActiveControl.Name) = Me.ActiveControl


__Michelle, я бы не стал так привязываться к имени. Например, у меня никогда не совпадают имена контролов и их источниками данных. Лучше запрашивать ControlSource .
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282553
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
Код: vbnet
1.
.Fields(Me.ActiveControl.Name) = Me.ActiveControl


__Michelle, я бы не стал так привязываться к имени. Например, у меня никогда не совпадают имена контролов и их источниками данных. Лучше запрашивать ControlSource .А это как раз условие ТСавтор...Требуется в одноименные поля подчиненной задать значения из главной....А значение там, возможно, свободное.
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282565
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злые вы!
:)
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282821
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ),
Ваш вариант работает отлично. Спасибо!
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282830
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michellewladimirrr__Michelle, как это сделать?Ссылки подключаются так:
В редакторе VBA выбирается пункт меню Tools -> References ->
дальше в открывшемся списке найти Microsoft DAO <номер версии> Object Library
поставить галку и нажать OK.

Но в данном случае, как верно напомнил Анатолий ( Киев ), это даже не обязательно.
Вместо объявления Rst надо просто использовать With Me![Имя субформы].Form.RecordsetClone,
и DAO-библиотека не потребуется.
Теперь, с учетом также уточнения Анатолий ( Киев ) по поводу ActiveControl,
функция выглядит так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function Func_AfterUpdate()
 With Внедренный0.Form.RecordsetClone
  .MoveFirst
  Do Until .EOF
   .Edit
   .Fields(Me.ActiveControl.Name) = Me.ActiveControl
   .Update
   .MoveNext
  Loop
 End With
End Function



Выдает ошибку:
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282848
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А куда функцию поместили? Нужно в модуль основной формы.
Почему же в варианте 19470990 , где точно так же фигурирует Me, "все работает отлично"?
А здесь почему-то не понимает? Не задавались вопросом?
Может, русскими буквами набрали?
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282857
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделала пример. Все прекрасно работает.
Что Вы не так делаете, сказать невозможно.

Как вызывается функция?
Нужно на событие После изменения соответствующих контролов основной формы.
Ну, все это уже было написано в 19470968 .
...
Рейтинг: 0 / 0
Надо задать значения из главной формы определенным полям подчиненной.
    #39282948
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle, да, не туда функцию поставил)). Теперь все работает, большое спасибо!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Надо задать значения из главной формы определенным полям подчиненной.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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