LEADERSOFT.ru
Разработка на заказ программ и сайтов
Разработка
Заказ программы
Прайс-лист
Техническое задание
Проектная документация
Наши клиенты
Реклама и продвижение
Магазин
Перейти в магазин
Новинки магазина
Бизнес программы
Финансовый учет
Документооборот
Исходные коды
Интернет решения
Обучение
Перейти в раздел
Форумы по разработке
Примеры на Access
Рассылка статей
Магазин IT литературы
Блог
Все статьи
Microsoft Access (VBA)
Microsoft Access (Проекты)
Microsoft ASP.NET
Сервисы Google
Технические задания
Новости IT технологий
Сервисы
Форумы разработчика
Контакты
О компании
Регистрация на сайте
Подписка на новости по Email
Сообщество Google+
Подписка subscribe.ru
Новости в формате Атом
Загрузить
Загрузить каталог программ
Форумы по информационным технологиям
Начало
Forums
Регистрация
|
Вход
Forums
Обновлено ::
08 февраля 2005
Форумы
Поиск
Список форумов
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Поиск нао...
Тема: Поиск наоборот, помогите!
15.06.2007 21:04:16
Vlad
7 сообщения
Тема: Поиск наоборот, помогите!
Доброго времени суток!
Есть проблема... Необходимо отбирать записи в главной форме по нескольким записям в подчиненной форме, формируя для основной формы фильтр. Обе формы (главная и основная) являются табличными и вставлены в нейтральную форму ПОИСК.
У меня идея такова, что необходимо создавать временную таблицу, куда добавлять записи, удовлетворяющие критериям поиска, а затем из этой таблицы формировать "фильтр + AND" для основной табличной формы и применять его столько раз, сколько записей, удовлетв. условию, найдено, но это как-то коряво, да и быстродействие страдает...
Господа ГУРУ, подскажите начинающему решение!
Заранее СПАСИБО!
P.S. Поиск в формах
Автор:
Влад
от 25.06.2003 3:14:20
Источник ...
15.06.2007 21:04:16
N_A
31 сообщения
RE: Поиск наоборот, помогите!
Не хватает подробностей для более точного ответа, но с большой вероятностью могу сказать, что можно обойтись без временных таблиц (они заставляют базу быстро «жиреть»). Не понятно какого рода условия (выбор по типа кодизтабл1=кодизтабл2 или куча разнородных условий, или ещё чо)
От этого зависит решение проблемы...
Общие идеи:
1 вариант. В процедуре отвечающей за фильтрацию программно формируете (и меняете) источник строк (включая условие отбора) для "главной?" формы, анализируя записи в подчинённой.
2 вариант. В некоторых случаях выручает условия типа
"WHERE t1.id1 In (select id2 From t2);"
(читай справку по "In" в запросах)
3 вариант. Использование пользовательской функции в условии отбора.
Детали:
Условие отбора в главной форме вида:
"WHERE GetSelectID(tableName.id)=True;"
где GetSelectID - функция в глоб.модуле
которая возвращает "Да" если уник.код записи (значение аргумента) следует включить в резузлтируюший набор записей.
Короче создаешь глобальный динамический массив типа long и функцию, которая вернет «да» если аргумент есть в массиве и «нет» если нет:)
Public MasId() As Long
Public Function GetSelectID(id As Long) As Boolean
Dim i As Long
Dim l As Long
On Error GoTo err_GetSelectID
l = UBound(MasId)
For i = 1 To l
If MasId(i) = id Then
GetSelectID = True
Exit Function
End If
Next i
err_GetSelectID:
GetSelectID = False
End Function
В процедуре фильтрации заполняешь его (массив MasId) нужными кодами записей.
Private Sub kn_Find_Click()
Dim l As Long, i As Long
Dim stDocName As String
l=число кодов которые нужно выбрать
ReDim MasId(l)
For i = 0 To l-1
MasId(i) =нужные коды (i)
Next i
...код обновления главной формы (реквери всякие:)
End Sub
Если чо не понятно, давай подробности (относящиеся к проблеме).
P.S. Поиск в формах
Автор:
N_A
от 25.06.2003 12:14:11
Источник ...
Страница 1 из 1
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Поиск нао...
Одноуровневый вид
Древовидная структура
Самый старый из новых
Новейший из старых
Поиск
Список форумов
Начало
|
Forums
Copyright 2002-2016 Leadersoft.ru
::
Leadersoft
::
Соглашение о безопасности
::
Условия использования