Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Надо задать значения из главной формы определенным полям подчиненной. / 16 сообщений из 16, страница 1 из 1
28.07.2016, 16:39
    #39282064
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
Приветствую Всех! Подсобите кодом!
Есть главная форма с полями "параметр1" и "параметр2", есть ранее заполненная подчиненная форма. Требуется в одноименные поля подчиненной задать значения из главной. Как составить код на это действие? Желательно конкретно, я только учусь.
...
Рейтинг: 0 / 0
28.07.2016, 22:10
    #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
28.07.2016, 23:04
    #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
29.07.2016, 09:47
    #39282427
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
__Michelle, не хочет работать )).
Я собрал свою комбинированную конструкцию на это действие из макроса и модулей, вроде работает.
...
Рейтинг: 0 / 0
29.07.2016, 09:50
    #39282431
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
wladimirrr,

Библиотеку DAO нужно подключить.
...
Рейтинг: 0 / 0
29.07.2016, 09:54
    #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
29.07.2016, 10:30
    #39282485
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
__Michelle, как это сделать?
...
Рейтинг: 0 / 0
29.07.2016, 11:03
    #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
29.07.2016, 11:16
    #39282544
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
Код: vbnet
1.
.Fields(Me.ActiveControl.Name) = Me.ActiveControl


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


__Michelle, я бы не стал так привязываться к имени. Например, у меня никогда не совпадают имена контролов и их источниками данных. Лучше запрашивать ControlSource .А это как раз условие ТСавтор...Требуется в одноименные поля подчиненной задать значения из главной....А значение там, возможно, свободное.
...
Рейтинг: 0 / 0
29.07.2016, 11:30
    #39282565
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
Злые вы!
:)
...
Рейтинг: 0 / 0
29.07.2016, 14:52
    #39282821
wladimirrr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
Анатолий ( Киев ),
Ваш вариант работает отлично. Спасибо!
...
Рейтинг: 0 / 0
29.07.2016, 14:59
    #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
29.07.2016, 15:12
    #39282848
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
А куда функцию поместили? Нужно в модуль основной формы.
Почему же в варианте 19470990 , где точно так же фигурирует Me, "все работает отлично"?
А здесь почему-то не понимает? Не задавались вопросом?
Может, русскими буквами набрали?
...
Рейтинг: 0 / 0
29.07.2016, 15:21
    #39282857
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Надо задать значения из главной формы определенным полям подчиненной.
Сделала пример. Все прекрасно работает.
Что Вы не так делаете, сказать невозможно.

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


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