Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
1

Последовательное выполнение нескольких запросов

02.04.2016, 17:12. Просмотров 1268. Ответов 23
Метки нет (Все метки)

Добрый день!

Товарищи, столкнулся с задачей, которую пока не могу сам решить - прошу помощи!

Как сейчас я делаю:
  • Изменяю данные в файле Dannie.xlsx
  • Выполняю запрос Dobavlenie в BD.accdb
  • Захожу в Otchet.xlsx-->Обновить все --> Получаю все данные из таблицы Table

Что хочу получить:
  • Изменяю данные в файле Dannie.xlsx
  • Выполняю запрос Dobavlenie в BD.accdb <----- Автоматизация
  • Захожу в Otchet.xlsx-->Обновить все --> Получаю все данные из таблицы Table

Вопросы/проблемы:
  1. Как можно автоматически запустить запрос Dobavlenie в BD.accdb до запроса на выборку Otchet, который запускается при нажатии на кнопку Обновить все в Otchet.xlsx.
  2. Не могу разобраться с VBA кодом, который отключает подтверждение на добавление данных в таблицу Table - он работает, когда я его запускаю, но не могу сделать так, чтобы он автоматически запускался при открытии BD.accdb.
  3. Задача схожая с 1 задачей - Запускать VBA код (из п.2) до выполнения запроса Dobavlenie
0
Вложения
Тип файла: rar ACCESS.rar (40.9 Кб, 4 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2016, 17:12
Ответы с готовыми решениями:

Выполнение запросов
Добрый Всем день. В кнопке есть шесть запросов-два на печать и 4 на...

Медленное выполнение запросов при работе Касперского
Здравствуйте! Помогите пожалуйста с такой проблемой, при работе в БД Microsoft...

Выполнение условия отбора с датой в конструкторе запросов
Доброго времени суток, пользователи данного форума. Пытаюсь решить...

Отчет из нескольких запросов
Нужно сделать отчет о торговле за период (расход-доход). Так вот, для этого мне...

Объединение запросов в один запрос бд Расход материалов на выполнение плана
Есть 3 запроса: -Расход материалов на выполнение плана (запуск) Дата, Шифр...

23
id_950390144521
2 / 2 / 0
Регистрация: 13.12.2014
Сообщений: 63
02.04.2016, 18:19 2
В AutoExec после имени функции должны стоять скобки (), тогда ошибку о не найденном объекте не выдает.
0
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
02.04.2016, 19:38  [ТС] 3
id_950390144521, угу, спасибо, но код так и не срабатывает
0
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
02.04.2016, 20:11  [ТС] 4
Есть некоторые продвижения Но вопрос остаётся открытым.
Я всё таки разобрался с макросами в Access - сделал, как на скриншоте.
Он отрабатывает на ура - когда открываешь Access.

И код в excel - для запуска макроса:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub Use_macr() 
Dim Asс As Object 
Application.DisplayAlerts = False 
Set Asс = CreateObject("Access.Application") 
With Asс 
.Visible = False 
.OpenCurrentDatabase ("Путь к БД") 
.DoCmd.RunMacro "Название макроса" 
End With 
Application.DisplayAlerts = True 
End Sub
Но:
1. Хотелось бы без макросов в Excel
2. Если в исходных данных есть не уникальные значения, то макрос ошибку выдаёт!!!

Товарищи, помогите, советами)))
0
Миниатюры
Последовательное выполнение нескольких запросов  
alvk
Эксперт MS Access
5690 / 3579 / 185
Регистрация: 12.08.2011
Сообщений: 9,255
04.04.2016, 10:34 5
1. Почему вы изменяете данные в Эксель, а не в Акцесс? Это не правильно, данные нужно хранить в таблицах Акцесс и там же через запросы и формы изменять, а в Эксель только выводить отчётность. Потому что Эксель не БД.
2. Подтягивать из Акцесс вы можете только запросы с select или таблицы, другое не получится обычным способом без макросов Эксель.
3. Не понятно, почему происходит именно такая ситуация. Акцесс не всё время вам доступен?
0
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
04.04.2016, 23:41  [ТС] 6
alvk, спасибо, что не прошли мимо. Задачу в принципе решил, только одна проблема осталась, но я решил перейти в vb .net разместил в профильном разделе пост. Ссылку дать не могу с телефона может вы знаете как решить проблему в excel - если нет аксеса на пк, то не возможно к бд подключится.. Как быть?
0
texnik-san
шапоклякистка 8-го дня
3630 / 2191 / 389
Регистрация: 26.06.2015
Сообщений: 4,648
Записей в блоге: 1
05.04.2016, 00:08 7
Цитата Сообщение от truelogin Посмотреть сообщение
если нет аксеса на пк
То можно сачать с сайта майрософт бесплатную утилиту Access Runtime и установить.
0
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
05.04.2016, 00:25  [ТС] 8
texnik-san, хм... Вариант интересный, но не прокатит - нельзя на пк ставить доп программы. Но есть сервер - по рдп можно подключиться к аксес
0
mobile
Эксперт MS Access
23338 / 13143 / 2754
Регистрация: 28.04.2012
Сообщений: 14,395
05.04.2016, 00:34 9
Цитата Сообщение от truelogin Посмотреть сообщение
если нет аксеса на пк, то не возможно к бд подключится.. Как быть?
Если Вам нужно только выполнение запросов к БД, то сам Access не нужен. Если есть Windows, то обязательно есть драйвера к mdb/accdb. Независимо от наличия/отсутствия MS Access на ПК. Подключаться ADODB или DAO, ADOX, все в Вашем распоряжении.

Добавлено через 5 минут
А судя по виду макроса из #4, требуется именно запрос на добавление. Ну так взять SQL этого запроса и выполнить его в любой среде. Хоть в Excel, хоть где-нибудь еще.
1
alvk
Эксперт MS Access
5690 / 3579 / 185
Регистрация: 12.08.2011
Сообщений: 9,255
05.04.2016, 05:11 10
Цитата Сообщение от truelogin Посмотреть сообщение
если нет аксеса на пк, то не возможно к бд подключится..
Странно, я в сети из Эксель подключаюсь к любой БД, которая позволяет. Может у вас просто нет прав?
0
Миниатюры
Последовательное выполнение нескольких запросов  
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
05.04.2016, 18:32  [ТС] 11
mobile, так при запросе на добавление необходимо подтверждать данное решение + возможно добавление повторяющихся данных, а для обхода этого я и использовал макросы access.

Добавлено через 7 минут
alvk, имел ввиду запустить макрос в Access из Excel. А так он подключается и получает данные - всё ок!

Добавлено через 2 минуты
А вообще меня интересует ещё такой вопрос - если установлен Access на файл - сервере и там же лежит БД.
На ПК тоже установлен Access и мы через Excel обращаемся и запускаем запрос в БД - нагрузка ляжет на сервер или на ПК?
0
alvk
Эксперт MS Access
5690 / 3579 / 185
Регистрация: 12.08.2011
Сообщений: 9,255
06.04.2016, 08:21 12
Цитата Сообщение от truelogin Посмотреть сообщение
нагрузка ляжет на сервер или на ПК?
на сеть
2
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
06.04.2016, 17:23  [ТС] 13
alvk, т.е.?
0
texnik-san
шапоклякистка 8-го дня
3630 / 2191 / 389
Регистрация: 26.06.2015
Сообщений: 4,648
Записей в блоге: 1
06.04.2016, 17:27 14
Цитата Сообщение от truelogin Посмотреть сообщение
alvk, т.е.?
То есть на сеть. По сети будет передаваться большой объем данных.

Выполнение запроса не такая уже и большая нагрузка, как передача по сети тех данных, на которых он будет выполняться. Основные тормоза даст сеть.
0
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
06.04.2016, 18:25  [ТС] 15
texnik-san, да не))) я же не собираюсь молотить по 10 гб в день))
+ файл с исходными данными будет подкладываться на сервер - рядом с БД, а запросом я как раз буду получать только необходимые минимальные данные. Да даже если я сеть нагну, то пофиг)) - мне главное ПК пользователей не нагружать - у некоторых Celeron и 2 ГБ оперативки. Поэтому и приходится думать - как "вынести" нагрузку за пределы ПК пользователей.
0
texnik-san
шапоклякистка 8-го дня
3630 / 2191 / 389
Регистрация: 26.06.2015
Сообщений: 4,648
Записей в блоге: 1
06.04.2016, 18:50 16
Цитата Сообщение от truelogin Посмотреть сообщение
а запросом я как раз буду получать только необходимые минимальные данные
Это вам так кажется. Файл-сервер это не клиент-сервер: он отдаст вашему запросу все исходные данные всех таблиц )) Держи, дорогой, все, и выполняйся сам)
0
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
06.04.2016, 18:52  [ТС] 17
texnik-san, расскажите, пожалуйста, поподробнее. Или может где то прочитать можно? Почему он мне будет отдавать все данные, если мне нужны данные только из конкретного запроса?
0
texnik-san
шапоклякистка 8-го дня
3630 / 2191 / 389
Регистрация: 26.06.2015
Сообщений: 4,648
Записей в блоге: 1
06.04.2016, 19:08 18
Я даже не представляю себе, что еще можно рассказать. Файл сервер - это место физического хранения данных. НЕ обработки, а просто лежат они там. Все запросы выполняются на тех машинах, на которых запущены. Аксес - НЕ клиент-серверная СУБД.

Добавлено через 3 минуты
Это как... ну вот лежал бы у вас в расшаренной папке файл эксель. Вам в нем надо поменять две ячейки. Почему по сети будет передан целый файл?
0
truelogin
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 174
06.04.2016, 19:50  [ТС] 19
texnik-san, блин... ошибся)) Сервер приложений...

Я понял, про что Вы говорите - поэтому я и хочу придумать способ, что бы на ПК пользователей приходили только минимально необходимые данные.

Добавлено через 35 минут
И как раз поэтому я и не хочу, что бы у пользователя стоял Access (т.к. мне кажется, что в данном случае он будет принимать участие в запросах.
+ Я буду получать данные не с запроса напрямую, а с таблицы уже сформированной, для этого и применил макрос, а не через запрос пошёл..
0
alvk
Эксперт MS Access
5690 / 3579 / 185
Регистрация: 12.08.2011
Сообщений: 9,255
07.04.2016, 03:36 20
Цитата Сообщение от truelogin Посмотреть сообщение
Я понял, про что Вы говорите - поэтому я и хочу придумать способ, что бы на ПК пользователей приходили только минимально необходимые данные.
Зачем изобретать велосипед, когда их и так уже два есть - MS SQL server и RDP, выбирайте на вкус, у меня оба два
1
07.04.2016, 03:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2016, 03:36

Экспорт в excel из нескольких запросов
Друзья!Т.к. на форуме не нашел ответ на свой вопрос, то прошу помощи у Гуру...

Транзакция из нескольких запросов, DoCmd VS Execute
Задача: выполнить транзакцию из нескольких запросов подряд, таким образом,...

Вывод нескольких запросов в одной таблице
Добрый день. Задача такая. Есть таблица с некоторыми данными. Из нее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru