Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel/MSQuery+SQL+VBA / 17 сообщений из 17, страница 1 из 1
15.07.2010, 11:11
    #36742580
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
Уважаемые Гуру и все кто сможет помочь...

Не уверена что выбрала правильный раздел..

Расскажу суть проблемы с самого начала.
В организации 1С ТиС7.7. Много пользователей, работает вяло, минимальный объем данных выгружается достаточно долго.
Но при этом большинство пользователей извлекает по большей части сходные данные, просто по-разному организованные.
Возникла идея ограничить доступ пользователям к 1С, обеспечив их при этом необходимыми данными в виде готовых динамических отчетов в Excel(в форме сводных таблиц, чтобы каждый смотрел как ему удобно). Для этого выгружать некие срезы БД (за день, неделю, месяц), делать из них выбор необходимой информации посредством SQL запроса в готовые отчеты, где потом посредством макросов рассчитывать необходимые аналитики.
Данные выгружаются в DBF файлы.
Ввиду моего скудного знания SQL(и написания запросов SQL на VBA) запросы делаю посредством MS Query.
И собственно всё неплохо, если требуется простое соединение таблиц MS Query справляется нормально, все работает.
Проблемы возникают, если нужно сделать полное внешнее соединение таблиц. MS Query умирает.
Да собственно и если соединять более двух таблиц уже та же история.
Что вообще лучше сделать?
Если запрос SQL будет написан текстом непосредственно в макросе, то больше шансов что он выполнится, чем с использованием MS Query?
Если не использовать выгрузку в DBF файлы, а подключаться к тем же данным в SQL формате на сервере, поможет ли это? ускорит процесс? есть шанс, что MS Query сможет с этим справится?

А может есть какие более изящные решения, подскажите пожалуйста!
...
Рейтинг: 0 / 0
15.07.2010, 11:24
    #36742615
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
vanillavera,
Доброго времени суток и Вам. Раскажу как у нас... Есть у нас определенное ПО в компании, но я не пользююсь им для отчетов. Мои познания в SQL и VBA возможно еще хуже чем у вас Но я сделал так. Есть Сервер MS SQL 2005 для своего отдела я организовал доступ к таблицам одной из баз (только чтение). Склепал в ЕКЦЕЛЕ пару запросов в MS Query и вывел их в сводную. Ну а со сводной можно сделать что угодно в ЕКЦЕЛЕ... Можете пару формул написать или макрос...
Ну а сейчас я думаю над тем что бы сделаь формы в ЕКЦЕЛЬ и привязать их к серваку... То есть сделать файл в котором будут только формы... И 0 данных ...
А вообще сделайте так, проследите кому какие данные нужны. Сделайте пару файлов для каждой из выделеных вами групп людей раскиньте доступ к таблицам базы и скиньте им ЕКСЕЛЕВСКИЕ файлы которые вы создадите. Так будет меньше гемора. И 1С виснуть не будет с серваком ))))) ИМХО...
...
Рейтинг: 0 / 0
15.07.2010, 11:35
    #36742645
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
Спасибо большое, мне кажется ,Вы мне предлагаете то же что и я планировала.
Тут вопрос вот в чем. Общий набор данных в принципе определился. Что нужно ежедневно, что еженедельно, что ежемесячно.
Проблема в больших объемах. Я просто не могу сделать запрос в Query(
Mожет, конечно, если комп помощней и и потянет...
Приходилось как-то на личном буке работать, запросы выполнялись пошустрей.
Где-то на форуме читала, что MSQuery нормально работает только при оперативке от 2ГБ?
...
Рейтинг: 0 / 0
15.07.2010, 12:41
    #36742889
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
vanillaveraСпасибо большое, мне кажется ,Вы мне предлагаете то же что и я планировала.
Тут вопрос вот в чем. Общий набор данных в принципе определился. Что нужно ежедневно, что еженедельно, что ежемесячно.
Проблема в больших объемах. Я просто не могу сделать запрос в Query(
Может, конечно, если комп помощней и и потянет...
Приходилось как-то на личном буке работать, запросы выполнялись пошустрей.
Где-то на форуме читала, что MSQuery нормально работает только при оперативке от 2ГБ?
Ну конечно там еще зависит от того, на сколько правильно построена база проставлены ключи в таблицах БД. И от того как вы сделаете запрос... Конечно еще играет роль кол-во данных. Если вы хотите выводить 10 000 000 строк то будет долговато Примерно часик, второй... Покажите скриншот запроса Query может тут помогут спецы.... Возможно вы как-то не правильно объединяете поля...
...
Рейтинг: 0 / 0
15.07.2010, 13:17
    #36743001
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
-O_o-,в двух словах:
Есть справочники товары, клиенты, агенты, которые выгружаются отдельно, они изменяются не так часто.
Есть таблица с данными о продажах, таблица с данными о Дебиторской задолженности.
они содержат поля код товара, код агента, код клиента.
если я хочу видеть продажи в разрезе клиентов делаю простое соединение таблицы продажи(access) с клиентами, если в разрезе товаров или производителей - соответственно со справочником товаров.
...
Рейтинг: 0 / 0
15.07.2010, 13:24
    #36743020
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
-O_o-,что-то у меня кроме Painta ничего здесь и нет, не знаю как скрины лучше уменьшить.
Есть еще данные о дебиторской задолженности.
Естественно вовсе не обязательно, что мы продаем в те точки, которые нам должны и наоборот.
То есть если я хочу видеть и продажи и ДЗ в одном запросе - нужно полное внешнее соединение.
...
Рейтинг: 0 / 0
15.07.2010, 13:26
    #36743024
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
...полное внешнее соединение access и DZ. Вот тут мы и сели....
...
Рейтинг: 0 / 0
15.07.2010, 14:04
    #36743122
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
vanillavera,
А вы точно объединяете таблицы по одним и тем же ключам??? То есть должно быть так как на картинке... Если же вы объединяете по разным полям... то выведет бред
И кстати... Сделайте скрин, потом через ПАИНТ сохраните в формате ЖПГ. MS Picture manager есть такая стандартная программа в которой можно сжать рисунок не изменяя его размера (высоты и ширины).
...
Рейтинг: 0 / 0
15.07.2010, 16:47
    #36743695
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
-O_o-,да по одним и тем же(


SELECT access.ZONA, access.KANAL, Sum(access.SUMPROD) AS 'Продажи', Sum(access.SUMDOG) AS 'Продажи_в_ДогЦен'
FROM {oj access access LEFT OUTER JOIN `Y:\Червакова\Выгрузки\Неделя1`\dz.DBF dz ON access.KODCLI = dz.KODCLI}
GROUP BY access.ZONA, access.KANAL
ORDER BY access.ZONA, access.KANAL
UNION
SELECT access.ZONA, access.KANAL, Sum(access.SUMPROD) AS 'Продажи', Sum(access.SUMDOG) AS 'Продажи_в_ДогЦен'
FROM access access, `Y:\Червакова\Выгрузки\Неделя1`\dz.DBF dz
WHERE access.KODCLI <> dz.KODCLI
GROUP BY access.ZONA, access.KANAL
ORDER BY access.ZONA, access.KANAL
...
Рейтинг: 0 / 0
15.07.2010, 17:54
    #36743867
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
vanillavera,

авторЕсли запрос SQL будет написан текстом непосредственно в макросе, то больше шансов что он выполнится, чем с использованием MS Query?
Если не использовать выгрузку в DBF файлы, а подключаться к тем же данным в SQL формате на сервере, поможет ли это? ускорит процесс? есть шанс, что MS Query сможет с этим справится?


Так перечитал еще раз топик.
1-е советую конектиться сразу к SQL server через Excel - импорт внешних данных.
В MS Query вытягиваем таблицы из SQL server. Так будет однозначно быстрее. У меня 500 000 строк в MS Query выводит за 1 сек. Потом запрос который получили выводим в сводную талицу.
И еще одно, вы делает запрос к базе Access которая лежит на общем серваке??? Если да то товзможно это и тормозит обработку данных. ИМХО...
Рекомендую сразу сделать в MS SQL server отчет, а потом его подтягивать через Excel.
...
Рейтинг: 0 / 0
15.07.2010, 22:30
    #36744148
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
автор
Рекомендую сразу сделать в MS SQL server отчет, а потом его подтягивать через Excel.
-O_o-, спасибо большое за ответ
Сейчас запрос к набору DBF таблиц, да на общем сервере.
Поясните, пожалуйста, что вы имеете ввиду?
...
Рейтинг: 0 / 0
15.07.2010, 22:49
    #36744166
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
vanillaveraавтор
Рекомендую сразу сделать в MS SQL server отчет, а потом его подтягивать через Excel.
-O_o-, спасибо большое за ответ
Сейчас запрос к набору DBF таблиц, да на общем сервере.
Поясните, пожалуйста, что вы имеете ввиду?
Админ который следит за базой, пускай сразу сделает таблицу с данными которые вы пытаетесь вытянуть через MS Query. Пускай все расчеты сделает на сервере в отдельную таблицу... А вы уже прямо из экселя будете тянуть эту таблицу.
...
Рейтинг: 0 / 0
15.07.2010, 23:10
    #36744184
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
-O_o-,

...идея как раз была такова, чтобы вытянуть некоторый универсальный набор таблиц, из которых можно было было бы посредством MSQuery собрать то, что нужно и выгрузить в Excel
...
Рейтинг: 0 / 0
15.07.2010, 23:21
    #36744188
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
vanillavera-O_o-,

...идея как раз была такова, чтобы вытянуть некоторый универсальный набор таблиц, из которых можно было было бы посредством MSQuery собрать то, что нужно и выгрузить в Excel
Ну так создайте эти таблицы на самом сервере, а потом через MS Query тяните все что вам нужно... Забросьте идею с DBF и Access тяните сразу из ЦДБ.
...
Рейтинг: 0 / 0
15.07.2010, 23:34
    #36744198
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
-O_o-,

спасибо большое за помощь.
в принципе завтра IT отдел как раз обещал мне сделать формы для выгрузки сиих таблиц, чтобы я могла из MSQuery брать данные непосредственно с SQL server, посмотрим, как отразится на скорости...
...
Рейтинг: 0 / 0
15.07.2010, 23:36
    #36744200
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
vanillavera-O_o-,

спасибо большое за помощь.
в принципе завтра IT отдел как раз обещал мне сделать формы для выгрузки сиих таблиц, чтобы я могла из MSQuery брать данные непосредственно с SQL server, посмотрим, как отразится на скорости...
Буду ждать ответа
...
Рейтинг: 0 / 0
20.07.2010, 19:34
    #36751049
vanillavera
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel/MSQuery+SQL+VBA
-O_o-, Ну собственно. что могу сказать запросы с SQL делаются в десятки раз быстрее))
спасибо вам)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel/MSQuery+SQL+VBA / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]