Одна форма может работать по двум запросам?

Черника
Дата: 18.11.2009 19:45:13
Есть форма, в ней есть подчиненная форма.
Хочу сделать так, чтобы в зависимости от значения в одном из полей, данные в подчиненной форме отображались по выбранному методу.

Другими словами, если в поле основной формы переключатель стоит в положении "А", то выводить данные по Запросу1, если в положении "В", то по Запросу2.
вадя
Дата: 18.11.2009 20:03:50
Черника
Есть форма, в ней есть подчиненная форма.
Хочу сделать так, чтобы в зависимости от значения в одном из полей, данные в подчиненной форме отображались по выбранному методу.

Другими словами, если в поле основной формы переключатель стоит в положении "А", то выводить данные по Запросу1, если в положении "В", то по Запросу2.


да хоть сотню
а.четакова
Дата: 18.11.2009 20:06:48
Черника
Есть форма, в ней есть подчиненная форма.
Хочу сделать так, чтобы в зависимости от значения в одном из полей, данные в подчиненной форме отображались по выбранному методу.

Другими словами, если в поле основной формы переключатель стоит в положении "А", то выводить данные по Запросу1, если в положении "В", то по Запросу2.
можно в зависимости от значения этого поля (в обработках событий, отслеживающих изменение значения в этом Поле) менять источник данных (RecordSource) в подчиненной форме. Если данные Запроса1 и2 идентичны по структуре этого будет достаточно. Если данные структурно разные, можно заменить и саму субформу (SourceObject) - т.е. сам объект подчиненной формы.
Черника
Дата: 18.11.2009 20:23:31
Запросы строятся по одной таблице, только алгоритм выборки у них разный.

Что-то только не соображу как это организовать...?
а.четакова
Дата: 18.11.2009 20:32:17
Черника
Запросы строятся по одной таблице, только алгоритм выборки у них разный.

Что-то только не соображу как это организовать...?
вот так
а.четакова
в зависимости от значения этого поля (в обработках событий, отслеживающих изменение значения в этом Поле) менять источник данных (RecordSource) в подчиненной форме
что из этого не дается вашему соображению?
Черника
Дата: 18.11.2009 20:44:13
Аааа... кажется начинает доходить..
Так это надо на Вижуал Бейсике писать?
В обработке события достаточно будет написать вот это?

if form![план]![категория]=1 then
Recordset= Запрос1
else
Recordset= Запрос2
end if

А можно как-нибудь с помощью мышки обойтись?
Я что в этом Бейсике не сильна...
а.четакова
Дата: 18.11.2009 21:13:28
Черника
Аааа... кажется начинает доходить..
Так это надо на Вижуал Бейсике писать?
В обработке события достаточно будет написать вот это?

if form![план]![категория]=1 then
Recordset= Запрос1
else
Recordset= Запрос2
end if

А можно как-нибудь с помощью мышки обойтись?
можно и с помощью мышки - если вы сразу обе субформы поместите в основную форму (на разные вкладки например), а потом в режиме просмотра в зависимости от значения вашего поля будете мышкой тыкать на нужную вкладку.

Но Вижуал Бейсик мог бы делать то же самое самостоятельно, по безмышинной технологии. Вы же почти все уже поняли и написали, только не Recordset, а RecordSource
Me("Субформа").Form.RecordSource = IIf(nz(Me("категория"),0)=1,"Запрос1","Запрос2")
а.четакова
Дата: 18.11.2009 21:19:07
тут "Субформа" - это имя контрола субформы в основной форме.
П-Л
Дата: 19.11.2009 08:54:03
Не люблю ииф за плохую читабельность. Если в обычном коде - лучше ифами.
Владимир Саныч
Дата: 19.11.2009 10:06:57
П-Л
Не люблю ииф за плохую читабельность. Если в обычном коде - лучше ифами.

Я тоже не люблю ииф, но в основном за то, что он вычисляет обе свои части, что приводит и к перерасходу времени, и к побочным эффектам от вызова функций, которые не должны вызываться.

Function f1() As Integer
f1 = 1
Debug.Print "f1"
End Function

Function f2() As Integer
f2 = 2
Debug.Print "f2"
End Function
?iif(true,f1,f2)
f1
f2
 1