Инструмент по пополнению запасов в Access
Andrey.Yaz
Дата: 18.12.2011 22:29:04
Добрый день! прошу помочь в написании инструмента пополнения запасов на складе в Access. Уже сделано: 1. Создан запрос, который из внешних обновляемых ежедневно таблиц подтягивает необходимые данные по ежедневным продажам за месяц, прогнозам, состоянию стока, а также считает в вычисляемых стоблцах, какое кол-во товара по каждому артикулу необходимо привезти с центрального склада. 2. Запрос выполняется 2-3 мин., видимо из-за того, что данные тянутся из разных баз. Т.к. предполагается, что с инструментом будут работать люди мало знакомые с Access, хочется сделать таким образом, чтобы эти 2-3 мин. им приходилось ждать только 1 раз, запуская запрос.
Поскольку я сам новичок в Access, на уровне идеи я бы хотел, чтобы после выполнения запроса, данные копировались в отведенную для этого таблицу, из которой в свою очередь они выводились в форму с наложением определенных фильтров. Т.е. хочется уйти от запроса, т.к. на любое действие с ним приходится ждать по 2-3 мин.
Проблема состоит в том, как перенсти данные из запроса в таблицу в автоматическом режиме. Я понимаю, что это нужно сделать с помощью макроса, но просмотрев доступные в нем команды пока не понял, что нужно выбрать. Нашел только более-менее подходящее OpenQuery и затем OutputTo. Но запустив понял, что делают они не совсем то, что нужно. Запрос мне нужно запустить, но выводить на экран его не нужно. a OutputTo предлагает только заполнить даннымы внешнее приложение, но не таблицу входящую в файл базы данных.
Или все таки здесь придется программировать в VB?
Crater
Дата: 18.12.2011 22:50:37
В лоб и неправильно, но сразу результат - тормозной запрос
Превратить в запрос на создание таблицы.
Правильно - попробовать разобраться, почему запрос такой небыстрый.
alvk
Дата: 19.12.2011 07:07:48
Andrey.Yaz |
---|
Я понимаю, что это нужно сделать с помощью макроса, но просмотрев доступные в нем команды пока не понял, что нужно выбрать. |
не надо макросы, начинайте сразу с VBA, в нём легче.
Andrey.Yaz
Дата: 20.12.2011 00:31:25
Crater,
думал уже взяться за пересмотр запроса с целью оптимизации, но прежде решил посоветоваться с нашими айтишниками. Говорят, вряд ли получится, т.к. таблицы, откуда тянутся данные, находятся на разных серверах, в разных частях света. отсюда и задержка.
Кстати, как это "превратить в запрос на создание таблицы"? читаю сейчас книжку по access, такой возможности не встречал пока.
Заранее благодарю.
NickBell
Дата: 20.12.2011 00:38:22
Andrey.Yaz |
---|
Кстати, как это "превратить в запрос на создание таблицы"? |
1) Открыть query
2) Подготовить поля
3) Нажать на "Make table"
4) Появится запрос на создание таблицы
Andrey.Yaz
Дата: 20.12.2011 00:42:21
NickBell,
ЭТО ТО ЧТО НУЖНО!!! СПАСИБО ДРУЗЬЯ!!!
Andrey.Yaz
Дата: 04.01.2012 11:06:52
Andrey.Yaz, Застопорился опять, как мне кажется, на элементарной вещи, но работать никак не хочет. На главной форме у меня есть два Combo Box. Хочу заставить использовать выбираемые значения в этих Combo Box'ах для фильтра в запросе. Когда проделываю тоже самое с Text box, все получается. А с Combo Box ни в какую запрос так работать не хочет. Для Text Box в качестве значения для фильтра использовал следующий синтаксис:
Forms!MyForm!TextBoxName - фильт в запросе работает
пытаюсь тоже самое провернуть с combo box:
Forms!MyForm!ComboBoxName - фильтр не работает (т.е. в фильтр вообще ничего не попадает, хотя значения используются теже самые).
У меня подозрение, что combo box работает несколько иначе. пытался искать похожие проблемы в инете, что-то есть, но очень уж мудрено через VBA и на английском. язык знаю, но все равно не очень понятно.
Может быть есть какое-то простое решение. У меня ощущение, что нужно еще что-то добавить в Forms!MyForm!ComboBoxName и все заработает.
Andrey.Yaz
Дата: 04.01.2012 12:20:17
Andrey.Yaz,
Заметил одну закономерность. Если Combo Box берет значения из списка, введенного вручную при создании Combo Box, то фильтр работает. А когда ComboBox берет значения из таблицы, то перестает работать. Отсюда делаю вывод, что, скорее всего дело в свойствах Combo Box, те которые Column Count. В моем примере Column Count = 2. Возможно при написании фильтра в запросе нужно каким-то образом прописать, какое именно значение нужно брать?
ё
Дата: 04.01.2012 13:31:45
Andrey.Yaz |
---|
Andrey.Yaz, Заметил одну закономерность. Если Combo Box берет значения из списка, введенного вручную при создании Combo Box, то фильтр работает. А когда ComboBox берет значения из таблицы, то перестает работать. Отсюда делаю вывод, что, скорее всего дело в свойствах Combo Box, те которые Column Count. В моем примере Column Count = 2. Возможно при написании фильтра в запросе нужно каким-то образом прописать, какое именно значение нужно брать? |
вот так - Forms!MyForm!ComboBoxName - комбобокс возвращает значение прикрепленного столбца
раз у вас Column Count = 2 , то скорее всего, прикрепленный - "код", а сравниваете в запросе - с "наименование", например
alvk
Дата: 04.01.2012 15:42:59
Andrey.Yaz,
Forms!MyForm!TextBoxName.Column(1)