_Промешан_ |
---|
Выдыхаю.
Коль скоро нет ответа на вопрос - как связать две подчиненные формы, подразумевая, что в них подгружаются формы динамически, то возникает другой вопрос.
Как скрывать/отображать/неиспользовать поля в ленточной форме?
Смысл: есть запрос в виде хранимки. Он выдает примерно одинаковые данные, за исключением некоторых полей (колонок). Идея использовать одну форму, в которой напихать по-максимуму всех полей, но скрывать те, которые не актуальны для запроса.
Пример.
Запрос 1
id | price | work | where | 1 | 22000 | копать | огород |
|
Запрос 2
id | price | work | how | 1 | 22000 | копать | лопатой |
|
На форму в ОбластьДанных напихать: id, price, work, where, how. И в зависимости от запроса - скрывать/показывать where и how в ленточном типе формы (т.к. она будет подчиненной и показывать все записи). |
если все поля одного типа (например все поля со списком, все просто поля), то можно для каждого поля подменять свойство "Данные". Для удобства имена полей в форме должны быть Field1 для поля, отражающего первый столбец, Field2 - второй и т.д.
Берем рекордсет, узнаем, сколько у него полей всего (в первом примере 3 поля, во втором 4)
Dim iCurrentField As Integer
Dim iLastField As Integer
iLastField = Me.Form.Recordset.Fields.Count
For iCurrentField = 1 To iLastField
Me.Controls("Field" & iCurrentField).ControlSource = Me.Form.Recordset.Fields(iCurrentField).Name
Next i[id]
Ограничения:
* количество отображаемых данных будет ограничено заранее заложенным количеством полей
* пустые, не отображающие данные поля будут мозолить глаза на экране
Короче будет работать по принципу - с первого по последний рассчитайсь.