Консультация № 72648
25.01.2007, 20:53
0.00 руб.
0 1 1
Уважаемые эксперты!
Есть вопрос. Access 2000 Windows 2000 Prof
Как мне записать данные из rs (recordset) в строки подчиненной формы? Как обратиться непосредственно к строке, новая строка... Программно из модуля?
Не записывая предварительно в таблицу (источник данных подчиненной формы) так как при закрытии формы производятся расчеты и запись.

Форма: документ Акт технического обслуживания
Подчиненная форма DetLavoriTec со строками работы, запчасти, расходные материалы.
Источник данных таблица M_Ctmov
Поля: код_док, дата_док, код_строки
аппарат, код_артикула, описание, ед_изм, цена.......
как в обычной фактуре сроки с деталями.

Для автоматизации ввода групп строк, которые повторяются часто в документах , например замена фильтра: работа техника, запчасть фильтр, смена химреактивов, сами реактивы, проведение анализа воды.
Ввожу код технического обслуживания ЗФ (замена фильтра) в шапке документа элемент ЗФ с событием клик связываю функцию, которая выбирает из таблицы все строки с работами и запчастями для заданного в шапке аппарата и кода обслуживания и открываю rs (recordset) .

Как мне записать данные из rs (recordset) в строки подчиненной формы?

Обсуждение

Неизвестный
27.01.2007, 02:14
общий
это ответ
Здравствуйте, Natali!
DoCmd.GoToRecord , , acNewRec
Поле1ПФ` = rs(0)
Поле2ПФ` = rs(1)
........
‘ сохранить можно так
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Но использовать такой метод если рекордсет содержит более одной записи неудобно.
Свяжите подчиненную форму с временной таблицей, при выборе управляющего элемента выполните запрос :
Dim rs As ADODB.Recordset
Dim sSql As String
Set cnCurrent = CurrentProject.Connection

sSql="INSERT INTO TempTbl (Field) SELECT DISTINCT SourceTbl.Field " & _
"FROM SourceTbl WHERE SourceTbl.FieldKey=" & ParentKey
cnCurrent.Execute sSql
Set rs = Nothing
cnCurrent.Close
Set cnCurrent = Nothing
‘ ParentKey ключ управляющего контола, если это текст то так =‘" & ParentKey & "‘"
и обновите (Requery) подчиненный запрос
по окончании обработки данных, "сливаете" их в рабочую таблицу и очищаете временную.
Так гораздо удобнее
Удачи.
Евгений
Форма ответа