Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выпадающий список в подчиненной форме (Access 2003-2007)
 
 автор: reclient   (15.05.2013 в 13:40)   личное сообщение
 
 

База по клиентам на Access 2003-2007.

Есть форма, отражающая содержание таблицы по компаниям.
К ней есть 2 подчиненные формы, отражающие:
- звонки этой компании
- ключевых лиц этой компании.

В форме "ЗВОНКИ" есть поле "ключевое лицо", в котором источником должны быть ключевые лица именно этой компании. Когда непосредственно запускается эта форма, фильтр срабатывает нормально (условием к полю "компания" выставляется значение этого поля в форме "ЗВОНКИ"). Однако когда эта форма "ЗВОНКИ" используется как подчиненная - Access не выводит контактные лица именно этой компании. Как можно устранить эту проблему?

  Ответить  
 
 автор: reclient   (15.05.2013 в 13:54)   личное сообщение
 
 

Приложена иллюстрация: база, содержащая эти 3 таблицы и 3 формы (основную и 2 подчиненные).

http://zalil.ru/34505935

И надо, собственно, чтобы в подчиненной форме "ЗВОНКИ" (она сверху) в поле "Ключевое лицо" выпадали лишь ключевые лица именно этой компании.

P.S. Вообще ситуация еще сложнее. И сама-то форма "Компании" - является вложенной в других формах. Поэтому надо бы, чтобы решение работало корректно и при таком раскладе.

  Ответить  
 
 автор: Дядя Федор   (15.05.2013 в 15:58)   личное сообщение
 
 

1.В основной форме (на событие, например, "текущая запись" Id компании сохраните в глобальной переменной и ее в запрос-источник списка.
2.Обращаться к ней как Parent.Id

  Ответить  
 
 автор: reclient   (15.05.2013 в 19:16)   личное сообщение
 
 

Извиняюсь за глупый вопрос: а как сохранить в глобальной переменной? И где обращаться к ней "как Parent.Id"?

Если можно, пожалуйста, реализуйте это решение в вышеуказанном фрагменте базы.

Не знаю, правильно ли движусь. Сделал так:

Public G_Company As Variant

Private Sub Form_Current()
G_Company = №пп
End Sub

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

  Ответить  
 
 автор: reclient   (15.05.2013 в 21:32)   личное сообщение
 
 

Очень нужно сделать это до утра.

Посоветуйте, пожалуйста!

  Ответить  
 
 автор: Santares   (15.05.2013 в 22:25)   личное сообщение
 
 

Источник данных должен ориентироваться на функцию возвращающую значение переменной.
Примерно так:
Источник данных формы (ГРУБО):

SELECT * FROM orOrders WHERE OrderID=fVar("Order")


Хде функция fVar() возвращает значение переменной в условие отбора ЗАПРОСА.

В модуле должно быть что то вроде (скопировал из готового проекта):


Public ADefCurr As String                    'Валюта по умолчанию
Public APart As String
Public AStore As String
Public ACrGroup As Long
Public ADiscount As String
Public AClient As Long
Public ACar As Long
Public AOrder As Long          'Он же активная заготовка (сохраненная память для заказа)
Public APay As Long            'Орлата по заказу
Public ARec As Long            'Запись по заказу или другая запись
Public ASupplier As String
Public AORTS As Long           'Заказ к ПОСТАВЩИКУ
Public AIFS As Long            'Приход от ПОСТАВЩИКА

Public Function fVar(wReturn As String) As Variant
'Возвращает  значение переменных для условий отбора в запросах
' Где wReturn - название переменной (условное)
    Select Case wReturn
        Case "DefCurr":     fVar = ADefCurr
        Case "CrGroup":     fVar = ACrGroup
        Case "Part":        fVar = APart
        Case "Store":       fVar = AStore
        Case "Order":       fVar = AOrder
        Case "Discount":    fVar = ADiscount
        Case "Client":      fVar = AClient
        Case "Car":         fVar = ACar
        Case "Pay":         fVar = APay
        Case "Rec":         fVar = ARec
        Case "Supplier":    fVar = ASupplier
        Case "ORTS":        fVar = AORTS
        Case "IFS":         fVar = AIFS
        Case "ODist":       fVar = AODist
        Case Else:          fVar = 0
    End Select
End Function [code]

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList