|
|
|
| База по клиентам на Access 2003-2007.
Есть форма, отражающая содержание таблицы по компаниям.
К ней есть 2 подчиненные формы, отражающие:
- звонки этой компании
- ключевых лиц этой компании.
В форме "ЗВОНКИ" есть поле "ключевое лицо", в котором источником должны быть ключевые лица именно этой компании. Когда непосредственно запускается эта форма, фильтр срабатывает нормально (условием к полю "компания" выставляется значение этого поля в форме "ЗВОНКИ"). Однако когда эта форма "ЗВОНКИ" используется как подчиненная - Access не выводит контактные лица именно этой компании. Как можно устранить эту проблему? | |
|
| |
|
|
|
| Приложена иллюстрация: база, содержащая эти 3 таблицы и 3 формы (основную и 2 подчиненные).
http://zalil.ru/34505935
И надо, собственно, чтобы в подчиненной форме "ЗВОНКИ" (она сверху) в поле "Ключевое лицо" выпадали лишь ключевые лица именно этой компании.
P.S. Вообще ситуация еще сложнее. И сама-то форма "Компании" - является вложенной в других формах. Поэтому надо бы, чтобы решение работало корректно и при таком раскладе. | |
|
| |
|
|
|
| 1.В основной форме (на событие, например, "текущая запись" Id компании сохраните в глобальной переменной и ее в запрос-источник списка.
2.Обращаться к ней как Parent.Id | |
|
| |
|
|
|
| Извиняюсь за глупый вопрос: а как сохранить в глобальной переменной? И где обращаться к ней "как Parent.Id"?
Если можно, пожалуйста, реализуйте это решение в вышеуказанном фрагменте базы.
Не знаю, правильно ли движусь. Сделал так:
Public G_Company As Variant
Private Sub Form_Current()
G_Company = №пп
End Sub
А дальше пытаюсь в источнике данных - указать G_Company как условие для компании, к которой относится ключевой лицо... и не вижу, как это сделать. | |
|
| |
|
|
|
| Очень нужно сделать это до утра.
Посоветуйте, пожалуйста! | |
|
| |
|
|
|
| Источник данных должен ориентироваться на функцию возвращающую значение переменной.
Примерно так:
Источник данных формы (ГРУБО):
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]
|
| |
|
| |